Εκτιμητής κόστους χωρίς διακομιστή Amazon EMR

Εκτιμητής κόστους χωρίς διακομιστή Amazon EMR

Κόμβος πηγής: 1776349

Amazon EMR χωρίς διακομιστή είναι μια επιλογή χωρίς διακομιστή σε EMR Αμαζονίου Αυτό διευκολύνει τους αναλυτές δεδομένων και τους μηχανικούς να εκτελούν εφαρμογές χρησιμοποιώντας πλαίσια ανάλυσης μεγάλων δεδομένων ανοιχτού κώδικα, όπως το Apache Spark και το Hive, χωρίς ρύθμιση παραμέτρων, διαχείριση και κλιμάκωση συμπλεγμάτων ή διακομιστών. Απολαμβάνετε όλες τις δυνατότητες των πιο πρόσφατων πλαισίων ανοιχτού κώδικα με τον βελτιστοποιημένο για απόδοση χρόνο εκτέλεσης του Amazon EMR και χωρίς να χρειάζεται να σχεδιάζετε και να χειρίζεστε παρουσίες και συμπλέγματα.

Με το Amazon EMR, μπορείτε να εκτελείτε τις εφαρμογές σας αναλυτικών στοιχείων σε αποκλειστικά συμπλέγματα EMR, σε υπάρχοντα Υπηρεσία Amazon Elastic Kubernetes συμπλέγματα (Amazon EKS) ή χρησιμοποιώντας τη νέα επιλογή ανάπτυξης χωρίς διακομιστή EMR όπου δεν χρειάζεται να διαχειρίζεστε συμπλέγματα ή παρουσίες. Όταν δημιουργείτε μια εφαρμογή Spark ή Hive χρησιμοποιώντας μια έκδοση Amazon EMR, ας πούμε Amazon EMR 6.8, μπορείτε να εκτελέσετε την εφαρμογή σε συμπλέγματα EMR, σε συμπλέγματα EKS χρησιμοποιώντας Amazon EMR στο EKS, ή χρησιμοποιώντας EMR Serverless χωρίς να χρειάζεται να αλλάξετε την εφαρμογή.

Για να μάθετε για τα οφέλη κάθε επιλογής ανάπτυξης στο EMR χωρίς διακομιστή, αναφέρομαι σε Ποιες είναι μερικές από τις διαφορές χαρακτηριστικών μεταξύ EMR Serverless και Amazon EMR στο EC2; στο Amazon EMR FAQ. Μπορείτε επίσης να μάθετε για την τιμολόγηση αυτών των επιλογών από το Σελίδα τιμολόγησης Amazon EMR. Πολλοί πελάτες εκτελούν ήδη εφαρμογές ανάλυσης δεδομένων σε συμπλέγματα EMR και διαπιστώνουν ότι η νέα επιλογή χωρίς διακομιστή είναι απλούστερη και λιγότερο δαπανηρή.

Σε αυτήν την ανάρτηση, συζητάμε πώς μπορείτε να υπολογίσετε το κόστος εκτέλεσης μιας εφαρμογής που τρέχει αυτήν τη στιγμή σε συμπλέγματα EMR χρησιμοποιώντας τη νέα επιλογή χωρίς διακομιστή και να εκτελέσετε αυτήν την ανάλυση χρησιμοποιώντας απλώς τις τρέχουσες μετρήσεις της εφαρμογής σας. Αυτή η προσέγγιση σάς βοηθά να αξιολογήσετε και να υιοθετήσετε την επιλογή ανάπτυξης που είναι πιο οικονομική για την εφαρμογή. Ωστόσο, η σελίδα τιμολόγησης EMR του Amazon δεν σας λέει πώς μπορείτε εύκολα να υπολογίσετε το κόστος εκτέλεσης των υπαρχουσών εφαρμογών συμπλέγματος EMR σε EMR Serverless. Στις επόμενες ενότητες, περιγράφουμε μια προσέγγιση που σας επιτρέπει να το κάνετε αυτό.

Αν και το παράδειγμα σε αυτήν την ανάρτηση περιγράφει πώς μπορείτε να λάβετε μια εκτίμηση κόστους για εφαρμογές που εκτελούνται σε συμπλέγματα EMR, μπορείτε επίσης να χρησιμοποιήσετε την προσέγγιση εάν εκτελείτε μια εφαρμογή Spark ή Hive αλλού και θέλετε να υπολογίσετε το κόστος εκτέλεσης της σε EMR Χωρίς διακομιστή. Για παράδειγμα, εάν εκτελείτε αυτοδιαχειριζόμενες εφαρμογές Spark ή Hive Amazon Elastic Compute Cloud συμπλέγματα (Amazon EC2) ή εάν εκτελείτε εργασίες Spark στο Κόλλα AWS, σας δείχνουμε πώς μπορείτε να χρησιμοποιήσετε αυτήν την προσέγγιση για να υπολογίσετε το κόστος εκτέλεσης της εφαρμογής σε EMR Serverless.

Εκτίμηση του κόστους εκτέλεσης εφαρμογών στο σύμπλεγμα EMR

Όταν εκτελείτε εφαρμογές σε συμπλέγματα Amazon EMR, χρεώνεστε ξεχωριστά για τα ακόλουθα:

  1. Η τιμή Amazon EC2 των εκτελούμενων παρουσιών συμπλέγματος (η τιμή για τους υποκείμενους διακομιστές)
  2. Η τιμή για την Κατάστημα Amazon Elastic Block τόμοι (Amazon EBS), εάν επιλέξετε να επισυνάψετε τόμους EBS
  3. Η τιμή EMR του Amazon για τις περιπτώσεις συμπλέγματος

Το συνολικό κόστος λειτουργίας του cluster περιλαμβάνει και τα τρία. Υπάρχει μια ποικιλία επιλογών τιμολόγησης Amazon EC2 από τις οποίες μπορείτε να διαλέξετε, συμπεριλαμβανομένων κατ' απαίτηση, δεσμευμένων παρουσιών 1 έτους και 3 ετών, Προγράμματα εξοικονόμησης χωρητικότητας και Spot Instances. Η επιλογή τιμολόγησης Amazon EC2 που επιλέγετε καθορίζει (α), την τιμή EC2 της Amazon. Το κόστος εκτέλεσης της εφαρμογής σε συμπλέγματα EMR είναι το άθροισμα των (α), (β) και (γ). Μπορείτε να υπολογίσετε αυτό το κόστος για τη διάρκεια ζωής του συμπλέγματος (από τη στιγμή που ξεκινά ένα σύμπλεγμα έως τον τερματισμό του συμπλέγματος) ή για μια συγκεκριμένη χρονική περίοδο κατά την εκτέλεση του συμπλέγματος. Συνιστούμε να εκτελέσετε το πρώτο, δηλαδή να υπολογίσετε τα (a), (b) και (c) από τη στιγμή που ξεκινά το σύμπλεγμα μέχρι τη στιγμή που τερματίζεται το σύμπλεγμα. Εάν έχετε ρυθμίσει ετικέτες για το σύμπλεγμα EMR του Amazon, μπορείτε να το αποκτήσετε εύκολα λεπτομερής αναφορά κόστους για το σύμπλεγμα EMR χρησιμοποιώντας το AWS Cost Explorer.

Εκτίμηση του κόστους εκτέλεσης των ίδιων εφαρμογών με χρήση EMR Serverless

Όταν εκτελείτε τις ίδιες εφαρμογές χρησιμοποιώντας το EMR Serverless, πληρώνετε για την ποσότητα της vCPU, της μνήμης και των πόρων αποθήκευσης που καταναλώνουν οι εφαρμογές σας. Δεν υπάρχει ξεχωριστή χρέωση για περιπτώσεις EC2 ή τόμους EBS. Και, πληρώνετε μόνο για τους πόρους που χρησιμοποιούνται πραγματικά από την εφαρμογή και όχι για τις παρεχόμενες περιπτώσεις EC2. Για παράδειγμα, κατά την εκτέλεση εφαρμογών σε συμπλέγματα EMR, όταν χρησιμοποιείται μερικώς μια παρουσία EC2 στο σύμπλεγμα (ας πούμε, χρησιμοποιούνται 16 GB μνήμης από τα 64 GB που είναι διαθέσιμα στην παρουσία ή 4 μονάδες VCPU από τις 16 μονάδες VCPU που είναι διαθέσιμες στην παρουσία ), ή όταν η παρουσία EC2 είναι αδρανής (για παράδειγμα, όταν η παρουσία προετοιμάζεται ή περιμένει να ξεκινήσει μια εφαρμογή), εξακολουθείτε να επιβαρύνεστε με χρεώσεις Amazon EC2, Amazon EMR και Amazon EBS για ολόκληρη την παρουσία EC2 και για τη διάρκεια που το στιγμιότυπο είναι ενεργό στο σύμπλεγμα EMR. Με το EMR Serverless, πληρώνετε μόνο για την vCPU, τη μνήμη και τους πόρους αποθήκευσης που χρησιμοποιούνται από τη στιγμή που οι εργαζόμενοι αρχίζουν να εκτελούν την εργασία Spark ή Hive μέχρι τη στιγμή που θα σταματήσουν.

Για να υπολογίσετε το κόστος εκτέλεσης της εφαρμογής EMR Spark ή Hive σε EMR Serverless, πρέπει πρώτα να συγκεντρώσετε τα συνολικά υπολογιστικά vCore-second, MB-second μνήμης και GB-second αποθήκευσης που καταναλώνονται από κάθε εφαρμογή YARN που εκτελούνταν στο σύμπλεγμα EMR. από τη στιγμή που ξεκινά το δοχείο ΝΗΜΑΤΟΣ μέχρι τη στιγμή που τερματίζεται το δοχείο ΝΗΜΑΤΟΣ. Μπορείτε να λάβετε αυτές τις μετρήσεις από αρχεία καταγραφής διαχείρισης πόρων YARN που είναι προσβάσιμα από τον διακομιστή χρονολογίου του YARN ή τα εργαλεία YARN CLI. Μπορείτε να ανακτήσετε τον χρόνο εκτέλεσης, τα vCore-second και τα MB-second μνήμης που χρησιμοποιούνται από κάθε μία από τις εφαρμογές YARN.

Εάν το σύμπλεγμα σας εκτελεί μόνο εφαρμογές Spark, υπάρχει μια απλούστερη προσέγγιση για την εκτίμηση. Αντί να λαμβάνετε τα vCore-seconds, MB-second μνήμης και GB-second αποθήκευσης από τα αρχεία καταγραφής του YARN Resource Manager, μπορείτε να λάβετε αυτές τις μετρήσεις από τα αρχεία καταγραφής συμβάντων Spark. Έχουμε δώσει το εργαλείο Εκτιμητής χωρίς διακομιστή EMR, το οποίο μπορεί να αναλύσει τα αρχεία καταγραφής συμβάντων Spark για τις εφαρμογές σας και να παρέχει τις συγκεντρωτικές μετρήσεις για την εκτίμηση κόστους σας.

Αφού λάβετε τις μετρήσεις χρήσης για την εφαρμογή σας, μπορείτε να υπολογίσετε το εκτιμώμενο κόστος χωρίς διακομιστή EMR χρησιμοποιώντας Τιμολόγηση χωρίς διακομιστή EMR. Απλώς πολλαπλασιάστε τα συγκεντρωτικά vCore-δευτερόλεπτα με τιμολόγηση vCPU χωρίς διακομιστή EMR ανά δευτερόλεπτο, πολλαπλασιάστε τη συγκεντρωτική μνήμη MB-δευτερόλεπτα με την τιμολόγηση μνήμης χωρίς διακομιστή EMR ανά δευτερόλεπτο και πολλαπλασιάστε τα GB-δευτερόλεπτα αποθήκευσης με την τιμολόγηση αποθήκευσης χωρίς διακομιστή EMR ανά δευτερόλεπτο (μόνο εάν οι απαιτήσεις αποθήκευσης υπερβαίνει τα 20 GB ανά εργαζόμενο). Προσθέτοντας αυτά τα κόστη για vCPU, μνήμη και αποθήκευση, μπορείτε να συγκρίνετε το κόστος εκτέλεσης των ίδιων εφαρμογών σε EMR Serverless.

Σε αυτή την προσέγγιση, υποθέτουμε ότι η απόδοση της εφαρμογής είναι ισοδύναμη. Με άλλα λόγια, το μέγεθος (vCPU, μνήμη) και η διάρκεια εκτέλεσης για κάθε κοντέινερ YARN στο σύμπλεγμα EMR είναι το ίδιο με τον αριθμό, το μέγεθος και τη διάρκεια εκτέλεσης των εργαζομένων που απαιτούνται για την εκτέλεση της εφαρμογής σε EMR Serverless. Κάνουμε αυτήν την υπόθεση επειδή ο χρόνος εκτέλεσης EMR για μια έκδοση EMR είναι ο ίδιος ανεξάρτητα από το αν η εφαρμογή εκτελείται σε σύμπλεγμα EMR ή σε EMR χωρίς διακομιστή.

Παράδειγμα

Ας κάνουμε ένα δείγμα σύγκρισης κόστους του Amazon EMR σε EC2 και EMR Serverless χρησιμοποιώντας ένα μόνο σύμπλεγμα.

Εκτελέσαμε μια εφαρμογή Spark σε ένα σύμπλεγμα EMR με πέντε κόμβους (έναν κύριο, δύο πυρήνες και δύο εργασίες και συγκεντρώσαμε μετρήσεις YARN χρησιμοποιώντας το YARN CLI. Ο παρακάτω κώδικας δείχνει τη συνολική μας κατανομή πόρων.

συνολική κατανομή πόρων

Υπολογίσαμε το Amazon EMR στο κόστος EC2 ως εξής:

  • Στιγμιότυπα συμπλέγματος
    • Κύριο: m5.2xlarge:1
    • Πυρήνας: r5.2xlarge:2
    • Εργασία: r5.2xlarge:2
  • Χρόνος εκτέλεσης συμπλέγματος = 18 λεπτά
  • Κόστος κατά παραγγελία
    • m5.2xlarge (8 vCPU, 32 GiB μνήμη)
      • Amazon EC2: 0.384 $/ώρα
      • Αυξητικό EMR Amazon: 0.096 $/ώρα
    • r5.2xlarge (8 vCPU, 64 GiB μνήμη)
      • Amazon EC2: 0.504 $/ώρα
      • Αυξητικό EMR Amazon: 0.126 $/ώρα

Το ακόλουθο είναι το EMR για τον υπολογισμό του κόστους EC2:

  • Κόστος 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 $
  • Amazon EMR σε κόστος/ώρα συμπλέγματος EC2 = 0.6 $ + 2.40 $ = 3 $/ώρα * 8/60 ώρες (χρόνος εκτέλεσης σε ώρες)

Το συνολικό κόστος του Amazon EMR στο Amazon EC2 είναι 0.40 $/ώρα.

Για να υπολογίσετε το κόστος χωρίς διακομιστή EMR, συγκεντρώστε τα vCore-seconds και τα MB-second της μνήμης για την ίδια εφαρμογή που εκτελούσατε προηγουμένως στο σύμπλεγμα EMR. Στη συνέχεια πολλαπλασιάστε αυτούς τους αριθμούς με την vCPU χωρίς διακομιστή EMR και την τιμή της μνήμης. Τα αποτελέσματα των υπολογισμών μας είναι τα εξής:

  • Total_vcore_seconds = 5737
  • Total_Memory_mb_seconds = 120156631
  • Μετατροπή σε vCPU/hr και μνήμη-GB/hr:
    • Συγκεντρωτική 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.59 MB * 0.0057785 μνήμη/ώρα * 8/60 = 0.00122 $

Σε αυτό το παράδειγμα, το συνολικό κόστος χωρίς διακομιστή EMR είναι 0.231 $, μείωση 42%.

Συμπέρασμα

Το Amazon EMR Serverless είναι μια πρόσφατη επιλογή χωρίς διακομιστή στο Amazon EMR που διευκολύνει την εκτέλεση πλαισίων ανοιχτού κώδικα όπως το Spark και το Hive χωρίς διαμόρφωση, διαχείριση και κλιμάκωση συμπλεγμάτων. Οι πελάτες που χρησιμοποιούν ήδη συμπλέγματα EMR θέλουν να κατανοήσουν πώς μπορούν να εκτιμήσουν το κόστος εκτέλεσης των εφαρμογών τους EMR χρησιμοποιώντας EMR Serverless. Παρουσιάσαμε μια προσέγγιση που μπορείτε να χρησιμοποιήσετε για να πραγματοποιήσετε ανάλυση κόστους με βάση την ανάλυση μετρήσεων εφαρμογών από τα συμπλέγματα EMR.

Ελπίζουμε να το δοκιμάσετε και να μοιραστείτε τα σχόλιά σας μαζί μας!


Σχετικά με τους συγγραφείς

Ράντικα Ραβιράλα είναι ο κύριος διευθυντής προϊόντων στην AWS.

Μάθιου Λίεμ είναι ο Senior Solution Architecture Manager στην AWS.

Σφραγίδα ώρας:

Περισσότερα από Μεγάλα δεδομένα AWS