시작 시 Amazon S3에 Amazon EMR 로깅이 활성화되었는지 확인 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

시작 시 Amazon S3에 Amazon EMR 로깅이 활성화되었는지 확인

작성자: Priyanka Chaudhary

환경: 프로덕션

기술: 분석, 보안, ID, 규정 준수, 서버리스

워크로드: 오픈 소스

AWS 서비스: 아마존 EMR, 아마존 S3, 아마존 SNS, 아마존 CloudWatch

요약

이 패턴은 Amazon Web Services에서 실행되는 Amazon EMR 클러스터의 로깅 구성을 모니터링하는 보안 제어를 제공합니다.

Amazon EMR은 빅 데이터 처리 및 분석을 위한 도구입니다. Amazon EMR은 사내 클러스터 컴퓨팅 실행의 대안으로 확장 가능한 저구성 서비스를 제공합니다. Amazon EMR은 두 가지 유형의 EMR 클러스터를 제공합니다.

  • 임시 Amazon EMR 클러스터: 임시 Amazon EMR 클러스터는 처리가 완료되면 자동으로 종료되고 비용 발생을 중단합니다.

  • 영구 Amazon EMR 클러스터: 영구 Amazon EMR 클러스터는 데이터 처리 작업이 완료된 후에도 계속 실행됩니다.

Amazon EMR와 Hadoop은 모두 클러스터에서 상태를 보고하는 로그 파일을 생성합니다. 기본적으로 이러한 파일은 /mnt/var/log/ 디렉터리의 프라이머리 노드에 기록됩니다. 클러스터를 시작할 때 클러스터를 구성하는 방법에 따라, Amazon Simple Storage Service(S3)에 로그를 저장하고 그래픽 디버깅 도구를 통해 볼 수도 있습니다. Amazon S3 로깅은 클러스터가 시작될 때만 지정할 수 있다는 점에 유의하십시오. 이 구성을 사용하면 5분마다 프라이머리 노드에서 Amazon S3 위치로 로그가 전송됩니다. 임시 클러스터의 경우, 처리가 완료되면 클러스터가 사라지고 이러한 로그 파일을 사용하여 실패한 작업을 디버깅할 수 있으므로 Amazon S3 로깅이 중요합니다.

이 패턴은 AWS CloudFormation 템플릿을 사용하여 API 호출을 모니터링하고 "“에서 Amazon CloudWatch Events를 시작하는 보안 제어를 RunJobFlow 배포합니다. 이 트리거는 Python 스크립트를 실행하는 Lambda를 호출합니다. Lambda 함수는 이벤트 JSON 입력에서 EMR 클러스터 ID를 검색하고 Amazon S3 로그 URI도 확인합니다. Amazon S3 URI를 찾을 수 없는 경우, Lambda 함수는 EMR 클러스터 이름, 위반 세부 정보, 리전, 계정 및 알림의 출처가 되는 Lambda Amazon 리소스 이름(ARN)을 자세히 설명하는 Amazon Simple Notification Service(SNS) 알림을 보냅니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • Lambda 코드 .zip 파일을 위한 S3 버킷

  • 위반 알림을 수신하려는 이메일 주소

제한 사항

  • 이 탐지 제어는 리전별이므로 모니터링하려는 각 AWS 리전에 배포해야 합니다.

제품 버전

  • Amazon EMR 릴리스 4.8.0 이상에만 사용됩니다.

아키텍처

대상 기술 스택

  • 아마존 CloudWatch 이벤트 이벤트

  • Amazon EMR

  • Lambda 함수

  • S3 버킷

  • Amazon SNS

대상 아키텍처 

Amazon S3에 대한 Amazon EMR 로깅이 시작 시 활성화되도록 하기 위한 워크플로입니다.

자동화 및 규모 조정

  • AWS Organizations를 사용하는 경우, CloudFormation StackSetsAWS를 사용하여 모니터링하려는 여러 계정에 이 템플릿을 배포할 수 있습니다.

도구

도구

  • AWS CloudFormation — AWS는 인프라를 코드로 사용하여 AWS 리소스를 모델링하고 설정할 수 CloudFormation 있도록 지원합니다.

  • AWS Cloudwatch Events — AWS CloudWatch Events는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 스트림을 거의 실시간으로 제공합니다.

  • Amazon EMR - Amazon EMR은 빅 데이터 프레임워크 실행을 간소화는 관리형 클러스터 플랫폼입니다.

  • Lambda - Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있습니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 규모를 조정합니다.

  • Amazon S3 - Amazon S3에서 언제든지 웹상 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있는 웹 서비스 인터페이스입니다.

  • Amazon SNS - Amazon SNS는 게시자와 클라이언트 간에 웹 서버와 이메일 주소를 포함한 메시지 전달 또는 전송을 조정하고 관리하는 웹 서비스입니다.

코드 

  • 프로젝트의 .zip 파일은 첨부 파일로 제공됩니다.

에픽

작업설명필요한 기술

S3 버킷을 정의합니다.

Lambda 코드 .zip 파일을 호스팅하려면 선행 슬래시가 없는 고유한 이름을 가진 S3 버킷을 선택하거나 생성합니다. S3 버킷 이름은 전역 수준에서 고유하며, 네임스페이스는 모든 계정이 공유합니다. S3 버킷은 평가 중인 Amazon EMR 클러스터와 동일한 리전에 있어야 합니다.

클라우드 아키텍트
작업설명필요한 기술

Lambda 코드를 S3 버킷에 업로드합니다.

“첨부 파일” 섹션에 나와 있는 Lambda 코드 .zip 파일을 S3 버킷에 업로드합니다. S3 버킷은 평가 중인 Amazon EMR 클러스터와 동일한 리전에 있어야 합니다.

클라우드 아키텍트
작업설명필요한 기술

AWS CloudFormation 템플릿을 배포합니다.

AWS CloudFormation 콘솔의 S3 버킷과 동일한 리전에 이 패턴의 첨부 파일로 제공된 AWS CloudFormation 템플릿을 배포합니다. 다음 에픽에서 파라미터에 대한 값을 입력합니다. AWS CloudFormation 템플릿 배포에 대한 자세한 내용은 “관련 리소스” 섹션을 참조하십시오.

클라우드 아키텍트
작업설명필요한 기술

S3 버킷에 이름을 지정합니다.

첫 번째 에픽에서 생성한 S3 버킷의 이름을 입력합니다.

클라우드 아키텍트

Amazon S3 키를 입력합니다.

S3 버킷의 Lambda 코드 .zip 파일 위치를 선행 슬래시 없이 입력합니다(예: <디렉토리>/<파일 이름>.zip).

클라우드 아키텍트

이메일 주소를 입력합니다.

Amazon SNS 알림을 수신할 활성 이메일 주소를 입력합니다.

클라우드 아키텍트

로깅 수준을 정의합니다.

Lambda 함수의 로깅 수준 및 빈도를 정의합니다. “정보”는 애플리케이션 진행 상황에 대한 자세한 정보 메시지를 의미합니다. “오류”는 애플리케이션을 계속 실행하도록 허용하는 오류 이벤트를 의미합니다. “경고”는 잠재적으로 위험한 상황을 의미합니다.

클라우드 아키텍트
작업설명필요한 기술

구독을 확인합니다.

템플릿이 성공적으로 배포되면 입력한 이메일 주소로 구독 이메일 메시지가 전송됩니다. 위반 알림을 받으려면 이 이메일 구독을 확인해야 합니다.

클라우드 아키텍트

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.