Building Elastic Beanstalk using a restored snapshot does not work

I have been trying to build a new instance of Metabase using AWS Elastic Beanstalk. I have been using Metabase for a long time without any issues but this build has one key difference: I put the instance in a VPC. When I use the standard install guide (https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-elastic-beanstalk.html) I vary in that I am using an RDS snapshot from my production version however when I go to log into the new instance, it is a new instance and not a copy of my production version. What am I doing wrong?

{
"browser-info": {
"language": "en-US",
"platform": "Win32",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
"vendor": "Google Inc."
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "11.0.12+7",
"java.vendor": "Eclipse Foundation",
"java.vendor.url": "https://adoptium.net/",
"java.version": "11.0.12",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "11.0.12+7",
"os.name": "Linux",
"os.version": "4.14.248-189.473.amzn2.x86_64",
"user.language": "en",
"user.timezone": "GMT"
},
"metabase-info": {
"databases": [
"h2"
],
"hosting-env": "elastic-beanstalk",
"application-database": "h2",
"application-database-details": {
"database": {
"name": "H2",
"version": "1.4.197 (2018-03-18)"
},
"jdbc-driver": {
"name": "H2 JDBC Driver",
"version": "1.4.197 (2018-03-18)"
}
},
"run-mode": "prod",
"version": {
"date": "2021-10-21",
"tag": "v0.41.1",
"branch": "release-x.41.x",
"hash": "76aa4a5"
},
"settings": {
"report-timezone": null
}
}
}

Hi @wtomlinson
Make sure you have defined the MB_DB_* environment variable(s).
Have a read here:
https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-elastic-beanstalk.html
https://www.metabase.com/docs/latest/operations-guide/creating-RDS-database-on-AWS.html

1 Like

Thank you @flamber! This info helped me get the application environment running with the RDS version which had info in it. The last challenge I am facing is still in process. If I can't figure it out I will reach out for help. I am trying to ensure that I can lock down the inbound traffic to a SQL Server that Metabase is accessing. Because Metabase through the load balancer spins up multiple EC2's I am trying to find a way to ensure that the Elastic Beanstalk Environment only sends a single IP address to add to the inbound rules on the SQL Server's security group. If by chance you have run into this and already have a write-up on configuring that would be amazing. Thanks!

@wtomlinson I think that goes slightly outside of the scope of our documentation. It seems like something that is pretty general AWS documentation. You'll need to use NAT, so all your EC2's goes through the same NAT, since you then only have a single IP, which won't change.

Got the Nat Gateway configured and it is working like a charm! Thanks!