確保在啟動時啟用對 Amazon S3 的 Amazon EMR 記錄 - AWS Prescriptive Guidance

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

確保在啟動時啟用對 Amazon S3 的 Amazon EMR 記錄

由喬德瑞 (AWS) 創建

環境:生產

技術:安全、身份、合規;無伺服器;分析

工作負載:開放原始碼

AWS 服務:亞馬遜 EMR; Amazon S3; Amazon SNS; Amazon CloudWatch

Summary

此模式提供安全控制,可監控在 Amazon Web 服務 (AWS) 上執行的 Amazon EMR 叢集的記錄設定。

Amazon EMR 是用於大數據處理和分析的 AWS 工具。Amazon EMR 提供可擴充的低組態服務,做為執行內部叢集運算的替代方案。亞馬遜 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」上啟動 Amazon CloudWatch Events。觸發程序會叫用 AWS Lambda,執行 Python 指令碼。Lambda 函數會從事件 JSON 輸入擷取 EMR 叢集識別碼,並檢查是否有 Amazon S3 記錄 URI。如果找不到 Amazon S3 URI,則 Lambda 函數會傳送 Amazon Simple Notification Service (Amazon SNS) 通知,詳細說明 EMR 叢集名稱、違規詳細資料、AWS 區域、AWS 帳戶和來源的 Lambda Amazon 資源名稱 (ARN)。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • Lambda 程式碼 .zip 檔案的 S3 儲存貯體

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

限制

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

產品版本

  • Amazon EMR 版本 4.8.0 及更新版本

Architecture

目標技術堆疊

  • Amazon CloudWatch Events 事件

  • Amazon EMR

  • Lambda 功能

  • S3 儲存貯體

  • Amazon SNS

目標架構

自動化和擴充

Tools

工具

  • AWS CloudFormation— AWS CloudFormation 可協助您將基礎設施做為程式碼,來塑造模型及設定 AWS 資源。

  • AWS CloudWatch Events 事件— AWS CloudWatch Events 會提供近乎即時的系統事件串流,說明 AWS 資源中的變更。

  • Amazon EMR— Amazon EMR 是一個受管叢集平台,可簡化執行巨量資料架構。

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

  • Amazon S3— Amazon S3 是一種 Web 服務界面,您可以用於存放與擷取任意數量的資料,這些操作從 Web 上的任何位置執行。

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

Code

  • 專案的 .zip 檔案可作為附件使用。

Epics

任務描述所需技能
定義 S3 儲存貯體。

若要裝載 Lambda 程式碼 .zip 檔案,請選擇或建立具有不包含前置斜線的唯一名稱的 S3 儲存貯體。S3 儲存貯體的名稱必須是全域唯一,且命名空間會由所有 AWS 帳戶共享。您的 S3 儲存貯體必須位於與評估中的 Amazon EMR 叢集相同的 AWS 區域。

雲端架構師
任務描述所需技能
將 Lambda 程式碼上傳至 S3 儲存貯體。

將「附件」一節中提供的 Lambda 程式碼 .zip 檔案上傳至 S3 儲存貯體。S3 儲存貯體必須位於與評估中的 Amazon EMR 叢集相同的區域。

雲端架構師
任務描述所需技能
部署 AWS CloudFormation 範本。

在 AWS CloudFormation 主控台的同一個區域中,部署作為此模式附件提供的 AWS CloudFormation 範本。在下一個史詩中,提供參數的值。如需 AWS CloudFormation 範本部署的詳細資訊,請參閱 < 相關資源 > 一節。

雲端架構師
任務描述所需技能
命名 S3 儲存貯體。

輸入您在第一部史詩中建立的 S3 儲存貯體名稱。

雲端架構師
提供 Amazon S3 金鑰。

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

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

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

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

定義 Lambda 函數的記錄層級和頻率。「資訊」指定有關應用程式進度的詳細資訊訊息。「錯誤」指定仍可允許應用程式繼續執行的錯誤事件。「警告」指定潛在有害的狀況。

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

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

雲端架構師

AWS Lambda

Amazon EMR 日誌

部署 AWS CloudFormation 範本

Attachments

attachment.zip