AWS guide for noobs?

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?

I don’t think there is a guide and it’s not a trivial task so people choose Galaxy to focus on their core business instead of server configurations and scaling issues. But I’m curious if you’ve considered funding the mup AWS plugin initiative?

I can’t help with the setup myself, I’ve been alternating between MUP/DO and Galaxy depending on the stage of the business.

1 Like