MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

maneira recomendada de instalar o mongodb no pé de feijão elástico


Caso alguém esteja procurando uma resposta, aqui está o conselho que recebi do suporte comercial da aws.

Todo o código implantado no Elastic Beanstalk precisa ser "stateless" I.E. Nunca faça alterações diretamente em uma instância do beanstalk em execução usando SSH ou FTP.... Isso causará inconsistências e/ou perda de dados!- O Elastic Beanstalk não foi projetado para aplicativos que não são sem estado. em sua carga de rede/CPU e crie novas instâncias a partir de uma AMI básica. Se uma instância tiver problemas ou o hardware subjacente, o Elastic Beanstalk encerrará essas instâncias em execução e as substituirá por novas instâncias. Portanto, por que nenhuma modificação de código deve ser aplicada ou feita "diretamente" a uma instância existente, pois novas instâncias não estarão cientes dessas alterações diretas. TODAS as alterações/códigos precisam ser carregados no console do Elastic Beanstalk ou nas ferramentas da CLI e enviados para todas as instâncias em execução. Mais informações sobre os conceitos de design do Elastic Beanstalk podem ser lidas no link a seguirhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts .design.html

Solução sugerida:Com o acima em mente, se estiver usando o MongoDB para armazenar dados do aplicativo, nossa recomendação seria desacoplar o ambiente MongoDB do seu aplicativo Node.js.I.E Crie um servidor MongoDB fora do Elastic Beanstalk, por exemplo, iniciando o MongoDB diretamente em instância do EC2 e faça com que seu aplicativo Elastic Beanstalk Node.js se conecte ao MongoDB Server usando as configurações de conexão em seu aplicativo.

-Criar MongoDB Abaixo estão alguns links de exemplo que podem ser úteis para seu cenário de criação de um servidor MongoDB. Implante o MongoDB no EC2,https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ Cliente do nó MongoDBhttps://docs.mongodb.org/getting-started/node /cliente/ Guia de início rápido do MongoDB na Nuvem AWShttp://docs.aws .amazon.com/quickstart/latest/mongodb/architecture.html

-Adicionando variáveis ​​de ambiente ao Elastic Beanstalk para referenciar seu servidor MongoDBDepois de criar seu servidor MongoDB, você pode passar as configurações de conexão necessárias para seu ambiente Elastic Beanstalk usando variáveis ​​de ambiente.Exemplo usando .ebextensions .config que você pode adicionar Mongo URL/ports/users etc.

option_settings:- option_name:MONGO_DB_URLvalue:"Seu endereço IP interno do MongoDB EC2"

Informações sobre como usar as propriedades do ambiente e lê-las em seu aplicativo podem ser vistas abaixo.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop E informações usando .ebextensions .config podem ser encontradas no link a seguirhttp ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

Como alternativa, você também pode definir a variável de ambiente usando o cli ou por meio do AWS Consoleeb cli set as variáveis ​​de ambiente podem ser lidas no link abaixo.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Usando o AWS ConsolePara definir as propriedades do sistema (AWS Management Console)Abra o console do Elastic Beanstalk.Navegue até o console de gerenciamento do seu ambiente.Escolha Configuration.In the Software Configuration section, choose Edit.Under Environment Properties, create your name/values ​​...

Acessando as definições de configuração do ambienteDentro do ambiente Node.js em execução no AWS Elastic Beanstalk, você pode acessar as variáveis ​​de ambiente usando process.env.ENV_VARIABLE semelhante ao seguinte exemplo.process.env.MONGO_DB_URLprocess.env.PARAM2

http://docs.aws.amazon .com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop

Resumo:Em resumo, eu recomendaria as etapas a seguir para integrar o MongoDB com ambientes Elastic Beanstalk.Etapa 1) Criar um servidor MongoDB fora do Elastic BeanstalkEtapa 2) Criar seu aplicativo Node.js no Elastic Beanstalk que se conecta ao seu servidor MongoDB