Skip to content
Aynitech Group

The cloud on Amazon: designing a well-architected system

Since Amazon's cloud service (AWS) launched 13 years ago, a culture of cloud infrastructure has been evolving. There are many articles, case studies, tutorials and best practices available today for optimising cloud infrastructure; yet a key question remains: how do we design a good architecture for it?

AWS has developed a framework that helps us understand the pros and cons of the decisions we take when building a system on AWS. The framework draws on its experience designing, experimenting with and analysing thousands of its customers' architectures.

The framework guides us in applying architectural best practice to design and operate reliable, secure, efficient and cost-effective systems in the cloud. It does so across five pillars:

3. Reliability: a system's ability to recover from infrastructure failures or service interruptions, dynamically acquiring computing resources to meet demand and mitigating disruptions related to misconfiguration or transient network problems. An example of a service that contributes:

S3: provides a highly durable service for keeping backups.

4. Performance efficiency: the ability to use computing resources efficiently to meet the system's requirements, and to sustain that efficiency as demand changes and technologies evolve. Examples of services that contribute:

EC2: lets you create servers sized to the load.

RDS: lets you create a database service sized to the case.

5. Cost optimisation: the ability to run systems that deliver business value at the lowest price. An example of a service that contributes:

Cost Explorer: lets you see usage costs in detail according to consumption.

General design guidelines

The framework identifies a set of general principles that make good cloud design easier:

Stop guessing your capacity needs: when a capacity decision is taken before a system is deployed, you can end up with expensive idle resources or dealing with performance problems from limited capacity. With cloud computing those problems disappear. You can use as much or as little capacity as you need and scale automatically up or down.

Deploy test systems at production scale: in the cloud you can create a production-scale test environment on demand, complete your tests and then decommission the resources. That is possible because you only pay for the test environment while it is running, simulating your live environment for a fraction of the cost of testing on premises.

Automate to make architectural experimentation easier: automation lets you create and replicate your systems at low cost and avoid the expense of manual effort. You can track changes to your automation, audit the impact and roll back to previous parameters when necessary.

Allow for evolutionary architectures: in a traditional environment, architectural decisions are often implemented as static, one-off events. As a business and its context change, those initial decisions can hamper the system's ability to meet dynamic business requirements. In the cloud, the ability to automate and test on demand reduces the risk of impact from design changes. That lets systems evolve over time so businesses can take advantage of innovations as standard practice.

Drive architectures using data: in the cloud you can collect data on how architectural choices affect the behaviour of the workload. That lets you take fact-based decisions on how to improve it. Your cloud infrastructure is code, so you can use that data to inform your architecture choices and improvements over time.

Improve through game days: test how your architecture and processes perform by regularly scheduling game days to simulate events in production. That will help you understand where improvements can be made and help build organisational experience in handling events.

In light of all this we can conclude that AWS helps us significantly in designing an architecture that covers every area needed to make it robust, reliable, secure and well priced. That way you will get the most out of every AWS service.

Looking for a partner that can build, power, and protect what comes next?

Tell us what you're building—product, project, or team—and we'll propose the fastest path to outcomes.