Who am I?I run engineering at Conversocial.We help companies do social customer service.http://www.conversocial.comLove coding, ultimate frisbee and pudding
Growing MongoDB on AWSTips for ensuring you can grow MongoDB onAWS as your business needs grow. Mandatory meaningless graph
Single Server - EphemeralSingle server with instance storage.Not really advised.Must haves:● Journalling http://www.mongodb.org/display/DOCS/Journaling● Regular backups http://www.mongodb.org/display/DOCS/Backups
Single Server - EphemeralPros:Easy to configure.Cheap.Cons:No redundancy.Data since last backup is lost on server death.
Single Server - EBSSame as the last but move storage over toEBS.EBS is slow.RAID 10 it.http://bit.ly/mongodb-raid10
Single Server - EBSPros:Easy to configure.Data should still be available on server death.Cheapish.Cons:No redundancy.
Single Server - No redundancy
Enter ReplicationPrimary server replicates to secondary serversUse multiple Availability Zones (AZs).
Two servers, one arbiterCheapest replica set configuration.Arbiter ensures an odd number of votes.The arbiter can be a micro instance.
Two servers, one arbiterPros:Cheapish.Some failover.Cons:Only one failover. What if you fail again?
Three serversStandard replica set configuration.
Three serversPros:Lots of redundancy.High read capacity when one server fails.Cons:Starts to get pricey.
Where next?Horizontal and vertical scaling.
Vertical scalingUse EBS boot.Turn the server off. Resize. Turn it back on.Seconds of downtime when using a replica set.Without replica sets you will have downtime
Vertical scaling - SSDsIf you can afford them SSDs are the King.● Conversocial got 43% faster.● 90% iowait went to ~3% user, 0% iowait.All numbers compared to instance with largestmemory (68.4gb)
Horizontal read scalingAdd more secondaries and use slave queries.Really easy.Make sure you have a hidden backup server.Backups kill read performance.Use write concerns for consistent reads.
Horizontal write scaling - ShardingFairly easy with MongoDB.Backups get harder.More to manage and configure. Automate it.
When to Shard?If you know your data structure then soonerIf you dont... laterChanging shard keys is not trivial
Enterprise AvailabilityIf youre hunting for the final decimal places ofavailability...Youre probably going to break your applicationmore frequently than Amazon has a wholeregion outage.But...
Enterprise AvailabilityMultiple regions are the next step.Harder as you go outside the firewall.VPNs or SSH tunnels are your friend here.
Tools to Help YouMMS - Mongos Monitoring System (FREE)Chef/Puppet - automate as much as you can#mongodb and MongoDB user group10gen
Thanks for Listening! Any questions? Feeling shy?You can always reach me on Twitter @colinhowe Slides will be put online