Penaksir biaya Amazon EMR Tanpa Server

Penaksir biaya Amazon EMR Tanpa Server

Node Sumber: 1776349

Amazon EMR Tanpa Server adalah opsi tanpa server di Amazon ESDM yang memudahkan analis dan insinyur data untuk menjalankan aplikasi menggunakan kerangka kerja analitik data besar sumber terbuka seperti Apache Spark dan Hive tanpa mengonfigurasi, mengelola, dan menskalakan kluster atau server. Anda mendapatkan semua fitur kerangka kerja sumber terbuka terbaru dengan runtime Amazon EMR yang dioptimalkan kinerjanya, dan tanpa harus merencanakan dan mengoperasikan instans dan klaster.

Dengan Amazon EMR, Anda dapat menjalankan aplikasi analitik di klaster EMR khusus, yang sudah ada Layanan Amazon Elastic Kubernetes (Amazon EKS) klaster, atau menggunakan opsi penyebaran Tanpa Server EMR baru di mana Anda tidak perlu mengelola klaster atau instans. Saat Anda membuat aplikasi Spark atau Hive menggunakan rilis Amazon EMR, misalnya Amazon EMR 6.8, Anda dapat menjalankan aplikasi di klaster EMR, di klaster EKS menggunakan Amazon EMR di EKS, atau menggunakan EMR Serverless tanpa harus mengubah aplikasi.

Untuk mempelajari tentang manfaat dari setiap opsi penerapan di ESDM Tanpa Server, mengacu pada Apa saja perbedaan fitur antara EMR Tanpa Server dan Amazon EMR di EC2? di FAQ Amazon EMR. Anda juga dapat mempelajari tentang harga untuk opsi ini dari Halaman harga Amazon EMR. Banyak pelanggan sudah menjalankan aplikasi analitik data di klaster EMR, dan menemukan bahwa opsi tanpa server yang baru lebih sederhana dan lebih murah.

Dalam postingan ini, kami membahas bagaimana Anda dapat memperkirakan biaya untuk menjalankan aplikasi yang saat ini berjalan di klaster EMR menggunakan opsi tanpa server yang baru, dan melakukan analisis ini hanya dengan menggunakan metrik aplikasi Anda saat ini. Pendekatan ini membantu Anda mengevaluasi dan mengadopsi opsi penerapan yang paling hemat biaya untuk aplikasi. Namun, halaman harga Amazon EMR tidak memberi tahu Anda bagaimana Anda dapat dengan mudah memperkirakan biaya menjalankan aplikasi klaster EMR yang ada di EMR Tanpa Server. Di bagian berikut, kami menjelaskan pendekatan yang memungkinkan Anda melakukannya.

Meskipun contoh dalam posting ini membahas bagaimana Anda bisa mendapatkan perkiraan biaya untuk aplikasi yang berjalan di klaster EMR, Anda juga dapat menggunakan pendekatan tersebut jika Anda menjalankan aplikasi Spark atau Hive di tempat lain, dan ingin memperkirakan biaya menjalankannya di EMR Tanpa server. Misalnya, jika Anda menjalankan aplikasi Spark atau Hive yang dikelola sendiri Cloud komputasi elastis Amazon (Amazon EC2) cluster, atau jika Anda menjalankan tugas Spark Lem AWS, kami menunjukkan kepada Anda bagaimana Anda dapat menggunakan pendekatan ini untuk memperkirakan biaya menjalankan aplikasi di ESDM Tanpa Server.

Memperkirakan biaya menjalankan aplikasi di klaster EMR Anda

Saat Anda menjalankan aplikasi di klaster Amazon EMR, Anda dikenai biaya terpisah untuk hal-hal berikut:

  1. Harga Amazon EC2 untuk menjalankan instans klaster (harga untuk server yang mendasarinya)
  2. Harga untuk Toko Blok Elastis Amazon (Amazon EBS) volume, jika Anda memilih untuk melampirkan volume EBS
  3. Harga Amazon EMR untuk instans klaster

Total biaya menjalankan klaster mencakup ketiganya. Ada berbagai opsi harga Amazon EC2 yang dapat Anda pilih, termasuk Sesuai Permintaan, Instans Cadangan 1 tahun dan 3 tahun, Paket Penghematan Kapasitas, dan Instans Spot. Opsi harga Amazon EC2 yang Anda pilih menentukan (a), harga Amazon EC2. Biaya menjalankan aplikasi pada klaster ESDM adalah penjumlahan dari (a), (b), dan (c). Anda dapat menghitung biaya ini untuk seumur hidup menjalankan klaster (dari saat klaster dimulai hingga saat klaster dihentikan), atau untuk jangka waktu tertentu saat klaster sedang berjalan. Kami merekomendasikan menjalankan yang pertama, yaitu untuk menghitung (a), (b), dan (c) dari saat klaster dimulai hingga klaster diakhiri. Jika Anda telah menyiapkan tag untuk klaster Amazon EMR, Anda dapat dengan mudah mendapatkannya laporan biaya terperinci untuk klaster EMR Anda menggunakan AWS Cost Explorer.

Memperkirakan biaya menjalankan aplikasi yang sama menggunakan EMR Tanpa Server

Saat Anda menjalankan aplikasi yang sama menggunakan EMR Tanpa Server, Anda membayar jumlah vCPU, memori, dan sumber daya penyimpanan yang digunakan oleh aplikasi Anda. Tidak ada biaya terpisah untuk instans EC2 atau volume EBS. Dan, Anda hanya membayar sumber daya yang benar-benar digunakan oleh aplikasi dan bukan untuk instans EC2 yang disediakan. Misalnya, saat menjalankan aplikasi di klaster EMR, saat instans EC2 di klaster digunakan sebagian (katakanlah, memori 16 GB digunakan dari 64 GB yang tersedia di instans, atau 4 VCPU digunakan dari 16 VCPU yang tersedia di instans ), atau saat instans EC2 menganggur (misalnya, saat instans sedang diinisialisasi atau menunggu aplikasi dimulai), Anda masih dikenakan biaya Amazon EC2, Amazon EMR, dan Amazon EBS untuk instans EC2 penuh dan selama durasi itu instance aktif di cluster EMR. Dengan EMR Tanpa Server, Anda hanya membayar sumber daya vCPU, memori, dan penyimpanan yang digunakan sejak pekerja mulai menjalankan pekerjaan Spark atau Hive Anda hingga mereka berhenti.

Untuk memperkirakan biaya menjalankan aplikasi EMR Spark atau Hive di EMR Tanpa Server, pertama-tama Anda harus menggabungkan total detik vCore komputasi, memori MB-detik, dan GB-detik penyimpanan yang digunakan oleh setiap aplikasi YARN yang berjalan di klaster EMR Anda, sejak wadah BENANG dimulai hingga wadah BENANG dihentikan. Anda dapat memperoleh metrik ini dari log pengelola sumber daya YARN yang dapat diakses dari server timeline YARN atau alat YARN CLI. Anda dapat mengambil waktu berjalan, vCore-detik, dan memori MB-detik yang digunakan oleh masing-masing aplikasi YARN.

Jika klaster Anda hanya menjalankan aplikasi Spark, ada pendekatan yang lebih sederhana untuk memperkirakan. Alih-alih mendapatkan vCore-detik, memori MB-detik, dan GB-detik penyimpanan dari log pengelola sumber daya YARN, Anda bisa mendapatkan metrik ini dari log peristiwa Spark. Kami telah menyediakan alatnya Estimator Tanpa Servis ESDM, yang dapat mengurai log peristiwa Spark untuk aplikasi Anda dan menyediakan metrik gabungan untuk perkiraan biaya Anda.

Setelah Anda mendapatkan metrik penggunaan untuk aplikasi Anda, Anda dapat menghitung perkiraan biaya Tanpa Server EMR menggunakan Harga Tanpa Server ESDM. Cukup gandakan gabungan vCore-detik Anda dengan harga vCPU Tanpa Server EMR per detik, gandakan memori gabungan MB-detik dengan harga memori Tanpa Server EMR per detik, dan gandakan GB-detik penyimpanan dengan harga penyimpanan Tanpa Server EMR per detik (hanya jika persyaratan penyimpanan melebihi 20 GB per pekerja). Dengan menjumlahkan biaya vCPU, memori, dan penyimpanan ini, Anda dapat membandingkan biaya menjalankan aplikasi yang sama di EMR Tanpa Server.

Dalam pendekatan ini, kami berasumsi bahwa kinerja aplikasi setara. Dengan kata lain, ukuran (vCPU, memori) dan durasi runtime untuk setiap container YARN pada cluster EMR sama dengan jumlah, ukuran, dan durasi runtime pekerja yang diperlukan untuk menjalankan aplikasi pada EMR Serverless. Kami membuat asumsi ini karena runtime EMR untuk rilis EMR adalah sama terlepas dari apakah aplikasi dijalankan di klaster EMR atau di Tanpa Server EMR.

Contoh

Mari kita lakukan perbandingan biaya sampel Amazon EMR di EC2 dan EMR Tanpa Server menggunakan satu klaster.

Kami menjalankan aplikasi Spark pada kluster EMR dengan lima node (satu primer, dua inti, dan dua tugas dan mengumpulkan metrik YARN menggunakan YARN CLI. Kode berikut menunjukkan alokasi sumber daya agregat kami.

alokasi sumber daya agregat

Kami menghitung Amazon EMR pada biaya EC2 sebagai berikut:

  • Contoh cluster
    • Utama: m5.2xbesar:1
    • Inti: r5.2xbesar:2
    • Tugas: r5.2xbesar:2
  • Waktu proses kluster = 18 mnt
  • Biaya sesuai permintaan instans
    • m5.2xlarge (8 vCPU, memori 32 GiB)
      • Amazon EC2: $0.384/jam
      • Inkremental Amazon EMR: $0.096/jam
    • r5.2xlarge (8 vCPU, memori 64 GiB)
      • Amazon EC2: $0.504/jam
      • Inkremental Amazon EMR: $0.126/jam

Berikut adalah EMR pada perhitungan biaya EC2:

  • Biaya Amazon EMR = ((1 node utama x $0.096/jam) + (2 node inti x $0.126/jam) + (2 node tugas x $0.126/jam)) = $0.60
  • Biaya Amazon EC2 = ((1 primer x $0.384/jam ) + (2 node inti x $0.504/jam) + (2 node tugas x $0.504/jam)) = $2.40
  • Amazon EMR pada biaya klaster EC2/jam = $0.6 + $2.40 = $3/jam * 8/60 jam (runtime dalam jam)

Total biaya Amazon EMR pada Amazon EC2 adalah $0.40/jam.

Untuk menghitung biaya Tanpa Server EMR, gabungkan vCore-detik dan memori MB-detik untuk aplikasi yang sama yang Anda jalankan sebelumnya di klaster EMR. Kemudian gandakan angka tersebut dengan vCPU Tanpa Server EMR dan harga memori. Hasil perhitungan kami adalah sebagai berikut:

  • Total_vcore_detik = 5737
  • Total_Memori_mb_detik = 120156631
  • Konversi ke vCPU/jam dan memori-GB/jam:
    • Gabungan vCPU/jam: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • Total biaya vCPU-jam = 33 vCPU * 0.052624 VCPU/jam * 8/60 = $0.23
  • Total biaya memori GB = 1.59 MB * 0.0057785 memori/jam * 8/60 = $0.00122

Dalam contoh ini, total biaya EMR Tanpa Server adalah $0.231, pengurangan sebesar 42%.

Kesimpulan

Amazon EMR Tanpa Server adalah opsi tanpa server yang baru diluncurkan di Amazon EMR yang memudahkan untuk menjalankan kerangka kerja sumber terbuka seperti Spark dan Hive tanpa mengonfigurasi, mengelola, dan menskalakan klaster. Pelanggan yang sudah menggunakan klaster EMR ingin memahami cara memperkirakan biaya menjalankan aplikasi EMR mereka menggunakan EMR Tanpa Server. Kami telah menyajikan pendekatan yang dapat Anda gunakan untuk melakukan analisis biaya berdasarkan analisis metrik aplikasi dari klaster EMR Anda.

Kami harap Anda mencobanya, dan bagikan umpan balik Anda dengan kami!


Tentang penulis

Radhika Ravirala adalah Manajer Produk Utama di AWS.

Matius Liem adalah Manajer Arsitektur Solusi Senior di AWS.

Stempel Waktu:

Lebih dari Data Besar AWS