I’ve deployed my Meteor application, from my local laptop to an EC2 instance with mup.
My mup.json looks like so:
{
"servers": [
{
“host”: “my_domain_name_to_aws_elasticip_.com”,
"username": "ubuntu",
“pem”: “/path_to_pem/pem_file.pem"
}
],
"setupMongo": true,
"setupNode": true,
"nodeVersion": "0.10.35",
"setupPhantom": false,
“appName”: “application-name",
“app”: “/path_to_meteor_application/application",
"env": {
"ROOT_URL": "https://my_domain_name_to_aws_elasticip_.com"
},
"ssl": {
"pem": "./ssl.pem"
},
"deployCheckWaitTime": 30
}
So does this mean that my application is running, file_system — mongo_database — server_software, under one process — on one server — on the EC2 instance? I come from a .net background where we always had a MS SQL db on a separate server — it just seems strange to have both database and server running not only side-by-side, but in the same process (if in fact this is what is going on).
I plan to deploy more Meteor applications, in the same way, to the same EC2 instance.
This approach to Production deployment seems the easiest to me — being my first time with Meteor. I’m sure there are drawbacks. For example, scaling? But what other drawbacks are there? And how would one go about separating the database off on its own EC2 instance (if that is the ‘recommended’ way)?
Also, what about the maintainability of the database? For example backup and restoring the Mongo database? Right now I can use Robomongo to ssh into the EC2 instance and view/modify the database — but what about maintenance?