Estimator de costuri Amazon EMR Serverless

Estimator de costuri Amazon EMR Serverless

Nodul sursă: 1776349

Amazon EMR fără server este o opțiune fără server în Amazon EMR ceea ce facilitează analiștilor și inginerilor de date să ruleze aplicații folosind cadre open-source de analiză a datelor mari, cum ar fi Apache Spark și Hive, fără a configura, gestiona și scala clustere sau servere. Obțineți toate caracteristicile celor mai recente cadre open-source cu timpul de execuție optimizat pentru performanță al Amazon EMR și fără a fi nevoie să planificați și să operați instanțe și clustere.

Cu Amazon EMR, puteți rula aplicațiile dvs. de analiză pe clustere EMR dedicate, pe existente Serviciul Amazon Elastic Kubernetes clustere (Amazon EKS) sau folosind noua opțiune de implementare EMR Serverless, unde nu trebuie să gestionați clustere sau instanțe. Când construiți o aplicație Spark sau Hive folosind o versiune Amazon EMR, să spunem Amazon EMR 6.8, puteți rula aplicația pe clustere EMR, pe clustere EKS folosind Amazon EMR pe EKS, sau folosind EMR Serverless fără a fi nevoie să schimbați aplicația.

Pentru a afla despre beneficiile fiecărei opțiuni de implementare în EMR fără server, a se referi la Care sunt unele dintre diferențele de caracteristici dintre EMR Serverless și Amazon EMR pe EC2? în Întrebările frecvente ale Amazon EMR. De asemenea, puteți afla despre prețurile pentru aceste opțiuni din Pagina de prețuri Amazon EMR. Mulți clienți rulează deja aplicații de analiză a datelor pe clustere EMR și constată că noua opțiune fără server este mai simplă și mai puțin costisitoare.

În această postare, discutăm despre modul în care puteți estima ce ar putea costa rularea unei aplicații care rulează în prezent pe clustere EMR utilizând noua opțiune fără server și efectuați această analiză pur și simplu utilizând valorile actuale ale aplicației. Această abordare vă ajută să evaluați și să adoptați opțiunea de implementare care este cea mai rentabilă pentru aplicație. Cu toate acestea, pagina de prețuri Amazon EMR nu vă spune cum puteți estima cu ușurință costul rulării aplicațiilor existente de cluster EMR pe EMR Serverless. În secțiunile următoare, descriem o abordare care vă permite să faceți acest lucru.

Deși exemplul din această postare discută despre cum puteți obține o estimare a costurilor pentru aplicațiile care rulează pe clustere EMR, puteți utiliza și abordarea dacă rulați o aplicație Spark sau Hive în altă parte și doriți să estimați costul rulării acesteia pe EMR. Fără server. De exemplu, dacă rulați aplicații Spark sau Hive autogestionate Cloud Elastic de calcul Amazon clustere (Amazon EC2) sau dacă executați joburi Spark AWS Adeziv, vă arătăm cum puteți utiliza această abordare pentru a estima costul rulării aplicației pe EMR Serverless.

Estimarea costului rulării aplicațiilor pe clusterul dvs. EMR

Când rulați aplicații pe clustere Amazon EMR, sunteți taxat separat pentru următoarele:

  1. Prețul Amazon EC2 pentru rularea instanțelor cluster (prețul pentru serverele de bază)
  2. Prețul Magazin Amazon Elastic Block volume (Amazon EBS), dacă alegeți să atașați volume EBS
  3. Prețul Amazon EMR pentru instanțele cluster

Costul total al rulării clusterului le include pe toate trei. Există o varietate de opțiuni de preț Amazon EC2 din care puteți alege, inclusiv la cerere, instanțe rezervate pe 1 și 3 ani, planuri de economisire a capacității și instanțe spot. Opțiunea de preț Amazon EC2 pe care o alegeți determină (a), prețul Amazon EC2. Costul rulării aplicației pe clustere EMR este suma (a), (b) și (c). Puteți calcula acest cost pe durata de viață a rulării clusterului (din momentul în care un cluster este pornit până la momentul în care clusterul este terminat) sau pentru o anumită perioadă de timp în timp ce clusterul rulează. Vă recomandăm să rulați primul, adică să calculați (a), (b) și (c) din momentul pornirii clusterului până în momentul în care clusterul este terminat. Dacă ați configurat etichete pentru clusterul dvs. Amazon EMR, puteți obține cu ușurință raport detaliat al costurilor pentru clusterul dvs. EMR utilizând AWS Cost Explorer.

Estimarea costului rulării acelorași aplicații folosind EMR Serverless

Când rulați aceleași aplicații folosind EMR Serverless, plătiți pentru cantitatea de vCPU, memorie și resurse de stocare consumate de aplicațiile dvs. Nu există nicio taxă separată pentru instanțele EC2 sau volumele EBS. Și, plătiți doar pentru resursele care sunt utilizate efectiv de aplicație și nu pentru instanțele EC2 furnizate. De exemplu, atunci când rulați aplicații pe clustere EMR, când o instanță EC2 din cluster este utilizată parțial (de exemplu, 16 GB de memorie este utilizată din 64 GB disponibile pe instanță sau 4 VCPU-uri sunt utilizate din 16 VCPU-uri disponibile pe instanță ), sau când instanța EC2 este inactivă (de exemplu, când instanța se inițializează sau așteaptă pornirea unei aplicații), încă mai suportați taxe Amazon EC2, Amazon EMR și Amazon EBS pentru instanța EC2 completă și pentru durata în care instanța este activă în clusterul EMR. Cu EMR Serverless, plătiți doar pentru vCPU, memoria și resursele de stocare utilizate din momentul în care lucrătorii încep să ruleze jobul dvs. Spark sau Hive până în momentul în care se opresc.

Pentru a estima costul rulării aplicației dvs. EMR Spark sau Hive pe EMR Serverless, trebuie mai întâi să cumulați numărul total de secunde vCore de calcul, MB-secunde de memorie și GB-secunde de stocare consumate de fiecare aplicație YARN care a rulat pe clusterul dvs. EMR, din momentul în care containerul YARN este pornit până la momentul în care containerul YARN este terminat. Puteți obține aceste valori din jurnalele managerului de resurse YARN, accesibile de pe serverul cronologiei YARN sau instrumentele YARN CLI. Puteți prelua timpul de rulare, secundele vCore și secundele MB de memorie utilizate de fiecare dintre aplicațiile YARN.

Dacă clusterul dvs. rulează numai aplicații Spark, există o abordare mai simplă de estimare. În loc să obțineți vCore-secunde, memorie MB-secunde și stocare GB-secunde din jurnalele managerului de resurse YARN, puteți obține aceste valori din jurnalele de evenimente Spark. Noi am furnizat instrumentul EMR Servless Estimator, care poate analiza jurnalele de evenimente Spark pentru aplicațiile dvs. și poate furniza valorile agregate pentru estimarea costurilor dvs.

După ce obțineți valorile de utilizare pentru aplicația dvs., puteți calcula costul estimat EMR Serverless folosind Prețuri EMR Serverless. Pur și simplu multiplicați-vă vCore-secunde agregate cu prețul EMR Serverless vCPU pe secundă, înmulțiți memoria agregată MB-secunde cu prețul memoriei EMR Serverless pe secundă și multiplicați stocarea GB-secunde cu prețul de stocare EMR Serverless pe secundă (doar dacă cerințele de stocare depășește 20 GB per lucrător). Adunând aceste costuri pentru vCPU, memorie și stocare, puteți compara costul rulării acelorași aplicații pe EMR Serverless.

În această abordare, presupunem că performanța aplicației este echivalentă. Cu alte cuvinte, dimensiunea (vCPU, memorie) și durata de rulare pentru fiecare container YARN din clusterul EMR este aceeași cu numărul, dimensiunea și durata de rulare a lucrătorilor necesari pentru a rula aplicația pe EMR Serverless. Facem această presupunere deoarece timpul de rulare EMR pentru o ediție EMR este același, indiferent dacă aplicația este rulată pe un cluster EMR sau pe EMR Serverless.

Exemplu

Să facem un exemplu de comparare a costurilor Amazon EMR pe EC2 și EMR Serverless folosind un singur cluster.

Am rulat o aplicație Spark pe un cluster EMR cu cinci noduri (un primar, două de bază și două sarcini și am adunat valorile YARN folosind YARN CLI. Următorul cod arată alocarea noastră agregată de resurse.

alocarea agregată a resurselor

Am calculat Amazon EMR pe costurile EC2 după cum urmează:

  • Instanțele de cluster
    • Primar: m5.2xlarge:1
    • Miez: r5.2xlarge:2
    • Sarcină: r5.2xlarge:2
  • Timp de rulare a clusterului = 18 min
  • Cost la cerere de instanță
    • m5.2xlarge (8 vCPU, 32 GiB memorie)
      • Amazon EC2: 0.384 USD/oră
      • Amazon EMR incremental: 0.096 USD/oră
    • r5.2xlarge (8 vCPU, 64 GiB memorie)
      • Amazon EC2: 0.504 USD/oră
      • Amazon EMR incremental: 0.126 USD/oră

Următorul este EMR pentru calculul costului EC2:

  • Costul Amazon EMR = ((1 nod primar x 0.096 USD/h) + (2 noduri de bază x 0.126 USD/h) + (2 noduri de activitate x 0.126 USD/h)) = 0.60 USD
  • Costul Amazon EC2 = ((1 primar x 0.384 USD/h ) + (2 noduri de bază x 0.504 USD/h) + (2 noduri de activitate x 0.504 USD/h)) = 2.40 USD
  • Costul Amazon EMR pe cluster EC2/h = 0.6 USD + 2.40 USD = 3 USD/h * 8/60 h (durată de rulare în ore)

Costul total Amazon EMR pe Amazon EC2 este de 0.40 USD/oră.

Pentru a calcula costul EMR Serverless, agregați secundele vCore și secundele MB de memorie pentru aceeași aplicație pe care ați rulat-o anterior pe clusterul EMR. Apoi înmulțiți acele numere cu vCPU-ul EMR Serverless și prețul memoriei. Rezultatele calculelor noastre sunt următoarele:

  • Total_vcore_seconds = 5737
  • Total_Memory_mb_seconds = 120156631
  • Convertiți în vCPU/h și memorie-GB/h:
    • vCPU agregat/oră: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • Costul total al vCPU-ore = 33 vCPU * 0.052624 VCPU/h * 8/60 = 0.23 USD
  • Costul total al memoriei GB = 1.59 MB * 0.0057785 memorie/h * 8/60 = 0.00122 USD

În acest exemplu, costul total EMR Serverless este de 0.231 USD, o reducere de 42%.

Concluzie

Amazon EMR Serverless este o opțiune fără server lansată recent în Amazon EMR, care facilitează rularea cadrelor open-source, cum ar fi Spark și Hive, fără configurarea, gestionarea și scalarea clusterelor. Clienții care folosesc deja clustere EMR doresc să înțeleagă cum pot estima costul rulării aplicațiilor lor EMR folosind EMR Serverless. Am prezentat o abordare pe care o puteți utiliza pentru a efectua o analiză a costurilor bazată pe analiza valorilor aplicației din clusterele dvs. EMR.

Sperăm să încercați acest lucru și să ne împărtășiți feedback-ul dvs.!


Despre autori

Radhika Ravirala este managerul principal de produs la AWS.

Matthew Liem este Senior Solution Architecture Manager la AWS.

Timestamp-ul:

Mai mult de la AWS Big Data