В случай, че някой търси отговор, ето съвета, който получих от поддръжката на aws business.
Целият код, внедрен в Elastic Beanstalk, трябва да бъде "без състояние", т.е. Никога не правете промени директно в работещ екземпляр на Beanstalk, като използвате SSH или FTP.... Тъй като това ще доведе до несъответствия и/или загуба на данни! - Elastic Beanstalk не е предназначен за приложения, които не са без състояние. Средата е проектирана да мащабира нагоре и надолу в очакване на вашата мрежа / CPU натоварване и изграждане на нови екземпляри от базов AMI. Ако даден екземпляр има проблеми или основния хардуер, Elastic Beanstalk ще прекрати тези работещи екземпляри и ще ги замени с нови. Следователно, защо никаква модификация на кода не трябва да се прилага или прави "директно" към съществуващ екземпляр, тъй като новите екземпляри няма да знаят за тези директни промени. ВСИЧКИ промени / код трябва да бъдат качени в конзолата на Elastic Beanstalk или CLI инструментите и да бъдат изпратени до всички работещи екземпляри. Повече информация за концепциите за дизайн на Elastic Beanstalk можете да прочетете на следната връзкаhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts .design.html
Предложено решение:Имайки предвид горното, ако използвате MongoDB за съхраняване на данни за приложения, нашата препоръка би била DE-свързване на MongoDB средата от вашето Node.js приложение. Т.е. Създайте MongoDB сървър извън Elastic Beanstalk, например стартиране на MongoDB директно на EC2 екземпляр и накарайте вашето приложение Elastic Beanstalk Node.js да се свърже с MongoDB сървър, като използвате настройките за връзка във вашето приложение.
-Създаване на MongoDB По-долу са някои примерни връзки, които могат да бъдат полезни за вашия сценарий за създаване на MongoDB сървър. Разположете MongoDB на EC2,https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ Клиент на MongoDB възелhttps://docs.mongodb.org/getting-started/node /клиент/ MongoDB в AWS Cloud кратко ръководство за стартиранеhttp://docs.aws .amazon.com/quickstart/latest/mongodb/architecture.html
-Добавяне на променливи на средата към Elastic Beanstalk за препратка към вашия MongoDB сървър. След като създадете вашия MongoDB сървър, можете да предадете необходимите настройки за връзка към вашата среда Elastic Beanstalk, като използвате променливи на средата. и т.н.
option_settings:- option_name:MONGO_DB_URLvalue:"Вашият MongoDB EC2 вътрешен IP адрес"
Информация за това как да използвате свойствата на средата и да ги четете от вашето приложение може да видите по-долу.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop А информация, използваща .ebextensions .config, може да бъде намерена на следната връзкаhttp ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
Като алтернатива можете също да зададете променлива на средата, като използвате cli или чрез AWS Consoleeb cli, зададените променливи на средата могат да бъдат прочетени чрез връзката по-долу.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Използване на AWS Console За да зададете системни свойства (AWS Management Console) Отворете конзолата Elastic Beanstalk. Навигирайте до конзолата за управление за вашата среда. Изберете Configuration. В раздела Software Configuration изберете Edit. Под Environment Properties създайте вашето име / стойности ...
Достъп до настройките за конфигурация на средата В средата на Node.js, работеща в AWS Elastic Beanstalk, можете да получите достъп до променливите на средата, като използвате process.env.ENV_VARIABLE, подобно на следния пример.process.env.MONGO_DB_URLprocess.env.PARAM2
Резюме:В обобщение бих препоръчал следните стъпки за интегриране на MongoDB със среди на Elastic Beanstalk. Стъпка 1) Създайте MongoDB сървър извън Elastic Beanstalk Стъпка 2) Създайте вашето приложение Node.js в Elastic Beanstalk, което се свързва с вашия MongoDB сървър