Where does elastic beanstalk t2 server store my node.js app files?

From an architecture perspective I'm trying to get a better understand of how and where files deployed to eb (t2) server are stored.

I see some .zip files in s3 that show when I upload something via the eb interface, though how/where exactly does this get end up on my ec2(t2) server?


It's in the /tmp/deployment/application folder during deployment and the moved to /var/app/current afterward.

In case you search them, the node logs are in /var/log/nodejs/nodejs.log and the application will bind to 8081 no matter what PORT environment variable you set in the Environment Variables in the console.


The top answer seems to be still working in November of 2020 for node app (nuxt app in my case)

/var/app/current

As a more general answer (not node.js-specific), check eb-engine.log from your Elastic Beanstalk environment.

Where are the logs? In Elastic Beanstalk's online interface in the sidebar of your environment.

...
2021/06/12 22:40:34.097454 [INFO] app source bundle is zip file ...
2021/06/12 22:40:34.097460 [INFO] extracting /opt/elasticbeanstalk/deployment/app_source_bundle to /var/app/staging/
2021/06/12 22:40:34.097470 [INFO] Running command /bin/sh -c /usr/bin/unzip -q -o /opt/elasticbeanstalk/deployment/app_source_bundle -d /var/app/staging/
2021/06/12 22:40:34.138333 [INFO] finished extracting /opt/elasticbeanstalk/deployment/app_source_bundle to /var/app/staging/ successfully
...

Interpretation:

  1. app_source_bundle was uploaded to /opt/elasticbeanstalk/deployment/ initially
  2. app_source_bundle was extracted to /var/app/staging/

If Elastic Beanstalk deployment is successful, you can find the running app's code in /var/app/current (as Manuel pointed out).


/var/app/current may be outdated. It doesn't exist on my instance.
As said there I can't find my Web app when I SSH to my AWS Elastic Beanstalk instance, for python the app is in /opt/python/bundle/2/app/
Otherwise use find to search for the location (look at the link).