MongoDB hosting on AWS is a very popular scenario today. AWS is a great cloud platform with a variety of options for configuration and scale. A large number of companies from small startups to large enterprises are running their mongo clusters on AWS. When researching a managed hosting provider on AWS there are a number of aspects that need to be considered. Below are five questions to ask your Mongo hosting provider to get a better understanding of your options
Shared or Dedicated?
Databases are specialized beasts requiring dedicated memory, CPU and disk bandwidth. While shared databases are good for development and staging, I do not recommend shared databases for production. Ultimately the answer depends on your load, but you should find out from your mongo hosting provider how much CPU & memory are dedicated for your database?
Security of production data is paramount. Is your database exposed to the internet with a username and password? MongoDB does not have any built in rate limiting for logon attempts - so an attacker could launch a dictionary attack on your database with relative ease if they get access to your connection string. It is important to lock down access to your database using firewalls and security groups. Are you using SSL to connect to your database? If not your data is travelling in clear text over the internet.
Disk throughtput is one of the most important aspects of database performance. What sort of disk throughput is available for your databases? Are you on standard EBS volumes or a provisioned IOPS (PIOPS) EBS volumes? If you are using provisioned IOPS how many IOPS are allocated to your disk? The answer will make a tremendous difference to the performance of your database. If you have a production database you should host it only on a Provisioned IOPS volume.
VPC private subnets are ideal candidates to host databases. You can connect out to the internet if needed but there is no way for internet traffic to directly hit your database. Only your application servers in the other subnets of the VPC can access the database. This is an ideal configuration for a database. You can also setup a site to site VPN to connect your database to your on premise network. Does your mongo hosting provider support VPC?
Scaling is an important benefit of MongoDB hosting on AWS. There are two options to scale - scale up and scale out. Scale up implies that you scale vertically by increasing the size of your instance thereby increasing the memory and CPU available. Scale out implies you can scale horizontally by adding new shards. Can you Mongo hosting provider scale dynamically without downtime? Can you configure your cluster to scale up automatically on demand?