Q38 — AWS SAP-C02 第3章
第 38/75 题 | ← 返回第3章
Q263. 一家公司正在Web上构建图像服务,允许用户上传和搜索随机照片。在高峰使用期间,全球多达10,000个用户将上传他们的图像。该服务随后会在上传的图像上叠加文本,然后将其发布到公司网站上。 解决方案架构师应实施哪种设计?
- A. 将上传的图像存储在Amazon Elastic File System (Amazon EFS)中。将每个图像的应用程序日志信息发送到Amazon CloudWatch Logs。创建一组使用CloudWatch Logs确定需要处理哪些图像的Amazon EC2实例。将处理后的图像放在Amazon EFS中的另一个目录中。启用Amazon CloudFront并将源配置为实例集群中的一个EC2实例。
- B. 将上传的图像存储在Amazon S3存储桶中,并配置S3存储桶事件通知以向Amazon Simple Notification Service (Amazon SNS)发送消息。创建Application Load Balancer (ALB)后面的Amazon EC2实例集群从Amazon SNS拉取消息以处理图像并将其放在Amazon Elastic File System (Amazon EFS)中。使用Amazon CloudWatch的SNS消息量指标来扩展EC2实例。启用Amazon CloudFront并将源配置为EC2实例前面的ALB。
- C. 将上传的图像存储在Amazon S3存储桶中,并配置S3存储桶事件通知以向Amazon Simple Queue Service (Amazon SQS)队列发送消息。创建Amazon EC2实例集群从SQS队列拉取消息以处理图像并将其放在另一个S3存储桶中。使用Amazon CloudWatch的队列深度指标来扩展EC2实例。启用Amazon CloudFront并将源配置为包含处理后图像的S3存储桶。 ✓
- D. 将上传的图像存储在挂载到Amazon EC2 Spot实例集群的共享Amazon Elastic Block Store (Amazon EBS)卷上。创建包含每个上传图像信息及其是否已处理的Amazon DynamoDB表。使用Amazon EventBridge规则来扩展EC2实例。启用Amazon CloudFront并将源配置为引用EC2实例集群前面的Elastic Load Balancer。
正确答案: C. 将上传的图像存储在Amazon S3存储桶中,并配置S3存储桶事件通知以向Amazon Simple Queue Service (Amazon SQS)队列发送消息。创建Amazon EC2实例集群从SQS队列拉取消息以处理图像并将其放在另一个S3存储桶中。使用Amazon CloudWatch的队列深度指标来扩展EC2实例。启用Amazon CloudFront并将源配置为包含处理后图像的S3存储桶。
解析
选项C是此用例的首选解决方案。将上传的图像存储在Amazon S3存储桶中是高度可扩展和持久的解决方案。配置S3存储桶事件通知向Amazon SQS发送消息将启用图像文件的异步处理。EC2实例集群可以从SQS队列拉取消息并处理图像,处理后存储在另一个S3存储桶中。Amazon CloudWatch指标可用于监控队列深度并根据需要扩展EC2实例。启用Amazon CloudFront并将源配置为包含处理后图像的S3存储桶将为用户提供低延迟的内容分发。 选项A的EFS对此用例非常昂贵。选项B的SNS不支持ALB作为原生订阅者。选项D的数据存储在EBS卷上可能存在数据丢失风险。