第014题 - sap
SOHO拍摄的五张彗星照片
问题翻译 (Question Translation)
English: A company is running an application on several Amazon EC2 instances in an Auto Scaling group behind an Application Load Balancer. The load on the application varies throughout the day, and EC2 instances are scaled in and out on a regular basis. Log files from the EC2 instances are copied to a central Amazon S3 bucket every 15 minutes. The security team discovers that log files are missing from some of the terminated EC2 instances. Which set of actions will ensure that log files are copied to the central S3 bucket from the terminated EC2 instances?
中文翻译: 一家公司在多个 Amazon EC2 实例上运行应用程序,这些实例位于一个自动伸缩组中,并放在一个应用负载均衡器后面。应用程序的负载在一天中变化,EC2 实例会定期进行扩展和缩减。EC2 实例的日志文件每 15 分钟复制到一个中央 Amazon S3 桶中。安全团队发现一些终止的 EC2 实例的日志文件缺失。哪些行动方案能够确保从终止的 EC2 实例复制日志文件到中央 S3 桶?
选项分析 (Answer Analysis)
选项 A
Create a script to copy log files to Amazon S3, and store the script in a file on the EC2 instance. Create an Auto Scaling lifecycle hook and an Amazon EventBridge rule to detect lifecycle events from the Auto Scaling group. Invoke an AWS Lambda function on the autoscaling:EC2_INSTANCE_TERMINATING transition to send ABANDON to the Auto Scaling group to prevent termination, run the script to copy the log files, and terminate the instance using the AWS SDK. 创建一个脚本将日志文件复制到 Amazon S3,并将脚本存储在 EC2 实例上的文件中。创建一个自动伸缩生命周期挂钩和一个 Amazon EventBridge 规则,以检测来自自动伸缩组的生命周期事件。在 autoscaling:EC2_INSTANCE_TERMINATING 转换中调用 AWS Lambda 函数,向自动伸缩组发送 ABANDON 以防止终止,运行脚本以复制日志文件,然后使用 AWS SDK 终止实例。
分析:
- 复杂性:
- 需要创建一个脚本并在实例终止时运行。如果发生实例在调用期间快速终止,则可能会丢失日志文件。
- 效果:
- 尽管理论上可行,但实施复杂。
此选项的实施不够有效。
选项 B
Create an AWS Systems Manager document with a script to copy log files to Amazon S3. Create an Auto Scaling lifecycle hook and an Amazon EventBridge rule to detect lifecycle events from the Auto Scaling group. Invoke an AWS Lambda function on the autoscaling:EC2_INSTANCE_TERMINATING transition to call the AWS Systems Manager API SendCommand operation to run the document to copy the log files and send CONTINUE to the Auto Scaling group to terminate the instance. 创建一个 AWS Systems Manager 文档,里面包含一个将日志文件复制到 Amazon S3 的脚本。创建一个自动伸缩生命周期挂钩和一个 Amazon EventBridge 规则,以检测来自自动伸缩组的生命周期事件。在 autoscaling:EC2_INSTANCE_TERMINATING 转换中调用 AWS Lambda 函数调用 AWS Systems Manager API SendCommand 操作来运行文档以复制日志文件,然后向自动伸缩组发送 CONTINUE 以终止实例。
分析:
- 系统集成:
- 使用 AWS Systems Manager 可以确保在实例终止时能成功执行复制操作。
- 使用 AWS Lambda 调用 SendCommand 操作,以确保在终止前能够执行副本。
此选项有效且专业。
选项 C
Change the log delivery rate every 5 minutes. Create a script to copy log files to Amazon S3, and add the script to EC2 instance user data. Create an Amazon EventBridge rule to detect EC2 instance termination. Invoke an AWS Lambda function from the EventBridge rule to copy the log files and terminate the instance. 将日志传送频率更改为每 5 分钟。创建一个将日志文件复制到 Amazon S3 的脚本,并将该脚本添加到 EC2 实例的用户数据中。创建一个 Amazon EventBridge 规则以检测 EC2 实例的终止。从 EventBridge 规则调用 AWS Lambda 函数以复制日志文件并终止实例。
分析:
- 方法的问题:
- 改变日志传送的频率不一定解决缺失日志的问题。
- 将脚本放入用户数据中不能在实例终止时运行,因此对复制过程没有帮助。
此选项不符合要求。
选项 D
Create an AWS Systems Manager document with a script to copy log files to Amazon S3. Create an Auto Scaling lifecycle hook that publishes a message to an Amazon Simple Notification Service (Amazon SNS) topic. From the SNS notification, call the AWS Systems Manager API SendCommand operation to copy the log files and send ABANDON to the Auto Scaling group to terminate the instance. 创建一个 AWS Systems Manager 文档,里面包含一个将日志文件复制到 Amazon S3 的脚本。创建一个自动伸缩生命周期挂钩,该挂钩向一个 Amazon 简单通知服务 (Amazon SNS) 主题发布消息。从 SNS 通知中调用 AWS Systems Manager API SendCommand 操作以复制日志文件并向自动伸缩组发送 ABANDON 以终止实例。
分析:
- 集成性:
- 该选项同样合理,但稍微复杂,可能不必要地引入 SNS。
- 然而,SNS 的使用并不是必需的,因为 Systems Manager 本身已经可以处理请求。
此选项也有效,但有点过于复杂。
最佳答案 (Correct Answer)
答案:B
详细解析 (Detailed Explanation)
1. 为什么选择 B?
- 系统集成:
- Systems Manager 提供了有效且可靠的方式来复制日志,确保在实例终止时可以顺利完成。
- 使用 AWS Lambda 和 SendCommand 确保在终止过程中能有效执行,并能继续通知 Auto Scaling。
2. 为什么不选择其他选项?
- A (脚本与Lambda): 尽管可行,复杂性和潜在的失效点较多。
- C (更改频率): 简单地改变日志传送频率并不能解决问题。
- D (SNS 复杂性): 引入 SNS 并不必要,增加了实施复杂性。
总结 (Summary)
B 是最有效和专业的方法,确保日志能够从终止的 EC2 实例复制到中央 S3 桶中。
如果有更多问题,欢迎继续提问,我会以相同的格式进行回复!