Standard N-Tier Layered Architecture : Logic Tier talks to Data TierData Tier: we have many different DB's depending on the problem space:SimpleDB : Operational Configuration and State goes hereNoSQL : Content Processing (e.g. article categorization), usage processing (e.g. what topics do most readers in England care about at 8am versus 10pm), etc...Memcached (a.k.a ElastiCache) : If you will query it twice based on simple key/value, it goes here.RDS: Reliable AND Complex queries needed? Go hereIn general, we found per user data needed by the presentation tier is best stored using RDS since most requests are user/session focused and requires complex logic based on new features or user interface designs. This includes stuff such as what social networks you belong to, your social interactions such as liking photos or reading articles, synchronization of state across multiple devices, etc.
IntroductionYour Social Magazine for Apple Mobile DevicesDelivers relevant articles and photos based on usage andinteractions within your social networksLaunched 6 months after the initial team put togetherOver 5 million users and 2 billion page “flips” per month
Operating in the Cloud : Managing Complex, Real Time Data 6 months to deploy a real-time, socially relevant magazineChallenge Constantly changing user interests Ability to change all hardware and software elasticallyArchitecture Frequently changing system requirements Complex queries on user and relevancy dataApp needs Milliseconds count. So, does uptime Highly performant, reliable, proven database technology Solution Amazon RDS MySQL
The Data View of the World Flipboard Application ElastiCache Memcache for performance Reliable andOperational Complex data,Configuration Queriesand State Data SimpleDB RDS MySQL
Friends, Magazines … anyone relevant to me who published something very recently that I care about seeing Show Me More, Please!A friend who recently shared a photo
Amazon RDS Tips For Success1. Leverage the Cloud for what it does best. Don’t bring old DC habits.2. Scale up for better performance.3. Use RDS for complex, real-time data.4. Use Read Replicas to augment write heavy databases. They are awesome.5. Leverage existing SQL knowledge and experience.6. Use copies of your database for testing new code. It’s trivial and saves time.7. Scale horizontally with sharding. Plan for it before you need it.