Aller au nuage AWS Avec mise à l'échelle automatique - Où poster Redis et ElasticSearch?

J'ai essayé d'explorer ce sujet, mais je n'ai trouvé aucun endroit où il serait recommandé d'établir de tels services comme Redis et ElasticSearch, En passant à un environnement de nuage.

Actuellement je lance la demande Symfony2 sur deux serveurs statiques - Sur une course MySQL, Et de l'autre - Serveur Web disponible publiquement Redis et ElasticSearch. Ces deux serveurs sont virtualisés, mais ils sont statiques en termes d'impossibilité de réplication à l'heure actuelle. (Différents aspects dépendent encore du système de fichiers local.).

L'objectif est d'aller à AWS et utilisez la mise à l'échelle automatique pour pouvoir exécuter et désactiver les serveurs Web au besoin, mais je ne comprends pas ce que je dois mettre sur chaque instance EC2. Devraient-ils être seulement avec la seule responsabilité? celles. Configurez des instances individuelles pour les serveurs Web, Redis et ElasticSearch Et, très probablement, par exemple RDS pour MySQL Et configurez la mise à l'échelle automatique uniquement sur les serveurs Web?

Je ne prévois pas que dans un proche avenir devra mettre à l'échelle du serveur ElasticSearch, Puisqu'il gère uniquement les fonctions de recherche, mais il est possible que Redis peut nécessiter une réplication à un moment donné - Mais devrait-il être fait manuellement? Je ne sais pas comment cela peut être fait automatiquement, car, autant que je sache, chaque instance doit être configurée pour savoir sur son principal / Subordnés (Oh). Je serai reconnaissant pour les conseils à ce sujet.

Une autre question rapide pendant que je suis ici - Comment puis-je déployer des modifications de code si vous êtes actuellement actif X Serveurs Web? J'utilise le script de déploiement Capifony (version Capistrano pour Symfony2), qui, il me semble, peut facilement gérer plusieurs serveurs, indiquant un tableau

:domain

Adresses ... Mais comment faire face à cela si le nombre de serveurs Web peut varier?
Invité:

Dominique

Confirmation de:

Nous y faisons face en créant plusieurs groupes de serveurs dans une pile à plusieurs niveaux. (Même si le groupe n'est actuellement nécessaire qu'une seule copie.). Première couche - c'est ton

Équilibrage de la charge élastique

, dégager.

Deuxième couche - c'est

Groupe de mise à l'échelle automatique

serveurs web (Zone multi-accès). Ils sont chargés personnalisables AMI, Qui sur le démarrage est en bonne condition de préparation à cette tâche. (Maintenant que nos processus sont devenus plus matures, nous chargons réellement l'ensemble AMI, qui peut être configuré automatiquement lors du démarrage de l'utilisation Chef.) Mais nous faisons aussi

git pull

le référentiel du dernier code de production au démarrage, nous n'avons donc pas besoin de créer un nouveau AMI Chaque fois que le code est déployé. Cela nous permet également de modifier plus facilement des configurations, telles que des hôtes de base de données, des hôtes. Redis etc.

Le troisième niveau est destiné à la base de données et à d'autres services, tels que ElasticSearch et Redis. Vous pouvez placer les trois services sur un périphérique, puis gérer vos propres serveurs subordonnés. mysql, Ou vous pouvez poster Redis et ElasticSearch Sur un serveur séparé et utilisez RDS Amazon Pour leurs services Mysql. Votre choix basé sur si vous souhaitez gérer votre propre réplication / Basculement B. MySQL.

Souvent le moyen le plus simple - utilisation

Amazon RDS

Dans la configuration de la zone d'accessibilité multiple. Nous essayons toujours

Élargir la multi-zone d'accessibilité avec tous

, Par conséquent, nous travaillons toujours, même si une zone de jetabilité échoue. Ensuite, vous exécutez une copie plus petite pour accueillir uniquement Redis et ElasticSearch.

Avec

ElasticSearch

, Voici les conseils que nous utilisons pour installer via Rails: Installez et maintenez une instance complète de votre application avec ElasticSearch sur la boite. Puis créer AMI Pour ce rôle (ou un rôle Chef). La raison est que vous pouvez exécuter des tâches de service lorsque vous téléchargez des index. ElasticSearch à partir de zéro si vous téléchargez un nouveau AMI. Ensuite, placez cette instance dans le groupe. ASG Avec plusieurs zones d'accessibilité avec une valeur minimale et maximale d'un serveur. Si cette boîte ou la zone de disponibilité cesse de fonctionner, ASG Charge le remplacement, restaurez ses index lors du démarrage et sera prêt à servir les clients.

Pour

Redis

, À l'horizon bonne nouvelle.

redis-cluster

Bientôt, il apparaîtra, qui promet de simplifier la gestion des entrepôts Redis. En attendant, vous pouvez gérer votre propre réplication ou
https://garantiadata.com/
, Qui utilise maintenant la version bêta redis-cluster (Actuellement limité à la région us-east-1). Cela fait avertir que les mêmes adresses IP sont utilisées pour vos configurations, quels que soient ce qui arrive aux piscines d'instances.

Enfin, pour protéger vos données entrant dans vos bases de données et d'entre eux, je vous recommanderais de la construire à l'intérieur de la partie du réseau privé du public disponible. / Privé

Nuage privé virtuel

. Il crée votre propre réseau privé, isolé des analyseurs de paquets. Vous pouvez également utiliser le cryptage SSL pour les connexions de base de données. MySQL.

Pour répondre aux questions, connectez-vous ou registre