Reputation: 360
I am trying to connect to a database hosted on mongo atlas from a service running on elastic beanstalk. I am getting the error:
UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [youmaylike-shard-00-01-necsu.mongodb.net:27017] on first connect [MongoNetworkError: connection 5 to youmaylike-shard-00-01-necsu.mongodb.net:27017 closed]
I believe this is happening because I don't have the Ip address of my service whitelisted on atlas. I am unsure of how to get the Ip address for my service, I tried running eb ssh
but I'm not sure what it gave me is the correct value
Upvotes: 7
Views: 14771
Reputation: 566
From MongoDB Atlas support:
If you have dynamic IP addresses, you have the following options;
See asked question on their FAQ.
Upvotes: 0
Reputation: 59906
The public IP depend upon the configuration of your Elastic beanstalk instances.
Internet Access:
Instances must have access to the Internet through one of the following methods.
Public Subnet
Private Subnet
So, if it's behind Gateway then you can check here for whitelisting or might this help too
aws ec2 describe-instances --instance-ids i-0c9c9b44b --query 'Reservations[*].Instances[*].PublicIpAddress' --output text
or
curl http://checkip.amazonaws.com
If it's behind NAT then you need to whitelist the NAT Gateway IP.
Goto VPC -> Select NAT Gateways -> Copy the Elastic IP or public IP adress of NAT Gateway and whitelist this IP in atlas side.
Upvotes: 0
Reputation: 946
There are multiple ways to get it, below two:
Before using the AWS console or the AWS CLI run eb health
and get the intance ID or IDs for your deployment
Using the AWS Console go to EC2 and then Instances find the instance ID or IDs click it and on the pane below the IP will be located at "IPv4 Public IP"
Using the AWS CLI aws ec2 describe-instances --instance-ids <YOUR INSTANCE ID or IDS HERE>
Upvotes: 5