本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
確保在啟動時啟用 Amazon S3 EMR記錄
由 Priyanka Chaudhary 建立 (AWS)
環境:生產 | 技術:分析;安全、身分、合規;無伺服器 | 工作負載:開放原始碼 |
AWS 服務:Amazon EMR;Amazon S3;Amazon SNS;Amazon CloudWatch |
Summary
此模式提供安全控制,可監控在 Amazon Web Services () 上執行之 Amazon EMR叢集的記錄組態AWS。
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 通話並啟動 "" 上的 Amazon CloudWatch EventsRunJobFlow。觸發程序會叫用執行 Python 指令碼的 AWS Lambda。Lambda 函數會從事件JSON輸入擷取EMR叢集 ID,並檢查 Amazon S3 日誌URI。如果URI找不到 Amazon S3,Lambda 函數會傳送 Amazon Simple Notification Service (AmazonSNS) 通知,詳細說明來自該通知的EMR叢集名稱、違規詳細資訊、AWS區域、AWS帳戶和 Lambda Amazon Resource Name (ARN)。
先決條件和限制
先決條件
作用中AWS帳戶
Lambda 程式碼 .zip 檔案的 S3 儲存貯體
您要接收違規通知的電子郵件地址
限制
此偵測性控制是區域性控制,必須部署在您打算監控的AWS區域中。
產品版本
Amazon 4.8.0 版及更新EMR版本
架構
目標技術堆疊
Amazon CloudWatch Events 事件
Amazon EMR
Lambda 函數
S3 儲存貯體
Amazon SNS
目標架構
自動化和擴展
如果您使用的是 AWS Organizations,您可以使用 AWS CloudFormation StackSets將此範本部署到您要監控的多個帳戶中。
工具
工具
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 函數的記錄層級和頻率。“資訊” 會指定應用程式進度的詳細資訊訊息。“錯誤” 會指定錯誤事件,這些事件仍然可以允許應用程式繼續執行。“警告” 會指定潛在的有害情況。 | 雲端架構師 |
任務 | 描述 | 所需的技能 |
---|---|---|
確認訂閱。 | 當範本成功部署時,它會傳送訂閱電子郵件訊息到提供的電子郵件地址。您必須確認此電子郵件訂閱才能接收違規通知。 | 雲端架構師 |
相關資源
附件
若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip