Amazon EMR Serverloze kostencalculator

Amazon EMR Serverloze kostencalculator

Bronknooppunt: 1776349

Amazon EMR Serverloos is een serverloze optie in Amazon EMR dat maakt het gemakkelijk voor data-analisten en technici om applicaties uit te voeren met behulp van open-source big data-analyseframeworks zoals Apache Spark en Hive zonder clusters of servers te configureren, beheren en schalen. U krijgt alle functies van de nieuwste opensource-frameworks met de voor prestaties geoptimaliseerde runtime van Amazon EMR, en zonder dat u instanties en clusters hoeft te plannen en te gebruiken.

Met Amazon EMR kunt u uw analysetoepassingen uitvoeren op speciale EMR-clusters, op bestaande Amazon Elastic Kubernetes-service (Amazon EKS)-clusters, of gebruik de nieuwe EMR Serverless-implementatieoptie waarbij u geen clusters of instanties hoeft te beheren. Wanneer u een Spark- of Hive-applicatie bouwt met een Amazon EMR-release, bijvoorbeeld Amazon EMR 6.8, kunt u de applicatie uitvoeren op EMR-clusters, op EKS-clusters met Amazon EPD op EKS, of EMR Serverless gebruiken zonder de applicatie te hoeven wijzigen.

Voor meer informatie over de voordelen van elke implementatieoptie in EMR serverloos, Zie Wat zijn enkele van de functieverschillen tussen EMR Serverless en Amazon EMR op EC2? in de Veelgestelde vragen over Amazon EMR. U kunt ook meer te weten komen over de prijzen voor deze opties van de Amazon EMR-prijspagina. Veel klanten draaien al toepassingen voor gegevensanalyse op EMR-clusters en merken dat de nieuwe serverloze optie eenvoudiger en goedkoper is.

In dit bericht bespreken we hoe u kunt inschatten wat het kan kosten om een ​​applicatie uit te voeren die momenteel op EMR-clusters draait met behulp van de nieuwe serverloze optie, en hoe u deze analyse eenvoudig kunt uitvoeren door uw huidige applicatiestatistieken te gebruiken. Deze aanpak helpt u bij het evalueren en toepassen van de implementatieoptie die het meest kosteneffectief is voor de toepassing. De prijspagina van Amazon EMR vertelt u echter niet hoe u eenvoudig de kosten kunt schatten van het uitvoeren van uw bestaande EMR-clustertoepassingen op EMR Serverless. In de volgende paragrafen beschrijven we een aanpak waarmee u dat kunt doen.

Hoewel in het voorbeeld in dit bericht wordt besproken hoe u een kostenraming kunt krijgen voor applicaties die op EMR-clusters draaien, kunt u deze aanpak ook gebruiken als u elders een Spark- of Hive-applicatie gebruikt en de kosten wilt inschatten om deze op EMR uit te voeren. Serverloos. Als u bijvoorbeeld zelfbeheerde Spark- of Hive-applicaties uitvoert op Amazon Elastic Compute-cloud (Amazon EC2) clusters, of als u Spark-taken uitvoert op AWS lijm, laten we u zien hoe u deze aanpak kunt gebruiken om de kosten te schatten van het uitvoeren van de applicatie op EMR Serverless.

Schatting van de kosten van het uitvoeren van applicaties op uw EMR-cluster

Wanneer u applicaties uitvoert op Amazon EMR-clusters, worden de volgende kosten apart in rekening gebracht:

  1. De Amazon EC2-prijs van draaiende clusterinstanties (de prijs voor de onderliggende servers)
  2. De prijs voor Amazon elastische blokwinkel (Amazon EBS) volumes, als u ervoor kiest om EBS-volumes toe te voegen
  3. De Amazon EMR-prijs voor de clusterinstanties

De totale kosten van het uitvoeren van het cluster omvatten alle drie. Er zijn verschillende Amazon EC2-prijsopties waaruit u kunt kiezen, waaronder On Demand, 1-jarige en 3-jarige Reserved Instances, Capacity Savings Plans en Spot Instances. De Amazon EC2-prijsoptie die u kiest, bepaalt (a), de Amazon EC2-prijs. De kosten voor het uitvoeren van de toepassing op EMR-clusters zijn de som van (a), (b) en (c). U kunt deze kosten berekenen voor de levens duur van het uitvoeren van het cluster (vanaf het moment dat een cluster wordt gestart tot het moment dat het cluster wordt beëindigd), of voor een specifieke periode terwijl het cluster actief is. We raden aan om de eerste uit te voeren, dat wil zeggen om (a), (b) en (c) te berekenen vanaf het moment dat het cluster wordt gestart tot het moment dat het cluster wordt beëindigd. Als je tags hebt ingesteld voor je Amazon EMR-cluster, kun je eenvoudig de gedetailleerd kostenrapport voor uw EMR-cluster met behulp van AWS Cost Explorer.

Schatting van de kosten van het uitvoeren van dezelfde applicaties met behulp van EMR Serverless

Wanneer u dezelfde applicaties uitvoert met EMR Serverless, betaalt u voor de hoeveelheid vCPU, geheugen en opslagresources die door uw applicaties worden verbruikt. Er zijn geen aparte kosten voor EC2-instances of EBS-volumes. En u betaalt alleen voor de resources die daadwerkelijk door de toepassing worden gebruikt en niet voor geleverde EC2-instances. Bijvoorbeeld bij het uitvoeren van applicaties op EMR-clusters, wanneer een EC2-instantie in de cluster gedeeltelijk wordt gebruikt (bijvoorbeeld 16 GB geheugen wordt gebruikt van de 64 GB die beschikbaar is op de instantie, of 4 VCPU's worden gebruikt van de 16 VCPU's die beschikbaar zijn op de instantie ), of wanneer de EC2-instantie inactief is (bijvoorbeeld wanneer de instantie wordt geïnitialiseerd of wacht tot een toepassing start), moet u nog steeds Amazon EC2-, Amazon EMR- en Amazon EBS-kosten betalen voor de volledige EC2-instantie en voor de duur dat de instantie is actief in het EMR-cluster. Met EMR Serverless betaalt u alleen voor de vCPU, het geheugen en de opslagresources die worden gebruikt vanaf het moment dat werknemers beginnen met het uitvoeren van uw Spark- of Hive-taak tot het moment dat ze stoppen.

Om de kosten te schatten van het uitvoeren van uw EMR Spark- of Hive-toepassing op EMR Serverless, moet u eerst het totale aantal vCore-rekenseconden, geheugen-MB-seconden en opslag-GB-seconden samenvoegen die zijn verbruikt door elke YARN-toepassing die op uw EMR-cluster is uitgevoerd. vanaf het moment dat de YARN-container wordt gestart tot het moment dat de YARN-container wordt beëindigd. U kunt deze statistieken verkrijgen uit YARN resource manager-logboeken die toegankelijk zijn via de YARN-tijdlijnserver of YARN CLI-tools. U kunt de uitvoeringstijd, vCore-seconden en geheugen-MB-seconden ophalen die door elk van de YARN-toepassingen worden gebruikt.

Als uw cluster alleen Spark-toepassingen uitvoert, is er een eenvoudigere benadering om te schatten. In plaats van de vCore-seconden, geheugen-MB-seconden en opslag-GB-seconden op te halen uit YARN resource manager-logboeken, kunt u deze metrische gegevens ophalen uit Spark-gebeurtenislogboeken. We hebben de tool geleverd EMR servless schatter, waarmee de Spark-gebeurtenislogboeken voor uw toepassingen kunnen worden geparseerd en de geaggregeerde metrische gegevens voor uw kostenraming kunnen worden geleverd.

Nadat u de gebruiksstatistieken voor uw toepassing hebt ontvangen, kunt u de geschatte EMR Serverless-kosten berekenen met behulp van EMR serverloze prijzen. Vermenigvuldig simpelweg uw geaggregeerde vCore-seconden met EMR serverloze vCPU-prijzen per seconde, vermenigvuldig geaggregeerde geheugen-MB-seconden met de EMR serverloze geheugen-prijzen per seconde, en vermenigvuldig opslag-GB-seconden met de EMR serverloze opslagprijzen per seconde (alleen als de opslagvereisten meer dan 20 GB per werknemer). Door deze kosten voor vCPU, geheugen en opslag bij elkaar op te tellen, kunt u de kosten vergelijken van het uitvoeren van dezelfde applicaties op EMR Serverless.

Bij deze benadering gaan we ervan uit dat de prestaties van de applicatie gelijkwaardig zijn. Met andere woorden, de grootte (vCPU, geheugen) en runtimeduur voor elke YARN-container op het EMR-cluster is hetzelfde als het aantal, de grootte en runtimeduur van werknemers die nodig zijn om de applicatie op EMR Serverless uit te voeren. We maken deze aanname omdat de EMR-runtime voor een EMR-release hetzelfde is, ongeacht of de applicatie wordt uitgevoerd op een EMR-cluster of op EMR Serverless.

Voorbeeld

Laten we een voorbeeld van een kostenvergelijking maken van Amazon EMR op EC2 en EMR Serverless met behulp van één cluster.

We hebben een Spark-toepassing uitgevoerd op een EMR-cluster met vijf knooppunten (één primaire, twee kern- en twee taak- en YARN-statistieken verzameld met behulp van de YARN CLI. De volgende code toont onze geaggregeerde resourcetoewijzing.

geaggregeerde toewijzing van middelen

We hebben de Amazon EMR op EC2-kosten als volgt berekend:

  • Clusterinstanties
    • Primair: m5.2xgroot:1
    • Kern: r5.2xgroot:2
    • Taak: r5.2xlarge:2
  • Clusterlooptijd = 18 min
  • Instantiekosten op aanvraag
    • m5.2xlarge (8 vCPU, 32 GiB-geheugen)
      • Amazon EC2: $ 0.384/uur
      • Amazon EMR incrementeel: $ 0.096/uur
    • r5.2xlarge (8 vCPU, 64 GiB-geheugen)
      • Amazon EC2: $ 0.504/uur
      • Amazon EMR incrementeel: $ 0.126/uur

Het volgende is de EMR op EC2-kostenberekening:

  • Amazon EMR-kosten = ((1 primair knooppunt x $ 0.096/uur) + (2 kernknooppunten x $ 0.126/uur) + (2 taakknooppunten x $ 0.126/uur)) = $ 0.60
  • Amazon EC2-kosten = ((1 primaire x $ 0.384/uur) + (2 kernknooppunten x $ 0.504/uur) + (2 taakknooppunten x $ 0.504/uur)) = $ 2.40
  • Amazon EMR op EC2 cluster kosten/uur = $ 0.6 + $ 2.40 = $ 3/uur * 8/60 uur (runtime in uur)

De totale kosten van Amazon EMR op Amazon EC2 bedragen $ 0.40/uur.

Om de EMR Serverless-kosten te berekenen, voegt u de vCore-seconden en geheugen-MB-seconden samen voor dezelfde toepassing die u eerder op het EMR-cluster hebt uitgevoerd. Vermenigvuldig die getallen vervolgens met de EMR Serverless vCPU en geheugenprijs. Onze berekeningsresultaten zijn als volgt:

  • Total_vcore_seconden = 5737
  • Totaal_geheugen_mb_seconden = 120156631
  • Converteren naar vCPU/uur en geheugen-GB/uur:
    • Geaggregeerde vCPU/uur: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • Totale kosten vCPU-uren = 33 vCPU * 0.052624 VCPU/uur * 8/60 = $ 0.23
  • Totale GB-geheugenkosten = 1.59 MB * 0.0057785 geheugen/uur * 8/60 = $ 0.00122

In dit voorbeeld zijn de totale EMR Serverless-kosten $ 0.231, een verlaging van 42%.

Conclusie

Amazon EMR Serverless is een onlangs gelanceerde serverloze optie in Amazon EMR die het gemakkelijk maakt om open-source frameworks zoals Spark en Hive uit te voeren zonder clusters te configureren, beheren en schalen. Klanten die al EMR-clusters gebruiken, willen weten hoe ze de kosten kunnen inschatten van het uitvoeren van hun EMR-applicaties met behulp van EMR Serverless. We hebben een aanpak gepresenteerd die u kunt gebruiken om een ​​kostenanalyse uit te voeren op basis van het analyseren van applicatiestatistieken van uw EMR-clusters.

We hopen dat je dit probeert en deel je feedback met ons!


Over de auteurs

Radhika Ravirala is de hoofdproductmanager bij AWS.

Matthijs Liem is de Senior Solution Architecture Manager bij AWS.

Tijdstempel:

Meer van AWS-bigdata