In this chapter, you learned the main differences between High Availability and Disaster Recovery. You reviewed how to prepare for a disaster and which major strategies are available in the cloud. You also went through the various AWS services that can support each of these strategies. Finally, this chapter emphasized the importance of testing your DR strategy, as that’s eventually the only way to ensure business continuity will be there when you need it most.
The next chapter will discuss meeting the workload performance objectives.
This chapter will focus on determining a solution design to meet performance objectives. You will look at the best practices and strategies that can be used to design a performant cloud architecture.
Designing solutions capable of meeting performance objectives is essential for the success of your solution and its adoption by end users.
The following topics will be covered in this chapter:
AWS defines five design principles to enhance performance efficiency in the cloud. The following section will take you through each of them.
This first principle is about leveraging the advanced technology services offered by your cloud provider – in this case, AWS. There are two main reasons for that. First, why not let AWS do the heavy lifting of managing the resources supporting a specific technology while you focus on using that technology? Second, there is no benefit in reinventing the wheel. Simply put: if an AWS service matches your needs, use it and don’t roll your own. You can thus focus on implementing your solution to bring added value to your business.
With AWS, you can easily deploy your resources across the globe, closer to the end users, to improve their experience. It will effectively lower the network latency they encounter when using your solution. Not only can you leverage AWS services that make your content available globally, for instance, through its content delivery network Amazon CloudFront, but you can also use automation, in the form of Infrastructure as Code (IaC), to deploy your solution across multiple geographies in minutes. You can, for instance, use AWS CloudFormation StackSets to provision AWS resources across multiple AWS accounts in multiple AWS Regions with a single operation.
Serverless means that you delegate the management of infrastructure resources (virtual machines or servers) to AWS. Leveraging serverless solutions from AWS lets you focus your entire effort on developing and maintaining your solution, not the infrastructure where it is deployed. AWS provides multiple serverless services, such as Amazon S3, which can be used to store your website’s static content, such as HTML pages, images, and stylesheets. AWS offers several serverless services, such as data stores (Amazon DynamoDB), data streaming services (Kinesis Data Streams, Kinesis Data Firehose), compute services (AWS Lambda, AWS Fargate), and many more.