V případě, že někdo hledá odpověď, zde je rada, kterou jsem dostal od obchodní podpory aws.
Veškerý kód nasazený do Elastic Beanstalk musí být „bez státu“, tj. Nikdy neprovádějte změny přímo v běžící instanci beanstalk pomocí SSH nebo FTP... Protože to způsobí nekonzistence nebo ztrátu dat!- Elastic Beanstalk není určen pro aplikace, které nejsou bezstavové. Prostředí je navrženo tak, aby se škálovalo nahoru a dolů. na zatížení sítě/procesoru a vytvářejte nové instance ze základního rozhraní AMI. Pokud má instance problémy nebo základní hardware, Elastic Beanstalk tyto běžící instance ukončí a nahradí je novými instancemi. Proto se žádná úprava kódu nesmí aplikovat nebo provádět "přímo" na existující instanci, protože nové instance si těchto přímých změn nebudou vědomy. VŠECHNY změny / kód je třeba nahrát do konzoly Elastic Beanstalk nebo nástrojů CLI a odeslat do všech spuštěných instancí. Více informací o konceptech designu Elastic Beanstalk si můžete přečíst na následujícím odkazuhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts .design.html
Navrhované řešení:S ohledem na výše uvedené, pokud používáte MongoDB k ukládání dat aplikací, doporučujeme DE-spojit prostředí MongoDB z vaší aplikace Node.js.I.E Vytvořit server MongoDB mimo Elastic Beanstalk, příklad spuštění MongoDB přímo na EC2 a nechte svou aplikaci Elastic Beanstalk Node.js připojit k serveru MongoDB pomocí nastavení připojení ve vaší aplikaci.
-Vytvoření MongoDBBelow je několik příkladů odkazů, které mohou být užitečné pro váš scénář vytváření serveru MongoDB. Nasaďte MongoDB na EC2,https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ Klient uzlu MongoDBhttps://docs.mongodb.org/getting-started/node /klient/ Stručný průvodce MongoDB v cloudu AWShttp://docs.aws .amazon.com/quickstart/latest/mongodb/architecture.html
-Přidání proměnných prostředí do Elastic Beanstalk, které odkazují na váš server MongoDB Jakmile vytvoříte svůj server MongoDB, můžete předat potřebná nastavení připojení do prostředí Elastic Beanstalk pomocí proměnných prostředí. Příklad pomocí .ebextensions .config, který můžete přidat Mongo URL / porty / uživatelé atd..
option_settings:- option_name:MONGO_DB_URLvalue:"Vaše interní IP adresa MongoDB EC2"
Informace o tom, jak používat vlastnosti prostředí a číst je z vaší aplikace, naleznete níže.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop A informace pomocí .ebextensions .config lze nalézt na následujícím odkazuhttp ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
Alternativně můžete také nastavit proměnnou prostředí pomocí cli nebo pomocí AWS Consoleeb nastavit proměnné prostředí cli lze přečíst na níže uvedeném odkazu.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Použití konzoly AWS Chcete-li nastavit vlastnosti systému (Konzola pro správu AWS) Otevřete konzolu Elastic Beanstalk. Přejděte do konzoly pro správu vašeho prostředí. Vyberte možnost Konfigurace. V části Konfigurace softwaru vyberte Upravit. V části Vlastnosti prostředí vytvořte své jméno / hodnoty ...
Přístup k nastavení konfigurace prostředí V prostředí Node.js spuštěném v AWS Elastic Beanstalk můžete přistupovat k proměnným prostředí pomocí process.env.ENV_VARIABLE podobně jako v následujícím příkladu.process.env.MONGO_DB_URLprocess.env.PARAM2
Shrnutí:V souhrnu bych k integraci MongoDB s prostředími Elastic Beanstalk doporučil následující kroky. Krok 1) Vytvořte server MongoDB mimo Elastic Beanstalk Krok 2) Vytvořte si aplikaci Node.js v Elastic Beanstalk, která se připojí k vašemu serveru MongoDB