Cloud architecture: Notes from an Amazon talk
Some notes from a talk I was at. Didn’t get time to write it in detail. But hey, something is better than nothing… right ?
Design for failure
- handle failure
- use elastic ip addresses
- use multiple amazon ec2 availability zones
- create mutliple database slaves across multiple zones
- use real-time monitoring (amazon cloudwatch)
- use amazon EBS for persistent file system
- snapshot database to s3 (from ebs)
Loose coupling sets you free
- independent components
- design everything as a blackbox
- de-coupling for hybrid models
- loadbalance-clusters
- use SQS as buffers to queue messages. Allows elasticity
Design for dynamism
- build for changes in infrastructure
- Don't assume health of fixed location of components
- Use designs that are resilient to reboot and re-launch
- Bootstrap your instances
- Enable dynamic configuration
- Enable Self discovery
(puttet, chef, ?)
- Free auto-scaling features (by triggers)
- Use Elastic loadbalancing on multiple layers
- Use configurations in SimnpleDB to bootstrap instances
Build security in every layerider encrypted files
- Physical is free
- network is easy
- Can confider app to talk to only web and db layer... etc. Everything can be automated.
- The rest can be added
- Create distinct Security Groups for each Amazon EC2 cluster
- Use group-based rules for controlling access between layers
- Restrict external access to specific IP ranges
- Encrypt data "at-rest" in Amazon S3
- Encrypt data "in-transit" (SSL)
- Consider encrypted file systems in EC2 for sensitive data
Dont fear constraints
- More RAM ?
Distribute load across machines. Shared distributed cache
- Better IOPS on my database ?
Multiple read0only / sharding / DB clustering
- Your server has better config ?
Implement elasticity
- Static IP ?
Boot script for software reconfiguration from SimpleDB
-
Leverage aws storage solutions
- Amazon S3: for large static objects (whats the maximum size per object ?)
- Amazon Coudfront: content distribution
- Amazon SimpleDB: simple data indexing/querying
- Amazon EC2 local disk drive: transient data
- Amazon EBS: RDBMS persistent storage + S3 Snapshots
Comments