Om någon letar efter ett svar, här är råden jag fick från aws business support.
All kod som distribueras till Elastic Beanstalk måste vara "statslös", dvs. Gör aldrig ändringar direkt i en pågående beanstalk-instans med hjälp av SSH eller FTP.... Eftersom detta kommer att orsaka inkonsekvenser och/eller dataförlust!- Elastic Beanstalk är inte designad för applikationer som inte är tillståndslösa. Miljön är utformad för att skala upp och ner i väntan på på din nätverks-/processorbelastning och bygg nya instanser från en bas AMI. Om en instans har problem eller den underliggande hårdvaran kommer Elastic Beanstalk att avsluta dessa körande instanser och ersätta dem med nya instanser. Därför, varför ingen kodändring måste tillämpas eller göras "direkt" på en befintlig instans eftersom nya instanser inte kommer att vara medvetna om dessa direkta ändringar. ALLA ändringar/kod måste antingen laddas upp till Elastic Beanstalk-konsolen eller CLI-verktygen och skjutas till alla pågående instanser. Mer information om designkoncept för Elastic Beanstalk kan läsas på följande länkhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts .design.html
Föreslagen lösning:Med ovanstående i åtanke, om du använder MongoDB för att lagra applikationsdata skulle vår rekommendation vara att DE-koppla MongoDB-miljön från din Node.js-applikation.I.E Skapa en MongoDB-server utanför Elastic Beanstalk, till exempel att starta MongoDB direkt på en EC2-instans och låt din Elastic Beanstalk Node.js-applikation ansluta till MongoDB Server med anslutningsinställningar i din app.
-Skapa MongoDBBelow är några exempellänkar som kan vara användbara för ditt scenario för att skapa en MongoDB Server. Distribuera MongoDB på EC2,https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ MongoDB nodklienthttps://docs.mongodb.org/getting-started/node /klient/ MongoDB på AWS Cloud snabbstartguidehttp://docs.aws .amazon.com/quickstart/latest/mongodb/architecture.html
-Lägga till miljövariabler till Elastic Beanstalk för att referera till din MongoDB-server När du har skapat din MongoDB-server kan du skicka de nödvändiga anslutningsinställningarna till din Elastic Beanstalk-miljö med hjälp av miljövariabler. Exempelvis med .ebextensions .config som du kan lägga till Mongo URL / portar / användare osv.
option_settings:- option_name:MONGO_DB_URLvalue:"Din MongoDB EC2 interna IP-adress"
Information om hur du använder miljöegenskaper och läser dem inifrån din applikation kan ses nedan.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop Och information som använder .ebextensions .config kan hittas på följande länkhttp ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
Alternativt kan du också ställa in miljövariabler med hjälp av cli eller via AWS Consoleeb cli set miljövariabler kan läsas via länken nedan.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Använda AWS ConsoleAtt ställa in systemegenskaper (AWS Management Console)Öppna Elastic Beanstalk-konsolen.Navigera till hanteringskonsolen för din miljö.Välj Konfiguration.I avsnittet Programvarukonfiguration väljer du Redigera.Under Miljöegenskaper skapar du ditt namn/värden...
Åtkomst till miljökonfigurationsinställningar I Node.js-miljön som körs i AWS Elastic Beanstalk kan du komma åt miljövariablerna med process.env.ENV_VARIABLE som liknar följande exempel.process.env.MONGO_DB_URLprocess.env.PARAM2
Sammanfattning:Sammanfattningsvis skulle jag rekommendera följande steg för att integrera MongoDB med Elastic Beanstalk-miljöer.Steg 1) Skapa en MongoDB-server utanför Elastic BeanstalkSteg 2) Skapa din Node.js-applikation i Elastic Beanstalk som ansluter till din MongoDB-server