AWS Well-Architected design considerations
This solution was designed with best practices from the
AWS
Well-Architected Framework
This section describes how the design principles and best practices of the Well-Architected Framework benefit this solution.
Operational excellence
This section describes how we architected this solution using the principles and best practices of the operational excellence pillar.
The solution pushes metrics, logs, and traces to Amazon CloudWatch at various stages to provide observability into the infrastructure, Elastic Load Balancing, Amazon ECS cluster, Lambda functions, Step Function workflow, and the rest of the solution components. This solution also creates the CloudWatch dashboards for each pipeline monitoring.
Security
This section describes how we architected this solution using the principles and best practices of the security pillar.
-
The web console users are authenticated and authorized with Amazon Cognito or OpenID Connect.
-
All inter-service communications use AWS IAM roles.
-
All roles used by the solution follow least privilege access. That is, it only contains the minimum permissions required so the service can function properly.
Reliability
This section describes how we architected this solution using the principles and best practices of the reliability pillar.
-
Using AWS serverless services wherever possible (for example, AWS AppSync, Amazon DynamoDB, AWS Lambda, AWS Step Functions, Amazon S3, and Amazon SQS) for high availability and recovery from service failure.
-
Configuration management content of the solution is stored in Amazon DynamoDB, all of your data is stored on solid-state disks (SSDs) and is automatically replicated across multiple Availability Zones in an AWS Region, providing built-in high availability and data durability.
Performance efficiency
This section describes how we architected this solution using the principles and best practices of the performance efficiency pillar.
-
The ability to launch this solution in any Region that supports AWS services in this solution such as: Amazon S3, Amazon ECS, and Elastic Load Balancing.
-
Using serverless architecture removes the need for you to run and maintain physical servers for traditional compute activities.
-
Automatically testing and deploying this solution daily. Reviewing this solution by solutions architects and subject matter experts for areas to experiment and improve.
Cost optimization
This section describes how we architected this solution using the principles and best practices of the cost optimization pillar.
-
Using Auto Scaling groups so that the compute costs are only related to how much data is ingested and processed.
-
Using serverless services such as Amazon S3, Amazon DynamoDB, and AWS Lambda so that customers only get charged for what they use.
Sustainability
This section describes how we architected this solution using the principles and best practices of the sustainability pillar.
-
The solution's serverless design (using Amazon Kinesis Data Streams, Amazon S3, AWS Lambda) and the use of managed services (such as Amazon ECS) are aimed at reducing carbon footprint compared to the footprint of continually operating on-premises servers.