2

I am designing a MongoDB sharded cluster in AWS. Now MongoDB recommends C4,M4 or D2 instance types with provisioned IOPS ebs volumes to be used with MongoDB. Initially, I chose to use two configuration server replica set with 2 sharded clusters. Each sharded cluster contains 20 Gb of primary and secondary replica set. And the two application servers with MongoDB will run behind a load balancer.

My question is can I use the general purpose instance types like t3 as the application server (which will run MongoDB) or the configuration servers? Will it create performance issues? As I understand the load in the configuration server will be relatively low.

3

Without knowing your load patterns it’s impossible to tell what instance size you should use. Go ahead with an instance type that you think should work, even if it’s T3, monitor its CPU load, monitor the volumes I/O load, and if you find that it’s overloaded upgrade it.

Changing an instance type is easy - stop / change / start.

To change disk from gp2 to provisioned iops you will have to make a snapshot first I believe.

So start with some configuration, monitor, adjust, repeat.

Hope that helps :)

2

Yes, you can use T3 instances. Choose the size you need and monitor CPU usage, disk usage, and monitor / alert on low CPU credits and EBS burst credits. If you run out of CPU credits you can move to a larger T instance or another instance type.

If load gets higher you could use an i3 series instances, using local SSDs, which give you high bandwidth and lower latency to the disk. Since the SSDs are ephemeral you would need to mirror across AZs and run fairly regular backups (to S3 / EBS) to ensure you can restore if something goes wrong.

You could also consider AWS DocumentDB, which is an Amazon database that's API compatible with MongoDB. That will likely be easier to set up and manage, but may not meet your needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.