Amazon EMR 서버리스 비용 추정기

Amazon EMR 서버리스 비용 추정기

소스 노드 : 1776349

Amazon EMR 서버리스 의 서버리스 옵션입니다. 아마존 EMR 이를 통해 데이터 분석가와 엔지니어는 클러스터나 서버를 구성, 관리 및 확장하지 않고도 Apache Spark 및 Hive와 같은 오픈 소스 빅 데이터 분석 프레임워크를 사용하여 애플리케이션을 쉽게 실행할 수 있습니다. 인스턴스와 클러스터를 계획하고 운영할 필요 없이 Amazon EMR의 성능 최적화 런타임을 통해 최신 오픈 소스 프레임워크의 모든 기능을 사용할 수 있습니다.

Amazon EMR을 사용하면 기존의 전용 EMR 클러스터에서 분석 애플리케이션을 실행할 수 있습니다. Amazon Elastic Kubernetes 서비스 (Amazon EKS) 클러스터 또는 클러스터나 인스턴스를 관리할 필요가 없는 새로운 EMR 서버리스 배포 옵션 사용. Amazon EMR 릴리스(예: Amazon EMR 6.8)를 사용하여 Spark 또는 Hive 애플리케이션을 구축할 때 다음을 사용하여 EKS 클러스터에서 EMR 클러스터에서 애플리케이션을 실행할 수 있습니다. EKS의 Amazon EMR, 또는 애플리케이션을 변경할 필요 없이 EMR 서버리스를 사용합니다.

각 배포 옵션의 이점에 대해 알아보려면 EMR 서버리스, 를 참조 EC2에서 EMR 서버리스와 Amazon EMR의 기능 차이점은 무엇입니까? Amazon EMR FAQ에서. 다음에서 이러한 옵션의 가격에 대해 알아볼 수도 있습니다. Amazon EMR 요금 페이지. 많은 고객이 이미 EMR 클러스터에서 데이터 분석 애플리케이션을 실행하고 있으며 새로운 서버리스 옵션이 더 간단하고 저렴하다는 사실을 알고 있습니다.

이 게시물에서는 새로운 서버리스 옵션을 사용하여 현재 EMR 클러스터에서 실행되는 애플리케이션을 실행하는 데 드는 비용을 추정하고 현재 애플리케이션 메트릭을 사용하여 이 분석을 수행하는 방법에 대해 설명합니다. 이 접근 방식은 애플리케이션에 가장 비용 효과적인 배포 옵션을 평가하고 채택하는 데 도움이 됩니다. 그러나 Amazon EMR 요금 페이지에는 EMR Serverless에서 기존 EMR 클러스터 애플리케이션을 실행하는 비용을 쉽게 예측할 수 있는 방법이 나와 있지 않습니다. 다음 섹션에서는 이를 가능하게 하는 접근 방식을 설명합니다.

이 게시물의 예에서는 EMR 클러스터에서 실행되는 애플리케이션에 대한 비용 추정을 얻을 수 있는 방법에 대해 설명하지만 다른 곳에서 Spark 또는 Hive 애플리케이션을 실행 중이고 EMR에서 실행하는 비용을 추정하려는 경우에도 이 접근 방식을 사용할 수 있습니다. 서버리스. 예를 들어 자체 관리형 Spark 또는 Hive 애플리케이션을 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 클러스터 또는 Spark 작업을 실행하는 경우 AWS 접착제, 이 접근 방식을 사용하여 EMR 서버리스에서 애플리케이션을 실행하는 비용을 추정하는 방법을 보여줍니다.

EMR 클러스터에서 애플리케이션을 실행하는 비용 추정

Amazon EMR 클러스터에서 애플리케이션을 실행할 때 다음에 대해 별도로 요금이 부과됩니다.

  1. 실행 중인 클러스터 인스턴스의 Amazon EC2 가격(기본 서버 가격)
  2. 의 가격 아마존 엘라스틱 블록 스토어 (Amazon EBS) 볼륨(EBS 볼륨을 연결하도록 선택한 경우)
  3. 클러스터 인스턴스에 대한 Amazon EMR 가격

클러스터 실행의 총 비용에는 세 가지가 모두 포함됩니다. 온디맨드, 2년 및 1년 예약 인스턴스, 용량 절약 플랜, 스팟 인스턴스를 포함하여 선택할 수 있는 다양한 Amazon EC3 요금 옵션이 있습니다. 선택하는 Amazon EC2 요금 옵션에 따라 Amazon EC2 요금이 결정됩니다(a). EMR 클러스터에서 애플리케이션을 실행하는 비용은 (a), (b) 및 (c)의 합계입니다. 클러스터 실행 기간 동안(클러스터가 시작된 시간부터 클러스터가 종료된 시간까지) 또는 클러스터가 실행되는 특정 기간 동안 이 비용을 계산할 수 있습니다. 전자를 실행하는 것이 좋습니다. 즉, 클러스터가 시작되는 시간부터 클러스터가 종료되는 시간까지 (a), (b) 및 (c)를 계산합니다. Amazon EMR 클러스터에 대한 태그를 설정한 경우 쉽게 얻을 수 있습니다. AWS Cost Explorer를 사용하는 EMR 클러스터에 대한 자세한 비용 보고서.

EMR 서버리스를 사용하여 동일한 애플리케이션을 실행하는 비용 추정

EMR 서버리스를 사용하여 동일한 애플리케이션을 실행할 때 애플리케이션에서 사용하는 vCPU, 메모리 및 스토리지 리소스의 양에 대해 비용을 지불합니다. EC2 인스턴스 또는 EBS 볼륨에 대한 별도의 요금은 없습니다. 또한 프로비저닝된 EC2 인스턴스가 아닌 애플리케이션에서 실제로 사용하는 리소스에 대해서만 비용을 지불합니다. 예를 들어 EMR 클러스터에서 애플리케이션을 실행할 때 클러스터의 EC2 인스턴스가 부분적으로 사용되는 경우(예: 인스턴스에서 사용 가능한 16GB 중 64GB 메모리가 사용되거나 인스턴스에서 사용 가능한 4개의 VCPU 중 16개의 VCPU가 사용됨) ), 또는 EC2 인스턴스가 유휴 상태일 때(예: 인스턴스가 초기화 중이거나 애플리케이션이 시작되기를 기다리는 중일 때) 전체 EC2 인스턴스 및 해당 기간 동안 Amazon EC2, Amazon EMR 및 Amazon EBS 요금이 여전히 부과됩니다. 인스턴스가 EMR 클러스터에서 활성 상태입니다. EMR 서버리스를 사용하면 작업자가 Spark 또는 Hive 작업을 실행하기 시작한 시점부터 중지된 시점까지 사용된 vCPU, 메모리 및 스토리지 리소스에 대해서만 비용을 지불하면 됩니다.

EMR Serverless에서 EMR Spark 또는 Hive 애플리케이션을 실행하는 비용을 추정하려면 먼저 EMR 클러스터에서 실행된 각 YARN 애플리케이션에서 소비한 총 컴퓨팅 vCore-초, 메모리 MB-초 및 스토리지 GB-초를 집계해야 합니다. YARN 컨테이너가 시작된 시간부터 YARN 컨테이너가 종료된 시간까지입니다. YARN 타임라인 서버 또는 YARN CLI 도구에서 액세스할 수 있는 YARN 리소스 관리자 로그에서 이러한 지표를 얻을 수 있습니다. 각 YARN 애플리케이션에서 사용하는 실행 시간, vCore-초 및 메모리 MB-초를 검색할 수 있습니다.

클러스터가 Spark 애플리케이션만 실행하는 경우 더 간단한 추정 방법이 있습니다. YARN 리소스 관리자 로그에서 vCore-초, 메모리 MB-초 및 스토리지 GB-초를 가져오는 대신 Spark 이벤트 로그에서 이러한 메트릭을 가져올 수 있습니다. 우리는 도구를 제공했습니다 EMR 서브리스 추정기, 애플리케이션에 대한 Spark 이벤트 로그를 구문 분석하고 예상 비용에 대한 집계 메트릭을 제공할 수 있습니다.

애플리케이션에 대한 사용량 지표를 얻은 후 다음을 사용하여 예상 EMR 서버리스 비용을 계산할 수 있습니다. EMR 서버리스 가격. 집계된 vCore-초에 초당 EMR 서버리스 vCPU 가격을 곱하고, 집계된 메모리 MB-초에 초당 EMR 서버리스 메모리 가격을 곱하고, 스토리지 GB-초에 초당 EMR 서버리스 스토리지 가격을 곱하십시오(스토리지 요구 사항이 작업자당 20GB 초과). vCPU, 메모리 및 스토리지에 대한 이러한 비용을 합하면 EMR Serverless에서 동일한 애플리케이션을 실행하는 비용을 비교할 수 있습니다.

이 접근 방식에서는 애플리케이션의 성능이 동일하다고 가정합니다. 즉, EMR 클러스터에 있는 각 YARN 컨테이너의 크기(vCPU, 메모리) 및 런타임 기간은 EMR 서버리스에서 애플리케이션을 실행하는 데 필요한 작업자의 수, 크기 및 런타임 기간과 동일합니다. EMR 릴리스의 EMR 런타임은 애플리케이션이 EMR 클러스터에서 실행되든 EMR 서버리스에서 실행되든 상관없이 동일하기 때문에 이러한 가정을 합니다.

단일 클러스터를 사용하여 EC2 및 EMR Serverless에서 Amazon EMR의 샘플 비용을 비교해 보겠습니다.

우리는 XNUMX개의 노드(기본 XNUMX개, 코어 XNUMX개, 작업 XNUMX개)가 있는 EMR 클러스터에서 Spark 애플리케이션을 실행하고 YARN CLI를 사용하여 YARN 지표를 수집했습니다. 다음 코드는 집계 리소스 할당을 보여줍니다.

총 자원 할당

다음과 같이 EC2 비용에서 Amazon EMR을 계산했습니다.

  • 클러스터 인스턴스
    • 기본: m5.2xlarge:1
    • 코어: r5.2xlarge:2
    • 작업: r5.2xlarge:2
  • 클러스터 런타임 = 18분
  • 인스턴스 온디맨드 비용
    • m5.2xlarge(vCPU 8개, 32GiB 메모리)
      • Amazon EC2: $0.384/시간
      • Amazon EMR 증분: $0.096/시간
    • r5.2xlarge(vCPU 8개, 64GiB 메모리)
      • Amazon EC2: $0.504/시간
      • Amazon EMR 증분: $0.126/시간

다음은 EC2 비용 계산에 대한 EMR입니다.

  • Amazon EMR 비용 = ((1개의 기본 노드 x $0.096/시간) + (2개의 코어 노드 x $0.126/시간) + (2개의 작업 노드 x $0.126/시간)) = $0.60
  • Amazon EC2 비용 = ((1개의 기본 x $0.384/시간) + (2개의 코어 노드 x $0.504/시간) + (2개의 작업 노드 x $0.504/시간)) = $2.40
  • EC2 클러스터의 Amazon EMR 시간당 비용 = $0.6 + $2.40 = $3/시간 * 8/60시간(런타임(시간 단위))

Amazon EC2의 총 Amazon EMR 비용은 시간당 $0.40입니다.

EMR 서버리스 비용을 계산하려면 이전에 EMR 클러스터에서 실행한 동일한 애플리케이션에 대해 vCore-초 및 메모리 MB-초를 집계합니다. 그런 다음 이 수치에 EMR 서버리스 vCPU 및 메모리 가격을 곱합니다. 계산 결과는 다음과 같습니다.

  • Total_vcore_seconds = 5737
  • Total_Memory_mb_seconds = 120156631
  • vCPU/시간 및 메모리-GB/시간으로 변환:
    • 집계된 vCPU/시간: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • 총 vCPU 시간 비용 = 33 vCPU * 0.052624 VCPU/시간 * 8/60 = $0.23
  • 총 메모리 GB 비용 = 1.59MB * 0.0057785 메모리/시간 * 8/60 = $0.00122

이 예에서 총 EMR 서버리스 비용은 $0.231로 42% 감소했습니다.

결론

Amazon EMR 서버리스는 클러스터를 구성, 관리 및 확장하지 않고도 Spark 및 Hive와 같은 오픈 소스 프레임워크를 쉽게 실행할 수 있도록 Amazon EMR에서 최근 출시된 서버리스 옵션입니다. 이미 EMR 클러스터를 사용하고 있는 고객은 EMR 서버리스를 사용하여 EMR 애플리케이션을 실행하는 비용을 추정할 수 있는 방법을 알고 싶어합니다. EMR 클러스터의 애플리케이션 메트릭 분석을 기반으로 비용 분석을 수행하는 데 사용할 수 있는 접근 방식을 제시했습니다.

이 기능을 사용해 보시고 의견을 공유해 주시기 바랍니다.


저자 소개

라디카 라비랄라 AWS의 수석 제품 관리자입니다.

매튜 림 AWS의 선임 솔루션 아키텍처 관리자입니다.

타임 스탬프 :

더보기 AWS 빅 데이터