本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Well-Architected 的设计注意事项
该解决方案采用 AWS Well-Architected Fram
本节介绍 Well-Architected Framework 的设计原则和最佳实践如何使该解决方案受益。
卓越运营
本节介绍我们是如何使用卓越运营支柱的原则和最佳实践来设计此解决方案的。
-
使用从 AWS CDK 结构生成的 AWS CloudFormation 模板将所有资源定义为基础设施即代码。
-
该解决方案将指标推送到各个 CloudWatch 阶段,以提供对 Lambda 函数、ECS 任务、S3 存储桶和其他解决方案组件的可观察性。
安全性
本节介绍我们是如何使用安全性支柱的原则和最佳实践来设计此解决方案的。
-
Cognito 对 Web 控制台用户和 API 请求进行身份验证和授权。
-
所有服务间通信都使用访问权限最低的 AWS Identity and AWS Identity and Access Managem
ent (IAM) 角色,仅包含所需的最低权限。 -
所有数据存储,包括 S3 存储桶和 DynamoDB 表,都使用 AWS 托管密钥对静态数据进行加密。
-
出于审计和合规目的,如果适用,则启用日志记录、跟踪和版本控制。
-
默认情况下,网络访问是私有的,启用 VPC 终端节点以保持流量在 AWS 网络内。
注意
该解决方案根据 CloudWatch 日志量和成本考虑因素创建多个保留期不同的日志组:
| 日志类型 | 保留周期 |
|---|---|
|
ECS 容器见解 |
1 天 |
|
Step Functions、ECS 自定义日志、API Gateway 访问日志 |
1 年 |
|
Lambda 运行时日志 |
2 年 |
|
API Gateway 执行日志 |
永不过期 |
您可以根据需要在 CloudWatch 控制台中修改这些保留期。
可靠性
本节介绍我们是如何使用可靠性支柱的原则和最佳实践来设计此解决方案的。
-
该解决方案尽可能使用 AWS 无服务器服务(例如:Lambda、API Gateway、Amazon S3、AWS Step Functions、Amazon DynamoDB 和 AWS Fargate)来确保高可用性并从服务故障中恢复。
-
所有计算处理都使用 Lambda 函数或 AWS Fargate 上的 Amazon ECS。
-
数据存储在 DynamoDB 和 Amazon S3 中,因此默认情况下数据会保留在多个可用区中。
性能效率
本节介绍我们是如何使用性能效率支柱的原则和最佳实践来设计此解决方案的。
-
该解决方案使用无服务器架构,能够根据需要进行水平扩展。
-
该解决方案可以在支持本解决方案中的 AWS 服务的任何区域启动,例如:AWS Lambda、Amazon API Gateway、Amazon S3、AWS Step Functions、亚马逊 DynamoDB、亚马逊 ECS、AWS Fargate 和 Amazon Cognito。
-
该解决方案自始至终都使用托管服务,以减轻资源配置和管理的运营负担。
-
该解决方案每天都会自动测试和部署,以实现随着 AWS 服务的变化保持一致性,并由解决方案架构师和主题专家对需要实验和改进的领域进行审查。
成本优化
本节介绍我们是如何使用成本优化支柱的原则和最佳实践来设计此解决方案的。
-
该解决方案使用无服务器架构;因此,客户只需为其使用量付费。
-
Amazon DynamoDB 可按需扩展容量,因此您只需为使用的容量付费。
-
AWS Fargate 上的 AWS ECS 允许您仅为使用的计算资源付费,无需支付任何前期费用。
-
AWS AgentCore Gateway 可作为分布式负载测试 API 的经济高效的基于 Lambda 的代理,无需使用专用基础设施,并通过无服务器 pay-per-request定价降低成本。
可持续性
本节介绍我们是如何使用可持续性支柱的原则和最佳实践来设计此解决方案的。
-
与持续运行本地服务相比,该解决方案使用托管无服务器服务来最大限度地减少后端服务对环境的影响。
-
无服务器服务允许您根据需求扩展或缩减规模。