確保啟動時已啟用 Amazon S3 的亞馬遜 EMR 記錄功能 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

確保啟動時已啟用 Amazon S3 的亞馬遜 EMR 記錄功能

環境:生產

技術:安全性、身分識別、合規性、無伺服器、分析

工作負載:開源

AWS 服務:Amazon EMR; Amazon S3; Amazon SNS; Amazon CloudWatch

Summary

此模式提供安全控制,用於監控 Amazon 網路服務 (AWS) 上執行之 Amazon EMR 叢集的記錄組態。

Amazon EMR 是用於大數據處理和分析的 AWS 工具。Amazon EMR 提供可擴充的低組態服務,作為執行內部叢集運算的替代方案。Amazon EMR 提供兩種類型的 EMR 叢集。

  • 暫時性 Amazon EMR 叢集:暫時性 Amazon EMR 叢集會在處理完成時自動關閉並停止產生成本。

  • 持續性 Amazon EMR 叢集:持續性 Amazon EMR 叢集會在資料處理任務完成後繼續執行。

Amazon EMR 和 Hadoop 都會產生報告叢集狀態的日誌檔案。根據預設,這些檔案會寫入 /mnt/var/log/ 目錄中的主節點。根據啟動叢集時的配置方式,您也可以將這些日誌儲存到 Amazon Simple Storage Service (Amazon S3),並透過圖形化偵錯工具檢視它們。請注意,只有在叢集啟動時才能指定 Amazon S3 日誌記錄。使用此組態時,每 5 分鐘會將日誌從主節點傳送到 Amazon S3 位置。對於暫時性叢集而言,Amazon S3 記錄非常重要,因為叢集在處理完成時會消失,而且這些日誌檔可用於偵錯任何失敗的任務。

該模式使用 AWS CloudFormation 範本部署安全控制,以監控 API 呼叫並在「RunJobFlow」上啟 CloudWatch 動 Amazon 事件。觸發程序會叫用 AWS Lambda,它會執行 Python 指令碼。Lambda 函數會從事件 JSON 輸入擷取 EMR 叢集識別碼,並檢查 Amazon S3 日誌 URI。如果找不到 Amazon S3 URI,Lambda 函數會傳送亞馬遜簡單通知服務 (Amazon SNS) 通知,詳細說明該通知來源於 EMR 叢集名稱、違規詳細資訊、AWS 區域、AWS 帳戶以及 Lambda Amazon 資源名稱 (ARN)。

先決條件和限制

先決條件

  • 有效的 AWS 帳戶

  • 用於 Lambda 代碼 .zip 文件的 S3 存儲桶

  • 您想要接收違規通知的電子郵件地址

限制

  • 此偵探控制是區域性的,必須部署在您要監控的 AWS 區域中。

產品版本

  • Amazon EMR 版本 4.8.0 及更新版本

架構

目標技術堆疊

  • Amazon CloudWatch 活動事件

  • Amazon EMR

  • Lambda 函數

  • S3 儲存貯體

  • Amazon SNS

目標架構

自動化和規模

工具

工具

  • AWS CloudFormation — AWS 可 CloudFormation 協助您使用基礎設施即程式碼來建立 AWS 資源的模型和設定。

  • AWS Cloudwatch 活動 — AWS CloudWatch 活動提供近乎即時的系統事件串流,描述 AWS 資源的變更。

  • Amazon EMR — Amazon EMR 是一個受管叢集平台,可簡化大數據架構的執行作業。

  • AWS Lambda — AWS Lambda 支援執行程式碼,無需佈建或管理伺服器。Lambda 只有在需要時才會執行程式碼,可自動從每天數項請求擴展成每秒數千項請求。

  • Amazon S3 — Amazon S3 是一個 Web 服務界面,可用來存放和擷取任意數量的資料,從 Web 上的任何位置。

  • Amazon SNS — Amazon SNS 是一種 Web 服務,可協調和管理發佈者與用戶端之間的訊息傳遞或傳送,包括 Web 伺服器和電子郵件地址。

Code

  • 專案的 .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 密鑰。

在 S3 儲存貯體中提供 Lambda 程式碼 .zip 檔案的位置,而不需要前導斜線 (例如<directory>/<file-name>.zip)。

雲端架構師
提供電子郵件地址。

提供使用中的電子郵件地址以接收 Amazon SNS 通知。

雲端架構師
定義記錄層級。

定義 Lambda 函數的記錄層級和頻率。「信息」指定了有關應用程序進度的詳細信息消息。「Error」指定仍可允許應用程式繼續執行的錯誤事件。「警告」表示可能有害的情況。

雲端架構師
任務描述所需技能
確認訂閱。

當範本成功部署時,會將訂閱電子郵件訊息傳送至提供的電子郵件地址。您必須確認此電子郵件訂閱才能接收違規通知。

雲端架構師

AWS Lambda

Amazon EMR 記錄

部署 AWS CloudFormation 範本

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip