Amazon EMR Serverless-Kostenschätzer

Amazon EMR Serverless-Kostenschätzer

Quellknoten: 1776349

Amazon EMR ohne Server ist eine serverlose Option in Amazon EMR Das macht es Datenanalysten und Ingenieuren leicht, Anwendungen mit Open-Source-Big-Data-Analyse-Frameworks wie Apache Spark und Hive auszuführen, ohne Cluster oder Server konfigurieren, verwalten und skalieren zu müssen. Sie erhalten alle Funktionen der neuesten Open-Source-Frameworks mit der leistungsoptimierten Laufzeit von Amazon EMR, und das ohne Instanzen und Cluster planen und betreiben zu müssen.

Mit Amazon EMR können Sie Ihre Analyseanwendungen auf dedizierten EMR-Clustern auf bestehenden ausführen Amazon Elastic Kubernetes-Service (Amazon EKS)-Cluster oder die neue serverlose EMR-Bereitstellungsoption, bei der Sie keine Cluster oder Instanzen verwalten müssen. Wenn Sie eine Spark- oder Hive-Anwendung mit einer Amazon EMR-Version erstellen, z. B. Amazon EMR 6.8, können Sie die Anwendung auf EMR-Clustern und auf EKS-Clustern ausführen Amazon EMR auf EKS, oder verwenden Sie EMR Serverless, ohne die Anwendung ändern zu müssen.

Informationen zu den Vorteilen der einzelnen Bereitstellungsoptionen in EMR Serverlos, beziehen sich auf Was sind einige der Funktionsunterschiede zwischen EMR Serverless und Amazon EMR auf EC2? in den häufig gestellten Fragen zu Amazon EMR. Sie können sich auch über die Preise für diese Optionen unter informieren Amazon EMR-Preisseite. Viele Kunden führen bereits Datenanalyseanwendungen auf EMR-Clustern aus und finden, dass die neue serverlose Option einfacher und kostengünstiger ist.

In diesem Beitrag erörtern wir, wie Sie abschätzen können, was es kosten könnte, eine Anwendung auszuführen, die derzeit auf EMR-Clustern mit der neuen serverlosen Option ausgeführt wird, und wie Sie diese Analyse einfach anhand Ihrer aktuellen Anwendungsmetriken durchführen können. Dieser Ansatz hilft Ihnen, die Bereitstellungsoption zu evaluieren und zu übernehmen, die für die Anwendung am kostengünstigsten ist. Auf der Amazon EMR-Preisseite erfahren Sie jedoch nicht, wie Sie die Kosten für die Ausführung Ihrer vorhandenen EMR-Clusteranwendungen auf EMR Serverless einfach abschätzen können. In den folgenden Abschnitten beschreiben wir einen Ansatz, der Ihnen dies ermöglicht.

Obwohl das Beispiel in diesem Beitrag erläutert, wie Sie eine Kostenschätzung für Anwendungen erhalten, die auf EMR-Clustern ausgeführt werden, können Sie den Ansatz auch verwenden, wenn Sie eine Spark- oder Hive-Anwendung an anderer Stelle ausführen und die Kosten für deren Ausführung auf EMR schätzen möchten Serverlos. Wenn Sie beispielsweise selbstverwaltete Spark- oder Hive-Anwendungen ausführen Amazon Elastic Compute-Cloud (Amazon EC2)-Cluster oder wenn Sie Spark-Jobs ausführen AWS-Kleber, zeigen wir Ihnen, wie Sie diesen Ansatz verwenden können, um die Kosten für die Ausführung der Anwendung auf EMR Serverless abzuschätzen.

Schätzung der Kosten für die Ausführung von Anwendungen auf Ihrem EMR-Cluster

Wenn Sie Anwendungen auf Amazon EMR-Clustern ausführen, wird Ihnen Folgendes separat in Rechnung gestellt:

  1. Der Amazon EC2-Preis für die Ausführung von Cluster-Instances (der Preis für die zugrunde liegenden Server)
  2. Der Preis für Amazon Elastic Block-Shop (Amazon EBS)-Volumes, wenn Sie EBS-Volumes anhängen möchten
  3. Der Amazon EMR-Preis für die Cluster-Instances

Die Gesamtkosten für den Betrieb des Clusters beinhalten alle drei. Es gibt eine Vielzahl von Preisoptionen für Amazon EC2, aus denen Sie wählen können, darunter On Demand, Reserved Instances mit einer Laufzeit von 1 Jahr und 3 Jahren, Kapazitätssparpläne und Spot-Instances. Die von Ihnen gewählte Amazon EC2-Preisoption bestimmt (a) den Amazon EC2-Preis. Die Kosten für die Ausführung der Anwendung auf EMR-Clustern sind die Summe aus (a), (b) und (c). Sie können diese Kosten für die Lebensdauer des Clusters (vom Start des Clusters bis zum Beenden des Clusters) oder für einen bestimmten Zeitraum während der Ausführung des Clusters berechnen. Wir empfehlen, Ersteres auszuführen, d. h. (a), (b) und (c) vom Start des Clusters bis zum Beenden des Clusters zu berechnen. Wenn Sie Tags für Ihren Amazon EMR-Cluster eingerichtet haben, können Sie die einfach abrufen detaillierter Kostenbericht für Ihren EMR-Cluster mit AWS Cost Explorer.

Schätzung der Kosten für die Ausführung derselben Anwendungen mit EMR Serverless

Wenn Sie dieselben Anwendungen mit EMR Serverless ausführen, zahlen Sie für die Menge an vCPU-, Arbeitsspeicher- und Speicherressourcen, die von Ihren Anwendungen verbraucht werden. Für EC2-Instances oder EBS-Volumes fallen keine separaten Gebühren an. Und Sie zahlen nur für die Ressourcen, die tatsächlich von der Anwendung verwendet werden, und nicht für bereitgestellte EC2-Instances. Wenn beispielsweise Anwendungen auf EMR-Clustern ausgeführt werden, wenn eine EC2-Instance im Cluster teilweise genutzt wird (z. B. 16 GB Arbeitsspeicher von 64 GB, die auf der Instance verfügbar sind, oder 4 VCPUs von 16 auf der Instance verfügbaren VCPUs genutzt werden). ) oder wenn sich die EC2-Instance im Leerlauf befindet (z. B. wenn die Instance initialisiert wird oder auf den Start einer Anwendung wartet), fallen weiterhin Amazon EC2-, Amazon EMR- und Amazon EBS-Gebühren für die vollständige EC2-Instance und für die Dauer an die Instanz ist im EMR-Cluster aktiv. Mit EMR Serverless zahlen Sie nur für die vCPU-, Arbeitsspeicher- und Speicherressourcen, die von dem Zeitpunkt an verwendet werden, an dem Mitarbeiter mit der Ausführung Ihres Spark- oder Hive-Jobs beginnen, bis zu dem Zeitpunkt, an dem sie aufhören.

Um die Kosten für die Ausführung Ihrer EMR Spark- oder Hive-Anwendung auf EMR Serverless abzuschätzen, müssen Sie zunächst die gesamten Datenverarbeitungs-VCore-Sekunden, Arbeitsspeicher-MB-Sekunden und Speicher-GB-Sekunden aggregieren, die von jeder YARN-Anwendung verbraucht werden, die auf Ihrem EMR-Cluster ausgeführt wurde. vom Start des YARN-Containers bis zur Beendigung des YARN-Containers. Sie können diese Metriken aus Protokollen des YARN-Ressourcenmanagers abrufen, auf die über den YARN-Zeitachsenserver oder die YARN-CLI-Tools zugegriffen werden kann. Sie können die Laufzeit, vCore-Sekunden und Speicher-MB-Sekunden abrufen, die von jeder der YARN-Anwendungen verwendet werden.

Wenn Ihr Cluster nur Spark-Anwendungen ausführt, gibt es einen einfacheren Ansatz zur Schätzung. Anstatt die vCore-Sekunden, Arbeitsspeicher-MB-Sekunden und Speicher-GB-Sekunden aus YARN-Ressourcenmanager-Protokollen abzurufen, können Sie diese Metriken aus Spark-Ereignisprotokollen abrufen. Wir haben das Tool bereitgestellt EMR-Servless-Schätzer, das die Spark-Ereignisprotokolle für Ihre Anwendungen analysieren und die aggregierten Metriken für Ihre Kostenschätzung bereitstellen kann.

Nachdem Sie die Nutzungsmetriken für Ihre Anwendung erhalten haben, können Sie die geschätzten Kosten für EMR Serverless berechnen EMR Serverless-Preise. Multiplizieren Sie einfach Ihre aggregierten vCore-Sekunden mit den EMR Serverless vCPU-Preisen pro Sekunde, multiplizieren Sie den aggregierten Speicher in MB-Sekunden mit den EMR Serverless-Speicherpreisen pro Sekunde und multiplizieren Sie die Speicher-GB-Sekunden mit den EMR Serverless-Speicherpreisen pro Sekunde (nur wenn die Speicheranforderungen 20 GB pro Worker überschreiten). Indem Sie diese Kosten für vCPU, Arbeitsspeicher und Speicher addieren, können Sie die Kosten für die Ausführung derselben Anwendungen auf EMR Serverless vergleichen.

Bei diesem Ansatz gehen wir davon aus, dass die Leistung der Anwendung gleichwertig ist. Mit anderen Worten, die Größe (vCPU, Arbeitsspeicher) und Laufzeitdauer für jeden YARN-Container im EMR-Cluster ist identisch mit der Anzahl, Größe und Laufzeitdauer der Worker, die zum Ausführen der Anwendung auf EMR Serverless benötigt werden. Wir gehen von dieser Annahme aus, da die EMR-Laufzeit für eine EMR-Version dieselbe ist, unabhängig davon, ob die Anwendung auf einem EMR-Cluster oder auf EMR Serverless ausgeführt wird.

Beispiel

Lassen Sie uns einen Beispielkostenvergleich von Amazon EMR auf EC2 und EMR Serverless mit einem einzigen Cluster durchführen.

Wir haben eine Spark-Anwendung auf einem EMR-Cluster mit fünf Knoten (ein primärer Knoten, zwei Kernknoten und zwei Tasks) ausgeführt und mithilfe der YARN-Befehlszeilenschnittstelle YARN-Metriken gesammelt. Der folgende Code zeigt unsere aggregierte Ressourcenzuweisung.

aggregierte Ressourcenzuweisung

Wir haben die Kosten für Amazon EMR auf EC2 wie folgt berechnet:

  • Cluster-Instanzen
    • Primär: m5.2xlarge:1
    • Kern: r5.2xlarge:2
    • Aufgabe: r5.2xlarge:2
  • Clusterlaufzeit = 18 min
  • Instanz-On-Demand-Kosten
    • m5.2xlarge (8 vCPU, 32 GiB Arbeitsspeicher)
      • Amazon EC2: 0.384 $/Std
      • Amazon EMR inkrementell: 0.096 $/Std
    • r5.2xlarge (8 vCPU, 64 GiB Arbeitsspeicher)
      • Amazon EC2: 0.504 $/Std
      • Amazon EMR inkrementell: 0.126 $/Std

Das Folgende ist die EMR-on-EC2-Kostenberechnung:

  • Amazon EMR-Kosten = ((1 Primärknoten x 0.096 $/Std.) + (2 Kernknoten x 0.126 $/Std.) + (2 Aufgabenknoten x 0.126 $/Std.)) = 0.60 $
  • Amazon EC2-Kosten = ((1 Primärknoten x 0.384 $/Std.) + (2 Kernknoten x 0.504 $/Std.) + (2 Aufgabenknoten x 0.504 $/Std.)) = 2.40 $
  • Amazon EMR auf EC2-Clusterkosten/Std. = 0.6 $ + 2.40 $ = 3 $/Std. * 8/60 Std. (Laufzeit in Std.)

Die Gesamtkosten für Amazon EMR auf Amazon EC2 betragen 0.40 $/Std.

Zur Berechnung der serverlosen EMR-Kosten aggregieren Sie die vCore-Sekunden und Speicher-MB-Sekunden für dieselbe Anwendung, die Sie zuvor auf dem EMR-Cluster ausgeführt haben. Dann multiplizieren Sie diese Zahlen mit dem EMR Serverless vCPU- und Speicherpreis. Unsere Berechnungsergebnisse lauten wie folgt:

  • Total_vcore_seconds = 5737
  • Total_Memory_mb_seconds = 120156631
  • In vCPU/h und Arbeitsspeicher-GB/h konvertieren:
    • Aggregierte vCPU/h: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • Gesamtkosten für vCPU-Stunden = 33 vCPU * 0.052624 VCPU/h * 8/60 = 0.23 $
  • Gesamtspeicherkosten in GB = 1.59 MB * 0.0057785 Speicher/Std. * 8/60 = 0.00122 $

In diesem Beispiel betragen die Gesamtkosten für EMR Serverless 0.231 USD, eine Reduzierung um 42 %.

Zusammenfassung

Amazon EMR Serverless ist eine kürzlich eingeführte serverlose Option in Amazon EMR, die es einfach macht, Open-Source-Frameworks wie Spark und Hive auszuführen, ohne Cluster konfigurieren, verwalten und skalieren zu müssen. Kunden, die bereits EMR-Cluster verwenden, möchten wissen, wie sie die Kosten für den Betrieb ihrer EMR-Anwendungen mit EMR Serverless abschätzen können. Wir haben einen Ansatz vorgestellt, mit dem Sie eine Kostenanalyse basierend auf der Analyse von Anwendungsmetriken aus Ihren EMR-Clustern durchführen können.

Wir hoffen, Sie probieren es aus und teilen uns Ihr Feedback mit!


Über die Autoren

Radhika Ravirala ist der Hauptproduktmanager bei AWS.

Matthäus Liem ist Senior Solution Architecture Manager bei AWS.

Zeitstempel:

Mehr von AWS Big Data