

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

# Amazon EMR on EKS란 무엇인가요?
<a name="emr-eks"></a>

Amazon EMR on EKS는 Amazon Elastic Kubernetes Service(Amazon EKS)에서 오픈 소스 빅 데이터 프레임워크를 실행할 수 있는 Amazon EMR용 배포 옵션을 제공합니다. 이 배포 옵션을 사용하면 Amazon EMR on EKS에서 오픈 소스 애플리케이션용 컨테이너를 구축, 구성 및 관리하는 동안 분석 워크로드 실행에 집중할 수 있습니다.

이미 Amazon EMR을 사용하고 있다면 이제 동일한 Amazon EKS 클러스터에서 다른 유형의 애플리케이션과 함께 Amazon EMR 기반 애플리케이션을 실행할 수 있습니다. 또한 이 배포 옵션을 사용하면 리소스 사용률이 향상되고 여러 가용 영역 전반의 인프라 관리가 간소화됩니다. 이미 Amazon EKS에서 빅 데이터 프레임워크를 실행하고 있다면 이제 Amazon EMR을 사용하여 프로비저닝 및 관리를 자동화하고 Apache Spark를 더 빠르게 실행할 수 있습니다.

Amazon EMR on EKS를 사용하면 팀이 더 효율적으로 협업하고 대량의 데이터를 더 쉽고 비용 효율적으로 처리할 수 있습니다.
+ 인프라를 프로비저닝할 필요 없이 공통 리소스 풀에서 애플리케이션을 실행할 수 있습니다. [Amazon EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio.html) 및 AWS SDK 또는를 사용하여 EKS 클러스터에서 실행되는 분석 애플리케이션을 개발, 제출 및 진단 AWS CLI 할 수 있습니다. 자체 관리형 Apache Airflow 또는 Amazon Managed Workflows for Apache Airflow(MWAA)를 사용하여 Amazon EMR on EKS에서 예약된 작업을 실행할 수 있습니다.
+ 인프라 팀은 공통 컴퓨팅 플랫폼을 중앙에서 관리하여 Amazon EMR 워크로드를 다른 컨테이너 기반 애플리케이션과 통합할 수 있습니다. 일반적인 Amazon EKS 도구를 사용하여 인프라 관리를 간소화하고 다양한 버전의 오픈 소스 프레임워크가 필요한 워크로드에 대해 공유 클러스터를 활용할 수 있습니다. 또한 자동화된 Kubernetes 클러스터 관리 및 OS 패칭을 통해 운영 오버헤드를 줄일 수 있습니다. Amazon EC2 및를 사용하면 성능 AWS Fargate, 운영 또는 재무 요구 사항을 충족하기 위해 여러 컴퓨팅 리소스를 활성화할 수 있습니다.

다음 다이어그램은 Amazon EMR의 두 가지 배포 모델을 보여줍니다.

![\[Amazon EMR 배포 옵션\]](http://docs.aws.amazon.com/ko_kr/emr/latest/EMR-on-EKS-DevelopmentGuide/images/emr-on-eks-deployment.png)


**Topics**
+ [Amazon EMR on EKS에 대한 아키텍처](emr-eks-overview.md)
+ [Amazon EMR on EKS 개념 및 용어 이해](emr-eks-concepts.md)
+ [Amazon EMR on EKS 가상 클러스터에 작업을 제출하면 어떻게 되나요?](emr-eks-how.md)

# Amazon EMR on EKS에 대한 아키텍처
<a name="emr-eks-overview"></a>

Amazon EMR on EKS는 애플리케이션 및 이 애플리케이션이 실행되는 인프라 사이에서 느슨한 결합을 지원합니다. 각 인프라 계층은 후속 계층을 위한 오케스트레이션을 제공합니다. Amazon EMR에 작업을 제출하면 작업 정의에 애플리케이션별 파라미터가 모두 포함됩니다. Amazon EMR은 이러한 파라미터를 사용하여 Amazon EKS에 배포할 포드와 컨테이너를 지시합니다. 그런 다음 Amazon EKS는 Amazon EC2에서 작업을 실행하는 데 AWS Fargate 필요한 컴퓨팅 리소스를 온라인 상태로 가져옵니다.

이러한 느슨한 서비스 결합을 통해 안전하게 격리된 여러 작업을 동시에 실행할 수 있습니다. 또한 동일한 작업을 서로 다른 컴퓨팅 백엔드로 벤치마킹하거나 작업을 여러 가용 영역에 분산하여 가용성을 높일 수 있습니다.

다음 다이어그램은 Amazon EMR on EKS가 다른 AWS 서비스와 작동하는 방식을 보여줍니다.

![\[Amazon EMR on EKS 아키텍처\]](http://docs.aws.amazon.com/ko_kr/emr/latest/EMR-on-EKS-DevelopmentGuide/images/emr-on-eks-architecture.png)


# Amazon EMR on EKS 개념 및 용어 이해
<a name="emr-eks-concepts"></a>

Amazon EMR on EKS는 Amazon Elastic Kubernetes Service(Amazon EKS)에서 오픈 소스 빅 데이터 프레임워크를 실행할 수 있는 Amazon EMR용 배포 옵션을 제공합니다. 이 주제에서는 처리를 위해 제출하는 작업 단위인 네임스페이스, 가상 클러스터 및 작업 실행을 포함하여 몇 가지 일반적인 용어에 대한 컨텍스트를 제공합니다.

## Kubernetes 네임스페이스
<a name="emr-eks-concepts-namespace"></a>

Amazon EKS는 Kubernetes 네임스페이스를 사용하여 클러스터 리소스를 여러 사용자와 애플리케이션 사이에서 분할합니다. 이러한 네임스페이스는 멀티테넌트 환경의 기반입니다. Kubernetes 네임스페이스는 Amazon EC2 또는를 컴퓨팅 공급자 AWS Fargate 로 가질 수 있습니다. 이러한 유연성을 통해 작업을 실행할 수 있는 다양한 성능 및 비용 옵션을 제공합니다.

## 가상 클러스터
<a name="emr-eks-concepts-virtual-cluster"></a>

가상 클러스터는 Amazon EMR이 등록된 Kubernetes 네임스페이스입니다. Amazon EMR은 가상 클러스터를 사용하여 작업을 실행하고 엔드포인트를 호스팅합니다. 동일한 물리적 클러스터가 여러 가상 클러스터를 지원할 수 있습니다. 하지만 각 가상 클러스터는 EKS 클러스터의 네임스페이스 하나에 매핑됩니다. 가상 클러스터는 청구서에 기여하거나 서비스 외부에서 수명 주기 관리가 필요한 활성 리소스를 생성하지 않습니다.

## 작업 실행
<a name="emr-eks-concepts-job-run"></a>

작업 실행은 Spark jar, PySpark 스크립트 또는 SparkSQL 쿼리와 같이 Amazon EMR on EKS에 제출하는 작업 단위입니다. 한 작업에 여러 작업 실행이 포함될 수 있습니다. 작업 실행을 제출할 때는 다음 정보를 포함해야 합니다.
+ 작업을 실행해야 하는 가상 클러스터.
+ 작업을 식별하기 위한 작업 이름.
+ 실행 역할 - 작업을 실행하는 범위가 지정된 IAM 역할로, 이를 통해 작업에서 액세스할 수 있는 리소스를 지정할 수 있습니다.
+ 사용할 오픈 소스 애플리케이션 버전을 지정하는 Amazon EMR 릴리스 레이블.
+ 작업을 제출할 때 사용할 아티팩트(예: spark-submit 파라미터).

기본적으로 로그는 Spark 기록 서버에 업로드되며 AWS Management Console에서 액세스할 수 있습니다. 또한 이벤트 로그, 실행 로그 및 지표를 Amazon S3 및 Amazon CloudWatch에 푸시할 수 있습니다.

## Amazon EMR 컨테이너
<a name="emr-eks-concepts-containers"></a>

Amazon EMR 컨테이너는 [Amazon EMR on EKS의 API 이름](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/Welcome.html)입니다. `emr-containers` 접두사는 다음 시나리오에서 사용됩니다.
+ Amazon EMR on EKS에 대한 CLI 명령의 접두사입니다. 예를 들어 `aws emr-containers start-job-run`입니다.
+ Amazon EMR on EKS에 대한 IAM 정책 작업 앞에 붙는 접두사입니다. 예를 들어 `"Action": [ "emr-containers:StartJobRun"]`입니다. 자세한 내용은 [Amazon EMR on EKS에 대한 정책 작업](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions)을 참조하세요.
+ Amazon EMR on EKS 서비스 엔드포인트에 사용되는 접두사입니다. 예를 들어 `emr-containers.us-east-1.amazonaws.com`입니다. 자세한 내용은 [Amazon EMR on EKS 서비스 엔드포인트](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/service-quotas.html#service-endpoints)를 참조하세요.

# Amazon EMR on EKS 가상 클러스터에 작업을 제출하면 어떻게 되나요?
<a name="emr-eks-how"></a>

Amazon EMR을 Amazon EKS의 Kubernetes 네임스페이스에 등록하면 가상 클러스터가 생성됩니다. 그러면 Amazon EMR이 해당 네임스페이스에서 분석 워크로드를 실행할 수 있습니다. Amazon EMR on EKS를 사용하여 Spark 작업을 가상 클러스터에 제출하는 경우 Amazon EMR on EKS는 Amazon EKS의 Kubernetes 스케줄러에 포드 예약을 요청합니다.

다음 단계 및 다이어그램은 Amazon EMR on EKS 워크플로를 보여줍니다.
+ 기존 Amazon EKS 클러스터를 사용하거나 [eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) 명령줄 유틸리티 또는 Amazon EKS 콘솔을 사용하여 클러스터를 생성합니다.
+ Amazon EMR을 EKS 클러스터의 네임스페이스에 등록하여 가상 클러스터를 생성합니다.
+  AWS CLI 또는 SDK를 사용하여 가상 클러스터에 작업을 제출합니다.

![\[Amazon EMR on EKS 작업\]](http://docs.aws.amazon.com/ko_kr/emr/latest/EMR-on-EKS-DevelopmentGuide/images/emr-on-eks-jobs.png)


Amazon EMR on EKS는 실행하는 각 작업에 대해 Amazon Linux 2 기본 이미지, Apache Spark 및 관련 종속 항목을 포함하는 컨테이너를 생성합니다. 각 작업은 컨테이너를 다운로드하고 실행을 시작하는 포드에서 실행됩니다. 작업이 종료된 후 포드가 종료됩니다. 컨테이너의 이미지가 이전에 노드에 배포된 경우 캐싱된 이미지가 사용되며 다운로드는 무시됩니다. 로그 또는 지표 전달자와 같은 Sidecar 컨테이너를 포드에 배포할 수 있습니다. 작업이 종료된 후에도 Amazon EMR 콘솔에서 Spark 애플리케이션 UI를 사용하여 디버깅할 수 있습니다.