This article about building MongoDB replica sets buy Elad Nava is really good!
However, running a scalable, highly-available MongoDB cluster is a whole ‘nother story. You need a good understanding of how replica sets work and be familiar with the inner workings of MongoDB. And you need to set up tooling to constantly monitor your cluster for replication lag, CPU usage, disk space utilization, etc, as well as periodically back up your databases to prevent data loss.
While solutions such as Compose and MongoDB Atlas could save you the time and effort required in setting up and maintaining your own cluster, these solutions give you less control in the end — your data and uptime is in another company’s hands, in addition to AWS.
I have not been fortunate with these kinds of solutions — I experienced several unexpected instances of downtime that my services cannot tolerate. When things went wrong, all I could do was open a support ticket and wait (sometimes days!) until the engineers would be able to resolve the issue.