确保在启动时启用亚马逊EMR登录 Amazon S3 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

确保在启动时启用亚马逊EMR登录 Amazon S3

由 Priyanka Chaudhary 创作 () AWS

环境:生产

技术:分析;安全、身份、合规;无服务器

工作负载:开源

AWS服务:亚马逊EMR;亚马逊 S3;亚马逊SNS;亚马逊 CloudWatch

Summary

此模式提供了一种安全控制,用于监控在 Amazon Web Services (AWS) 上运行的亚马逊EMR集群的日志配置。

Amazon EMR 是一AWS款用于大数据处理和分析的工具。Amazon EMR 提供可扩展的低配置服务,作为运行内部集群计算的替代方案。Amazon EMR 提供两种类型的EMR集群。

  • 临时亚马逊EMR集群:处理完成后,临时亚马逊EMR集群会自动关闭并停止产生成本。

  • 永久性 Amazon EMR 集EMR群:数据处理任务完成后,永久性 Amazon 集群将继续运行。

Amazon EMR 和 Hadoop 都会生成报告集群状态的日志文件。默认情况下,这些报告会写入 /mnt/var/log/ 目录中的主节点。根据在启动集群时配置集群的方式,您还可将这些日志保存到 Amazon Simple Storage Service (Amazon S3),并通过图形调试工具进行查看。请注意,只有在启动集群时才可指定 Amazon S3 日志记录。通过此配置,日志每 5 分钟从主节点发送到 Amazon S3 位置。对于瞬态集群,Amazon S3 日志记录非常重要,因为处理完成后集群就会消失,并且这些日志文件可用于调试任何失败的作业。

该模式使用AWS CloudFormation 模板部署安全控 CloudWatch 件,用于监控API呼叫并在 “” 上启动 Amazon Events RunJobFlow。触发器调用 Lambda,后者运行 P AWS ython 脚本。Lambda 函数从事件JSON输入中检索EMR集群 ID,还会检查 Amazon S3 日志。URI如果找URI不到 Amazon S3,Lambda 函数会发送亚马逊简单通知服务 (AmazonSNS) 通知,详细说明EMR集群名称、违规详情、AWS区域、AWS账户和通知来源的 Lambda Amazon 资源名称 (ARN)。

先决条件和限制

先决条件

  • 一个活跃的AWS账户

  • 存放 Lambda 代码 .zip 文件的 S3 存储桶

  • 接收违规通知的电子邮件地址

限制

  • 这种侦探控制是区域性的,必须部署在你打算监控的AWS区域。

产品版本

  • 亚马逊EMR发布 4.8.0 及更高版本

架构

目标技术堆栈

  • 亚马逊 CloudWatch 活动活动

  • Amazon EMR

  • Lambda 函数

  • S3 存储桶

  • Amazon SNS

目标架构

用于确保在启动时启用亚马逊EMR登录到 Amazon S3 的工作流程。

自动化和扩缩

工具

工具

  • AWS CloudFormation— AWS CloudFormation 帮助您使用基础架构即代码对AWS资源进行建模和设置。

  • AWSCloudwatch E AWS CloudWatch vents — Events 提供近乎实时的系统事件流,这些事件描述了AWS资源的变化。

  • Amaz on EMR — Amazon EMR 是一个托管集群平台,可简化大数据框架的运行。

  • AWSLambda — Lamb AWS da 支持在不预配置或管理服务器的情况下运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩缩,从每天几个请求扩展到每秒数千个请求。

  • Amazon S3 — Amazon S3 是一个 Web 服务接口,可用于从 Web 上的任何位置存储和检索任意数量的数据。

  • Ama zon SNS — Amazon SNS 是一项网络服务,用于协调和管理发布者与客户之间的消息传送或发送,包括网络服务器和电子邮件地址。

代码

  • 该项目的 .zip 文件作为附件提供。

操作说明

任务描述所需技能

定义 S3 存储桶。

要托管 Lambda 代码 .zip 文件,请选择或创建一个具有不包含前导斜杠的唯一名称的 S3 存储桶。S3 存储桶名称是全球唯一的,命名空间由所有AWS账户共享。您的 S3 存储桶必须与正在评估的 Amazon EMR 集群位于同一AWS区域。

云架构师
任务描述所需技能

将 Lambda 代码上传至 S3 存储桶。

将“附件”部分中提供的 Lambda 代码.zip 文件上传到 S3 存储桶。S3 存储桶必须与正在评估的 Amazon EMR 集群位于同一区域。

云架构师
任务描述所需技能

部署AWS CloudFormation 模板。

在AWS CloudFormation 控制台上,在与 S3 存储桶相同的区域中,部署作为此模式附件提供的AWS CloudFormation 模板。在下一个操作说明中,提供参数的值。有关部署AWS CloudFormation 模板的更多信息,请参阅 “相关资源” 部分。

云架构师
任务描述所需技能

命名 S3 存储桶。

输入您在第一个操作说明中创建的 S3 存储桶的名称。

云架构师

提供 Amazon S3 密钥。

提供 Lambda 代码 .zip 文件在 S3 存储桶中的位置,不带前导斜杠(例如,<directory>/<file-name>.zip)。

云架构师

提供电子邮箱地址。

提供有效的电子邮件地址以接收 Amazon SNS 通知。

云架构师

定义日志记录级别。

定义 Lambda 函数的日志记录级别与频率。“信息”表示有关应用程序进度的详细信息消息。“错误”表示仍可能允许应用程序继续运行的错误事件。“警告”表示潜在的有害情况。

云架构师
任务描述所需技能

确认订阅。

成功部署模板后,它将向提供的电子邮件地址发送订阅电子邮件。您必须确认此电子邮件订阅才能接收违规通知。

云架构师

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip