The performance efficiency is largely about selecting the most efficient technologies to implement a workload, and then through monitoring and feedback adjusting the solution to ensure it remains efficient.
Design Principles
- democratize advanced technologies => means use managed services wherever possible
- go global in minutes => means deploy regionally and use Global Accelerator (non HTTP) or Cloudfront(HTTP)
- use serverless architectures => delegate responsibility to AWS for scaling resources up and down to match the workload, adopting a pay as you go model
- experiment more option => run frequent tests of alternative configurations or services to ensure the chosen solution remains optimal
- consider mechanical sympathy => chose solutions aligned to the characteristics of the workload
Best Practices
- Selection: choose most optimal compute, storage, database and networking for the workload
- Review: re-evaluate solutions regularly as AWS introduces new products and services as well as enhancing the existing network and services
- Monitoring: collects metrics in the logs, raise events as limits are reached, and take action as required to maintain the performance of the service
- Tradeoffs: consider tradeoffs such as durability, consistency, throughput and cost in creating a solution and run load tests to acquire concrete data against which an informed decision can be made
Serverless Services
- Compute – AWS Lamdba, Fargate, WorkSpaces
- Storage – S3, Glacier, EFS, FSx
- Databases – DynamoDB, Aurora Serverless
- Integration -API Gateway, SQS, SNS, AWS EventBridge, Step Functions
- Networking – Internet Gateway, Global Accelerator, Cloudfront
- ML – Comprehend, Textract, Translate, Polly, Transcribe, Lex and Rekognition
- Media – AWS Elemental MediaConnect, MediaConvert, MediaLive, MediaPackage, MediaStore and MediaTailor