ตัวประมาณค่าใช้จ่าย Amazon EMR Serverless

ตัวประมาณค่าใช้จ่าย Amazon EMR Serverless

โหนดต้นทาง: 1776349

Amazon EMR ไร้เซิร์ฟเวอร์ เป็นตัวเลือกแบบไร้เซิร์ฟเวอร์ใน อเมซอน EMR ซึ่งช่วยให้นักวิเคราะห์ข้อมูลและวิศวกรเรียกใช้แอปพลิเคชันโดยใช้เฟรมเวิร์กการวิเคราะห์ข้อมูลขนาดใหญ่แบบโอเพ่นซอร์ส เช่น Apache Spark และ Hive ได้อย่างง่ายดาย โดยไม่ต้องกำหนดค่า จัดการ และปรับขนาดคลัสเตอร์หรือเซิร์ฟเวอร์ คุณได้รับคุณสมบัติทั้งหมดของเฟรมเวิร์กโอเพ่นซอร์สล่าสุดพร้อมรันไทม์ที่เพิ่มประสิทธิภาพของ Amazon EMR และไม่ต้องวางแผนและดำเนินการอินสแตนซ์และคลัสเตอร์

ด้วย Amazon EMR คุณสามารถเรียกใช้แอปพลิเคชันการวิเคราะห์ของคุณบนคลัสเตอร์ EMR เฉพาะที่มีอยู่ บริการ Amazon Elastic Kubernetes คลัสเตอร์ (Amazon EKS) หรือใช้ตัวเลือกการปรับใช้ EMR Serverless ใหม่ที่คุณไม่ต้องจัดการคลัสเตอร์หรืออินสแตนซ์ เมื่อคุณสร้างแอปพลิเคชัน Spark หรือ Hive โดยใช้การเปิดตัว Amazon EMR เช่น Amazon EMR 6.8 คุณสามารถเรียกใช้แอปพลิเคชันบนคลัสเตอร์ EMR บนคลัสเตอร์ EKS โดยใช้ Amazon EMR บน EKSหรือใช้ EMR Serverless โดยไม่ต้องเปลี่ยนแอพพลิเคชั่น

หากต้องการเรียนรู้เกี่ยวกับประโยชน์ของตัวเลือกการปรับใช้แต่ละตัวเลือกใน EMR ไร้เซิร์ฟเวอร์ อ้างถึง คุณลักษณะบางอย่างที่แตกต่างกันระหว่าง EMR Serverless และ Amazon EMR บน EC2 คืออะไร ในคำถามที่พบบ่อยเกี่ยวกับ Amazon EMR คุณยังสามารถเรียนรู้เกี่ยวกับราคาสำหรับตัวเลือกเหล่านี้ได้จาก หน้าราคา Amazon EMR. ลูกค้าหลายรายเรียกใช้แอปพลิเคชันการวิเคราะห์ข้อมูลบนคลัสเตอร์ EMR แล้ว และพบว่าตัวเลือกใหม่แบบไร้เซิร์ฟเวอร์นั้นง่ายกว่าและราคาไม่แพง

ในโพสต์นี้ เราจะพูดถึงวิธีที่คุณสามารถประเมินค่าใช้จ่ายที่อาจเกิดขึ้นในการเรียกใช้แอปพลิเคชันที่ทำงานบนคลัสเตอร์ EMR ในปัจจุบันโดยใช้ตัวเลือกแบบไร้เซิร์ฟเวอร์ใหม่ และทำการวิเคราะห์นี้ได้ง่ายๆ โดยใช้เมตริกแอปพลิเคชันปัจจุบันของคุณ วิธีการนี้ช่วยให้คุณประเมินและปรับใช้ตัวเลือกการปรับใช้ที่คุ้มค่าที่สุดสำหรับแอปพลิเคชัน อย่างไรก็ตาม หน้าราคาของ Amazon EMR ไม่ได้บอกคุณว่าคุณสามารถประมาณค่าใช้จ่ายในการเรียกใช้แอปพลิเคชันคลัสเตอร์ EMR ที่มีอยู่บน EMR Serverless ได้อย่างไร ในส่วนต่อไปนี้ เราจะอธิบายวิธีการที่ช่วยให้คุณทำเช่นนั้นได้

แม้ว่าตัวอย่างในโพสต์นี้จะกล่าวถึงวิธีที่คุณจะได้รับการประเมินค่าใช้จ่ายสำหรับแอปพลิเคชันที่ทำงานบนคลัสเตอร์ EMR คุณยังสามารถใช้วิธีนี้หากคุณใช้งานแอปพลิเคชัน Spark หรือ Hive ที่อื่น และต้องการประมาณค่าใช้จ่ายในการใช้งานบน EMR ไร้เซิร์ฟเวอร์ ตัวอย่างเช่น หากคุณเปิดแอปพลิเคชัน Spark หรือ Hive ที่จัดการด้วยตนเอง อเมซอน อีลาสติก คอมพิวท์ คลาวด์ คลัสเตอร์ (Amazon EC2) หรือหากคุณเรียกใช้งาน Spark AWS กาวเราจะแสดงให้คุณเห็นว่าคุณสามารถใช้วิธีการนี้เพื่อประเมินค่าใช้จ่ายในการใช้งานแอปพลิเคชันบน EMR Serverless ได้อย่างไร

การประมาณค่าใช้จ่ายในการเรียกใช้แอปพลิเคชันบนคลัสเตอร์ EMR ของคุณ

เมื่อคุณเรียกใช้แอปพลิเคชันบนคลัสเตอร์ Amazon EMR คุณจะถูกเรียกเก็บเงินแยกต่างหากสำหรับสิ่งต่อไปนี้:

  1. ราคา Amazon EC2 ของการเรียกใช้อินสแตนซ์คลัสเตอร์ (ราคาสำหรับเซิร์ฟเวอร์พื้นฐาน)
  2. ราคาสำหรับ ร้านค้า Amazon Elastic Block (Amazon EBS) ไดรฟ์ข้อมูล หากคุณเลือกที่จะแนบไดรฟ์ข้อมูล EBS
  3. ราคา Amazon EMR สำหรับอินสแตนซ์คลัสเตอร์

ต้นทุนรวมของการรันคลัสเตอร์รวมทั้งสามอย่าง มีตัวเลือกราคา Amazon EC2 มากมายที่คุณสามารถเลือกได้ รวมถึงตามความต้องการ อินสแตนซ์แบบเหมาจ่าย 1 ปีและ 3 ปี แผนการประหยัดความจุ และอินสแตนซ์ Spot ตัวเลือกราคาของ Amazon EC2 ที่คุณเลือกกำหนด (a) ราคาของ Amazon EC2 ค่าใช้จ่ายในการรันแอปพลิเคชันบนคลัสเตอร์ EMR คือผลรวมของ (a), (b) และ (c) คุณสามารถคำนวณค่าใช้จ่ายนี้ตลอดอายุการใช้งานของการเรียกใช้คลัสเตอร์ (ตั้งแต่เวลาที่คลัสเตอร์เริ่มต้นจนถึงเวลาที่คลัสเตอร์ถูกยกเลิก) หรือตามระยะเวลาที่กำหนดในขณะที่คลัสเตอร์กำลังทำงาน เราขอแนะนำให้รันแบบเดิม นั่นคือการคำนวณ (a), (b) และ (c) ตั้งแต่เวลาที่คลัสเตอร์เริ่มต้นจนถึงเวลาที่คลัสเตอร์ถูกยกเลิก หากคุณตั้งค่าแท็กสำหรับคลัสเตอร์ Amazon EMR ของคุณ คุณสามารถรับแท็กได้อย่างง่ายดาย รายงานค่าใช้จ่ายโดยละเอียดสำหรับคลัสเตอร์ EMR ของคุณโดยใช้ AWS Cost Explorer.

การประมาณค่าใช้จ่ายในการเรียกใช้แอปพลิเคชันเดียวกันโดยใช้ EMR Serverless

เมื่อคุณเรียกใช้แอปพลิเคชันเดียวกันโดยใช้ EMR Serverless คุณจะต้องจ่ายตามจำนวน vCPU หน่วยความจำ และทรัพยากรพื้นที่เก็บข้อมูลที่แอปพลิเคชันของคุณใช้ ไม่มีค่าใช้จ่ายแยกต่างหากสำหรับอินสแตนซ์ EC2 หรือปริมาณ EBS และคุณจ่ายเฉพาะทรัพยากรที่แอปพลิเคชันใช้จริงเท่านั้น ไม่ใช่สำหรับอินสแตนซ์ EC2 ที่จัดเตรียมไว้ ตัวอย่างเช่น เมื่อเรียกใช้แอปพลิเคชันบนคลัสเตอร์ EMR เมื่ออินสแตนซ์ EC2 ในคลัสเตอร์ถูกใช้งานเพียงบางส่วน (เช่น หน่วยความจำ 16 GB ถูกใช้จาก 64 GB ที่พร้อมใช้งานบนอินสแตนซ์ หรือใช้ VCPU 4 ตัวจาก 16 VCPU ที่มีอยู่บนอินสแตนซ์ ) หรือเมื่ออินสแตนซ์ EC2 ไม่ได้ใช้งาน (เช่น เมื่ออินสแตนซ์กำลังเริ่มต้นหรือรอให้แอปพลิเคชันเริ่มทำงาน) คุณยังคงต้องเสียค่าบริการ Amazon EC2, Amazon EMR และ Amazon EBS สำหรับอินสแตนซ์ EC2 แบบเต็มและสำหรับระยะเวลาที่ อินสแตนซ์ทำงานในคลัสเตอร์ EMR ด้วย EMR Serverless คุณจะจ่ายเฉพาะ vCPU, หน่วยความจำ และทรัพยากรพื้นที่เก็บข้อมูลที่ใช้ตั้งแต่เวลาที่พนักงานเริ่มเรียกใช้งาน Spark หรือ Hive จนถึงเวลาที่หยุดทำงาน

ในการประมาณค่าใช้จ่ายในการเรียกใช้แอปพลิเคชัน EMR Spark หรือ Hive บน EMR Serverless คุณต้องรวมการประมวลผล vCore วินาทีทั้งหมด หน่วยความจำ MB วินาที และพื้นที่เก็บข้อมูล GB วินาทีที่ใช้โดยแต่ละแอปพลิเคชัน YARN ที่รันบนคลัสเตอร์ EMR ของคุณ ตั้งแต่เวลาที่คอนเทนเนอร์ YARN เริ่มต้นจนถึงเวลาที่คอนเทนเนอร์ YARN ถูกยกเลิก คุณสามารถรับเมตริกเหล่านี้ได้จากบันทึกตัวจัดการทรัพยากร YARN ที่เข้าถึงได้จากเซิร์ฟเวอร์ไทม์ไลน์ของ YARN หรือเครื่องมือ YARN CLI คุณสามารถเรียกคืนเวลาทำงาน, vCore-วินาที และหน่วยความจำ MB-วินาที ที่ใช้โดยแอปพลิเคชัน YARN แต่ละรายการ

หากคลัสเตอร์ของคุณเรียกใช้เฉพาะแอปพลิเคชัน Spark จะมีแนวทางที่ง่ายกว่าในการประมาณค่า แทนที่จะขอรับ vCore-วินาที, หน่วยความจำ MB-วินาที และหน่วยเก็บข้อมูล GB-วินาทีจากบันทึกตัวจัดการทรัพยากร YARN คุณสามารถรับเมตริกเหล่านี้ได้จากบันทึกเหตุการณ์ Spark เราได้จัดเตรียมเครื่องมือ เครื่องมือประมาณค่า EMR Servlessซึ่งสามารถแยกวิเคราะห์บันทึกเหตุการณ์ Spark สำหรับแอปพลิเคชันของคุณ และให้เมตริกรวมสำหรับการประมาณการค่าใช้จ่ายของคุณ

หลังจากที่คุณได้รับเมตริกการใช้งานสำหรับแอปพลิเคชันของคุณแล้ว คุณสามารถคำนวณค่าใช้จ่าย EMR Serverless โดยประมาณได้โดยใช้ ราคา EMR Serverless. เพียงทวีคูณ vCore-วินาทีรวมของคุณด้วยราคา EMR Serverless vCPU ต่อวินาที คูณหน่วยความจำรวม MB-วินาทีด้วยราคาหน่วยความจำไร้เซิร์ฟเวอร์ EMR ต่อวินาที และเพิ่มหน่วยเก็บข้อมูล GB-วินาทีด้วยราคาพื้นที่เก็บข้อมูลไร้เซิร์ฟเวอร์ EMR ต่อวินาที (เฉพาะในกรณีที่ต้องการพื้นที่เก็บข้อมูล เกิน 20 GB ต่อผู้ปฏิบัติงาน) ด้วยการเพิ่มค่าใช้จ่ายเหล่านี้สำหรับ vCPU หน่วยความจำ และพื้นที่เก็บข้อมูล คุณสามารถเปรียบเทียบค่าใช้จ่ายในการใช้งานแอปพลิเคชันเดียวกันบน EMR Serverless

ในแนวทางนี้ เราถือว่าประสิทธิภาพของแอปพลิเคชันเทียบเท่ากัน กล่าวอีกนัยหนึ่ง ขนาด (vCPU, หน่วยความจำ) และระยะเวลารันไทม์สำหรับแต่ละคอนเทนเนอร์ YARN บนคลัสเตอร์ EMR จะเหมือนกับจำนวน ขนาด และระยะเวลารันไทม์ของผู้ปฏิบัติงานที่จำเป็นในการเรียกใช้แอปพลิเคชันบน EMR Serverless เราตั้งสมมติฐานนี้เนื่องจากรันไทม์ EMR สำหรับการเผยแพร่ EMR นั้นเหมือนกัน โดยไม่คำนึงว่าแอปพลิเคชันจะทำงานบนคลัสเตอร์ EMR หรือบน EMR Serverless

ตัวอย่าง

ลองเปรียบเทียบค่าใช้จ่ายตัวอย่างของ 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 USD/ชม
      • Amazon EMR ส่วนเพิ่ม: 0.096 USD/ชม
    • r5.2xlarge (8 vCPU, หน่วยความจำ 64 GiB)
      • Amazon EC2: 0.504 USD/ชม
      • Amazon EMR ส่วนเพิ่ม: 0.126 USD/ชม

ต่อไปนี้คือ EMR ในการคำนวณต้นทุน EC2:

  • ค่าใช้จ่าย Amazon EMR = ((1 โหนดหลัก x 0.096 USD/ชม.) + (2 โหนดหลัก x 0.126 USD/ชม.) + (2 โหนดงาน x 0.126 USD/ชม.)) = 0.60 USD
  • ต้นทุน Amazon EC2 = ((1 โหนดหลัก x 0.384 USD/ชม.) + (2 โหนดหลัก x 0.504 USD/ชม.) + (2 โหนดงาน x 0.504 USD/ชม.)) = 2.40 USD
  • Amazon EMR บนคลัสเตอร์ EC2 มีค่าใช้จ่าย/ชม. = 0.6 USD + 2.40 USD = 3 USD/ชม. * 8/60 ชม. (รันไทม์เป็นชั่วโมง)

ค่าใช้จ่าย Amazon EMR ทั้งหมดใน Amazon EC2 คือ 0.40 USD/ชม.

ในการคำนวณค่าใช้จ่าย EMR Serverless ให้รวม vCore-วินาทีและหน่วยความจำ MB-วินาทีสำหรับแอปพลิเคชันเดียวกับที่คุณเรียกใช้ก่อนหน้านี้บนคลัสเตอร์ EMR จากนั้นคูณตัวเลขเหล่านั้นด้วย EMR Serverless vCPU และราคาหน่วยความจำ ผลการคำนวณของเรามีดังนี้:

  • Total_vcore_seconds = 5737
  • Total_Memory_mb_seconds = 120156631
  • แปลงเป็น vCPU/hr และ memory-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 USD
  • ราคาหน่วยความจำ GB ทั้งหมด = 1.59 MB * 0.0057785 หน่วยความจำ/ชม. * 8/60 = 0.00122 USD

ในตัวอย่างนี้ ค่าใช้จ่าย EMR Serverless ทั้งหมดคือ 0.231 ดอลลาร์ ซึ่งลดลง 42%

สรุป

Amazon EMR Serverless เป็นตัวเลือกแบบไร้เซิร์ฟเวอร์ที่เพิ่งเปิดตัวใน Amazon EMR ซึ่งทำให้ง่ายต่อการเรียกใช้เฟรมเวิร์กโอเพ่นซอร์ส เช่น Spark และ Hive โดยไม่ต้องกำหนดค่า จัดการ และปรับขนาดคลัสเตอร์ ลูกค้าที่ใช้คลัสเตอร์ EMR อยู่แล้วต้องการทราบว่าจะสามารถประมาณค่าใช้จ่ายในการใช้งานแอปพลิเคชัน EMR โดยใช้ EMR Serverless ได้อย่างไร เราได้นำเสนอแนวทางที่คุณสามารถใช้เพื่อทำการวิเคราะห์ต้นทุนโดยอิงจากการวิเคราะห์เมตริกแอปพลิเคชันจากคลัสเตอร์ EMR ของคุณ

เราหวังว่าคุณจะลองดูและแบ่งปันความคิดเห็นของคุณกับเรา!


เกี่ยวกับผู้แต่ง

ราธิกา ราวิราลา เป็นผู้จัดการผลิตภัณฑ์หลักของ AWS

แมทธิว เลียม เป็นผู้จัดการสถาปัตยกรรมโซลูชันอาวุโสของ AWS

ประทับเวลา:

เพิ่มเติมจาก AWS ข้อมูลขนาดใหญ่