steps to take to achieve seamless up-scaling in AWS
- Use Multi-AZ infrastructure.
- Make use of self-scaling services such as ELB, S3, SNS (push notification), SQS (queuing), SES (email) etc.
- Build in redundancy at every level.
- Start with SQL.
- Cache data (ElasticCache) in & out.
- Use automation tools (CloudFormation, OpsWorks, BeanStalk, Chef, Puppet, etc.)
- Make sure we have good metrics/monitoring/logging tools in place to know not only the performance of our app but also customers behaviors/opinions.
- Split tiers into individual services – let them scale and fail independently from each other.
- Use Auto Scaling once we’re ready but not at the beginning. Infra first!
- Don’t reinvent the wheel. Probably, the services AWS provides might be the right choice for most of the cases.
- Move to NOSQL when it’s the right time.
- Scaling up is not one time thing, it’s an iterative process.
- More fine-tuning of our application.
- More SOA of features/functionalities.
- Going from Multi-AZ to Multi-Region.
- Start to build unique custom solutions.
- Deep analysis of entire stack.