Hi, I am a noob and I am learning Meteor+Mongo+Linux+Docker+AWS as I write the application. What I miss is a general (and recent) “Meteor deployment for dummies” guide. I would appreciate some comments from pros on my setup.
The app looks ok on my local (W10) dev computer and I managed to deploy it to AWS eventually (only KadiraHQ docker image works with 1.5 - all others fail at various deploy stages, I guess it has something to do with deploying from W10 to Ubuntu). I started with a free tier EC2 - T2.micro instance. Both Mongo and Node are running on the same instance in Docker containers.
Node/AWS performance:
It usually runs great (unless you want to demo it :)). First time it became too slow to use was due to no CPU credit left, but I can’t explain my latest problem: the monitoring showed no network communication, no CPU utilization, no disk operation, but I could hardly even SSH to the instance. I rebooted it, re-started it (which helped for about 2 minutes) and then I gave up and went for T2.small which seems to be performing well so far (Micro was also great except for the problem above). Could it have been a local AWS rack problem (and bad luck on re-launching the instance again)?
Mongo:
Why does Mongo run in Docker (MUP did it! I installed Mongo separately before)? People say to host Mongo elsewhere (Atlas, Compose) but then it means encrypting the communication and leading to potentially slower replies? I don’t feel like running my Mongo in a Docker is right either. I guess I should launch another (micro) instance just for Mongo and run it directly there? How should I back up? Dumping DB daily to S3 will suffice (I can afford to lose one day of data)?
Scaling:
Will my setup scale? Should I scale/shard? Is meteor scalable by default or are there any gotchas (I briefly read about sticky sessions and websockets)? I launched ELB yesterday (as re-starting an instance was changing the public IP). Will ELB now change the way I deploy new versions? How do I deploy it to all my (potential) instances? Am I using a good enough setup or should I have gone with Beanstalk, Galaxy or other services?