Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NodeJs - Detect whether app is on AWS or local

Is there a way in NodeJs to detect whether it's currently running on an EC2 instance or whether it's being run locally? I have some functionality that changes based on where it's deployed. I can detect the IP address but I want something more dynamic, not tied to specific server configurations.

like image 690
BelgoCanadian Avatar asked Mar 24 '26 15:03

BelgoCanadian


1 Answers

We could hit EC2 Metadata endpoint to determine EC2 instance or not.

This curl woks only within an EC2 instance

curl http://169.254.169.254/latest/meta-data/

Library node-ec2-metadata exposes an easy to use method which calls this metadata service behind the scenes.

var metadata = require("node-ec2-metadata");

metadata.isEC2().then(function (onEC2) {
  console.log("Running on EC2? " + onEC2);
});

Point to keep in mind, straight from the docs(since they hit the HEAD url and timeout after 500ms):

The initial call may take up to 500ms on a non-EC2 host, but the result is cached so subsequent calls provide a result immediately

like image 62
Balu Vyamajala Avatar answered Mar 27 '26 05:03

Balu Vyamajala



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!