기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EMR 클러스터에 대한 가용 영역 유연성
각 AWS 리전 에는 가용 영역이라고 하는 격리된 위치가 여러 개 있습니다. 인스턴스를 시작할 때 선택적으로 사용하는 AWS 리전 에서 가용 영역(AZ)을 지정할 수 있습니다. 가용 영역 유연성이란 여러 AZ에 인스턴스를 배포하는 것을 말합니다. 하나의 인스턴스에 장애가 발생하면 다른 AZ에 있는 인스턴스에서 요청을 처리할 수 있도록 애플리케이션을 설계할 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서에서 리전 및 영역 설명서를 참조하세요.
인스턴스 유연성이란 용량 요구 사항을 충족하기 위해 여러 인스턴스 유형을 사용하는 것을 말합니다. 인스턴스에 유연성을 적용하면 인스턴스 크기, 패밀리, 세대 전반에 걸쳐 총 용량을 사용할 수 있습니다. 유연성이 높으면 단일 인스턴스 유형을 사용하는 클러스터와 비교했을 때 필요한 컴퓨팅 크기를 찾아 할당할 가능성이 커집니다.
인스턴스 및 가용 영역의 유연성은 단일 인스턴스 유형 또는 AZ를 사용하는 클러스터와 비교했을 때 용량 부족 오류(ICE) 및 스팟 중단을 줄여줍니다. 여기에 설명된 모범 사례를 사용하여 초기 인스턴스 패밀리와 크기를 파악한 후 다양화할 인스턴스를 결정합니다. 이 접근 방식은 성능과 비용 편차를 최소화하면서 Amazon EC2 용량 풀의 가용성을 극대화합니다.
가용 영역에 대한 유연성 지원
모든 가용 영역을 Virtual Private Cloud(VPC)에서 사용할 수 있도록 구성하고 EMR 클러스터용으로 선택하는 것이 좋습니다. 클러스터는 하나의 가용 영역에만 존재해야 하지만 Amazon EMR 인스턴스 플릿을 사용하면 여러 가용 영역에 대해 여러 서브넷을 선택할 수 있습니다. Amazon EMR이 클러스터를 시작할 때 서브넷을 둘러보며 사용자가 지정한 인스턴스 및 구매 옵션을 찾습니다. 여러 서브넷에서 EMR 클러스터를 프로비저닝하면 클러스터는 단일 서브넷의 클러스터에 비해 더 깊은 Amazon EC2 용량 풀에 액세스할 수 있습니다.
EMR 클러스터의 Virtual Private Cloud(VPC)에서 사용할 특정 수의 가용 영역에 우선순위를 지정해야 하는 경우 Amazon EC2에서 스팟 배치 점수 기능을 활용할 수 있습니다. 스팟 배치 점수를 사용하면 스팟 인스턴스의 컴퓨팅 요구 사항을 지정하면 EC2는 1~10의 척도로 점수가 매겨진 상위 10개 AWS 리전 또는 가용 영역을 반환합니다. 10점은 스팟 요청이 성공할 가능성이 높음을 나타내고 1은 스팟 요청이 성공할 가능성이 낮음을 나타냅니다. 스팟 배치 점수 사용 방법에 대한 자세한 내용은 Amazon EC2 사용 설명서에서 스팟 배치 점수를 참조하세요.
인스턴스 유형에 대한 유연성 지원
인스턴스 유연성이란 용량 요구 사항을 충족하기 위해 여러 인스턴스 유형을 사용하는 것을 말합니다. 인스턴스 유연성은 Amazon EC2 스팟 및 온디맨드 인스턴스 사용에 모두 도움이 됩니다. 스팟 인스턴스의 경우 Amazon EC2는 인스턴스 유연성을 통해 실시간 용량 데이터를 사용하여 더 깊은 용량 풀에서 인스턴스를 시작할 수 있습니다. 또한 가장 가용성이 높은 인스턴스를 예측합니다. 이렇게 하면 중단이 줄어들고 전체 워크로드 비용을 줄일 수 있습니다. 온디맨드 인스턴스를 사용하면 인스턴스 유연성을 통해 더 많은 인스턴스 풀에서 전체 용량을 프로비저닝할 때 용량 부족 오류(ICE)를 줄일 수 있습니다.
인스턴스 그룹 클러스터의 경우 최대 50개의 EC2 인스턴스 유형을 지정할 수 있습니다. 할당 전략을 사용하는 인스턴스 플릿의 경우 각 프라이머리, 코어 및 태스크 노드 그룹에 대해 최대 30개의 EC2 인스턴스 유형을 지정할 수 있습니다. 인스턴스 범위가 넓어지면 인스턴스 유연성의 이점이 향상됩니다.
인스턴스 유연성 표현
애플리케이션의 인스턴스 유연성을 표현하려면 다음 모범 사례를 고려합니다.
인스턴스 패밀리와 크기 결정
Amazon EMR은 여러 사용 사례를 위한 여러 인스턴스 유형을 지원합니다. 이러한 인스턴스 유형은 Amazon EMR에서 지원되는 인스턴스 유형 설명서에 나열되어 있습니다. 각 인스턴스 유형은 인스턴스 패밀리에 속합니다. 이 패밀리에서는 어떤 유형이 어떤 애플리케이션에 최적화되는지를 설명합니다.
새 워크로드의 경우 범용 패밀리의 인스턴스 유형(예: m5
또는 c5
)으로 벤치마킹해야 합니다. 그런 다음 Amazon CloudWatch 및 Ganglia에서 OS 및 YARN 지표를 모니터링하고 피크 로드에서 시스템 병목 현상을 파악합니다. 병목 현상에는 CPU, 메모리, 스토리지 및 I/O 작업이 포함됩니다. 병목 현상을 식별한 후에는 컴퓨팅 최적화, 메모리 최적화, 스토리지 최적화 또는 인스턴스 유형에 적합한 다른 인스턴스 패밀리를 선택합니다. 자세한 내용은 GitHub의 Amazon EMR 모범 사례 안내서에서 Determine right infrastructure for your Spark workloads
다음으로, 애플리케이션에 필요한 가장 작은 YARN 컨테이너 또는 Spark 실행기를 식별합니다. 이는 컨테이너에 맞는 가장 작은 인스턴스 크기이자, 클러스터의 최소 인스턴스 크기입니다. 이 지표를 사용하여 더 다양화할 수 있는 인스턴스를 결정합니다. 인스턴스가 작을수록 인스턴스 유연성이 높아집니다.
인스턴스 유연성을 극대화하려면 가능한 한 많은 인스턴스를 활용해야 합니다. 하드웨어 사양이 비슷한 인스턴스로 다각화하는 것이 좋습니다. 이렇게 하면 비용 및 성능 편차를 최소화하면서 EC2 용량 풀에 대한 액세스를 극대화합니다. 규모를 다양화합니다. 그러려면 먼저 AWS Graviton과 이전 세대를 우선합니다. 일반적으로 각 워크로드에 대해 최소 15개의 인스턴스 유형을 유연하게 사용할 수 있도록 합니다. 범용, 컴퓨팅 최적화 또는 메모리 최적화 인스턴스로 시작하는 것이 좋습니다. 이러한 인스턴스 유형은 최고의 유연성을 제공합니다.
추가 인스턴스 포함
다양성을 극대화하려면 추가 인스턴스 유형을 포함합니다. 먼저 인스턴스 크기, Graviton 및 생성 유연성을 우선합니다. 이를 통해 비용 및 성능 프로파일이 비슷한 추가 EC2 용량 풀에 액세스할 수 있습니다. ICE 또는 스팟 중단으로 인해 유연성이 더 필요한 경우 변형 및 패밀리 유연성을 고려합니다. 각 접근 방식에는 사용 사례와 요구 사항에 따라 단점이 있습니다.
-
크기 유연성 - 먼저 동일한 패밀리 내에서 크기가 다른 인스턴스로 다양한 옵션을 지원합니다. 동일한 패밀리 내 인스턴스는 동일한 비용 및 성능을 제공하지만 각 호스트에서 다른 수의 컨테이너를 시작할 수 있습니다. 예를 들어 필요한 최소 실행기 크기가 2 vCPU 및 8Gb 메모리인 경우 최소 인스턴스 크기는
m5.xlarge
입니다. 크기를 유연하게 조정하기 위해m5.xlarge
,m5.2xlarge
,m5.4xlarge
,m5.8xlarge
,m5.12xlarge
,m5.16xlarge
,m5.24xlarge
를 포함합니다. -
Graviton 유연성 - 크기 외에도 Graviton 인스턴스를 사용하여 다각화할 수 있습니다. Graviton 인스턴스는 Amazon EC AWS 2의 클라우드 워크로드에 최상의 가격 대비 성능을 제공하는Graviton2 프로세서로 구동됩니다. Amazon EC2 예를 들어, 최소 인스턴스 크기가
m5.xlarge
인 경우 Graviton의 유연성을 위해m6g.xlarge
,m6g.2xlarge
,m6g.4xlarge
,m6g.8xlarge
,m6g.16xlarge
를 포함할 수 있습니다. -
세대 유연성 - Graviton 및 크기 유연성과 마찬가지로 이전 세대 패밀리의 인스턴스도 동일한 하드웨어 사양을 공유합니다. 그 결과 액세스 가능한 전체 Amazon EC2 풀이 증가하면서 비용 및 성능 프로파일이 비슷해집니다. 생성 유연성을 위해
m4.xlarge
,m4.2xlarge
,m4.10xlarge
,m4.16xlarge
를 포함합니다. -
패밀리 및 변형 유연성
-
용량 - 용량을 최적화하려면 인스턴스 패밀리에서 인스턴스 유연성을 적용하는 것이 좋습니다. 다양한 인스턴스 패밀리의 일반 인스턴스에는 용량 요구 사항을 충족하는 데 도움이 되는 더 깊은 인스턴스 풀이 있습니다. 하지만 다른 패밀리의 인스턴스는 vCPU 대 메모리 비율도 다릅니다. 따라서 예상되는 애플리케이션 컨테이너의 크기가 인스턴스에 맞게 조정되면 사용률이 낮아집니다. 예를 들어,
m5.xlarge
를 사용하는 경우 인스턴스 패밀리 유연성을 위해 컴퓨팅 최적화 인스턴스(예:c5
)를 포함하거나 메모리 최적화 인스턴스(예:r5
)를 포함합니다. -
비용 - 비용을 최적화하려면 여러 변형에서 인스턴스를 유연하게 사용하는 것이 좋습니다. 이러한 인스턴스는 초기 인스턴스와 메모리 및 vCPU 비율이 동일합니다. 변형 유연성의 단점은 이러한 인스턴스의 용량 풀이 작아 추가 용량이 제한되거나 스팟 중단이 심해질 수 있다는 점입니다. 예를 들어
m5.xlarge
를 사용하는 경우 인스턴스 변형에 대한 유연성을 지원하기 위해 AMD 기반 인스턴스(m5a
), SSD 기반 인스턴스(m5d
) 또는 네트워크 최적화 인스턴스(m5n
)를 포함합니다.
-