At Pletratech we have defined a set of general design principles to facilitate good design in the cloud. A good AWS cloud architecture design should take advantage of strength of cloud computing. It should be reliable, scalable.
• Accurate Capacity needs: Capacity needs is an important factor to design an application. A poor capacity decision when deploying a workload might end up sitting on expensive idle resources or dealing with the performance implications of limited capacity. With cloud computing, these problems can go away. You can use as much or as little capacity as you need, and scale up and down automatically.
• In the cloud, you can test application in a production-like environment on demand, and decommission the resource on completion of your testing. In AWS you will pay for the test environment when it’s running, you can simulate your live environment for a fraction of the cost of testing on premises.
• Automation allows you to create and replicate your workloads at low cost and avoid the expense of manual effort. You can track changes to your automation, audit the impact, and revert to previous parameters when necessary. Some of the services you can use to automate are – AWS Elastic Beanstalk, Auto Scaling, Cloudwatch events and Alarms, EC2 Auto recovery and Lambda
• Allow for evolutionary architectures: Allow for evolutionary architectures. In a traditional environment, architectural decisions are often implemented as static, onetime events, with a few major versions of a system during its lifetime. As a business and its context continue to evolve, these initial decisions might hinder the system’s ability to deliver changing business requirements. In the cloud, the capability to automate and test on demand lowers the risk of impact from design changes. This allows systems to evolve over time so that businesses can take advantage of innovations as a standard practice. • In the cloud, you can collect data on how your architectural choices affect the behavior of your workload. This lets you make fact-based decisions on how to improve your workload. Your cloud infrastructure is code, so you can use that data to inform your architecture choices and improvements over time. Database services remove constraints of the licensing costs. It also provides ability to support diverse database engines that were a bottleneck with the traditional IT infrastructure.
• Test how your AWS architecture and processes perform by regularly scheduling game days to simulate events in production. This will help you understand where improvements can be made and can help develop organizational experience in dealing with events.