méthode recommandée pour l'installation de mongodb sur des tiges de haricot élastiques
tout d'abord, avant de me descendre, j'ai déjà jeté un oeil à comment installer mongodb en haricot élastique? daté de 2014, qui ne fonctionne plus. ainsi que https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/#manually-deploy-mongodb-on-ec2
j'ai mis en place un nouvel environnement de haricot élastique tournant sur noeud.js avec 1 EC2 micro instance ' 64bit Amazon Linux 2016.03 v2.1.0 noeud tournant.js'
j'ai déjà essayé d'utiliser ssh pour me connecter à mon instance et installer les paquets mongodb en utilisant la commande yum:
$ sudo yum install -y mongodb-org-server mongodb-org-shell mongodb-org-tools
et a reçu ce rappel:
Loaded plugins: priorities, update-motd, upgrade-helper
No package mongodb-org-server available.
No package mongodb-org-shell available.
No package mongodb-org-tools available.
Error: Nothing to do
quand je suis entré dans mon instance, j'ai reçu cet avertissement d'erreur:
This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH
WILL BE LOST if the instance is replaced by auto-scaling. For more information
on customizing your Elastic Beanstalk environment, see our documentation here:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
actuellement mon environnement est mis en place comme un environnement d'instance unique, pour économiser sur les coûts. Toutefois, dans l'avenir, je vais passer à un l'auto-scaling de l'environnement.
pour cette raison, je me demande s'il est recommandable d'apporter des modifications via SSH dans ec2, ou devrais-je utiliser EB CLI?
J'ai installé EC2 et EB CLI localement, mais je n'ai jamais utilisé EB CLI avant. Si je devrais utiliser EB, quelqu'un a-t-il une façon recommandée d'installer mongodb?
1 réponses
dans le cas où quelqu'un est à la recherche d'une réponse, Voici les conseils que j'ai reçu de aws business support.
tout le code déployé sur le haricot élastique doit être" apatride", C'est-à-dire Ne jamais modifier directement une instance de haricot courant en utilisant SSH ou FTP.... Comme cela provoquera des incohérences et / ou des pertes de données! - Elastic Beanstalk n'est pas conçu pour une application qui ne sont pas apatrides. L'environnement est conçu pour passer à l'échelle supérieure et inférieure en attendant sur votre réseau / CPU charger et construire de nouvelles instances à partir D'un AMI de base. Si une instance a des problèmes ou le matériel sous-jacent, Elastic Beanstalk terminera ces instances en cours d'exécution et les remplacera par de nouvelles instances. Par conséquent, pourquoi aucune modification de code ne doit être appliquée ou faite "directement" à une instance existante car les nouvelles instances ne seront pas au courant de ces changements directs. Tous les changements / codes doivent être soit téléchargés sur la console élastique, soit sur les outils CLI et poussés sur toutes les instances en cours d'exécution. Plus d'informations sur Les concepts de conception en haricot élastique peuvent être lus à l'adresse suivante: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts.design.html
Solution Suggérée: Avec ce qui précède à l'esprit, si vous utilisez MongoDB pour stocker des données d'application, notre recommandation serait de découpler L'environnement MongoDB de votre noeud.js application. C.-à-d. créer un serveur MongoDB en dehors de Beanstalk élastique, exemple lancer MongoDB directement sur une instance EC2 et avoir votre noeud de haricot élastique.js application connectez-vous au serveur MongoDB en utilisant les paramètres de connexion de votre application.
- Création MongoDB Voici quelques exemples de liens qui peuvent être utiles pour votre scénario de création d'un serveur MongoDB. Déployer MongoDB sur EC2, https://docs.mongodb.org/ecosystem/platforms/amazon-ec2 / MongoDB node client https://docs.mongodb.org/getting-started/node/client / MongoDB sur le nuage de L'AWS rapide guide de démarrage http://docs.aws.amazon.com/quickstart/latest/mongodb/architecture.html
- ajout de variables d'environnement à Elastic Beanstalk pour référencer votre serveur MongoDB Une fois que vous avez créé votre serveur MongoDB, vous pouvez passer les paramètres de connexion nécessaires à votre environnement Beanstalk élastique en utilisant des variables d'environnement. Exemple d'utilisation .ebextensions .config que vous pouvez ajouter Mongo URL / ports / users etc..
option_settings: - option_name: MONGO_DB_URL valeur:" votre adresse IP interne MongoDB EC2 "
vous trouverez ci-dessous des informations sur la façon d'utiliser les propriétés de l'environnement et de les lire dans votre application. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop Et l'information en utilisant .ebextensions .config peut être trouvé au lien suivant http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
vous pouvez également définir la variable d'environnement en utilisant le cli ou via la Console AWS les variables d'environnement eb cli set peuvent être lues par le lien ci-dessous. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Utilisation de la Console AWS Pour définir les propriétés du système (Console de gestion AWS)) Ouvrez la console élastique. Accédez à l' console de gestion pour votre environnement. Choisissez La Configuration. Dans la section Configuration du logiciel, choisissez Édition. Sous Propriétés D'environnement, créez votre nom / valeurs ...
Accès Aux Paramètres De Configuration De L'Environnement À l'intérieur du Nœud.js environnement fonctionnant dans AWS Elastic Beanstalk, vous pouvez accéder aux variables d'environnement en utilisant process.env.ENV_VARIABLE similaire à l'exemple suivant. processus.env.MONGO_DB_URL processus.env.PARAM2
résumé: En résumé, je recommande les étapes suivantes pour intégrer MongoDB avec des environnements élastiques en haricot magique. Étape 1) Créer un serveur MongoDB à l'extérieur de Elastic Beanstalk Étape 2) Créez votre noeud.js application dans Elastic Beanstalk qui se connectent à votre serveur MongoDB