برآوردگر هزینه بدون سرور آمازون EMR

برآوردگر هزینه بدون سرور آمازون EMR

گره منبع: 1776349

آمازون EMR بدون سرور یک گزینه بدون سرور در است آمازون EMR که اجرای برنامه های کاربردی با استفاده از چارچوب های تجزیه و تحلیل داده های بزرگ منبع باز مانند Apache Spark و Hive را برای تحلیلگران و مهندسان داده آسان می کند، بدون اینکه خوشه ها یا سرورها را پیکربندی، مدیریت و مقیاس بندی کنند. شما تمام ویژگی‌های جدیدترین چارچوب‌های منبع باز را با زمان اجرا بهینه‌شده عملکرد آمازون EMR و بدون نیاز به برنامه‌ریزی و اجرای نمونه‌ها و خوشه‌ها دریافت می‌کنید.

با آمازون EMR، می‌توانید برنامه‌های تحلیلی خود را بر روی خوشه‌های اختصاصی EMR اجرا کنید سرویس الاستیک کوبرنتز آمازون خوشه‌های (Amazon EKS) یا استفاده از گزینه جدید استقرار بدون سرور EMR که در آن نیازی به مدیریت خوشه‌ها یا نمونه‌ها نیست. وقتی یک برنامه Spark یا Hive با استفاده از نسخه EMR آمازون می‌سازید، مثلاً Amazon EMR 6.8، می‌توانید برنامه را روی خوشه‌های EMR اجرا کنید، در خوشه‌های EKS با استفاده از آمازون EMR در EKS، یا بدون نیاز به تغییر برنامه از EMR Serverless استفاده کنید.

برای آشنایی با مزایای هر گزینه استقرار در بدون سرور EMR مراجعه کنید برخی از تفاوت های ویژگی بین EMR Serverless و Amazon EMR در EC2 چیست؟ در آمازون EMR پرسش و پاسخ. همچنین می توانید از قیمت این گزینه ها مطلع شوید صفحه قیمت گذاری آمازون EMR. بسیاری از مشتریان در حال حاضر برنامه های تجزیه و تحلیل داده را بر روی خوشه های EMR اجرا می کنند و متوجه می شوند که گزینه جدید بدون سرور ساده تر و ارزان تر است.

در این پست، ما در مورد اینکه چگونه می‌توانید هزینه اجرای برنامه‌ای را که در حال حاضر روی خوشه‌های EMR اجرا می‌شود، با استفاده از گزینه جدید بدون سرور تخمین بزنید و این تحلیل را صرفاً با استفاده از معیارهای برنامه فعلی خود انجام دهید. این رویکرد به شما کمک می کند تا گزینه استقرار را که مقرون به صرفه ترین برای برنامه کاربردی است، ارزیابی و اتخاذ کنید. با این حال، صفحه قیمت گذاری آمازون EMR به شما نمی گوید که چگونه می توانید به راحتی هزینه اجرای برنامه های کلاستر EMR موجود خود را در EMR Serverless تخمین بزنید. در بخش‌های بعدی، رویکردی را توضیح می‌دهیم که شما را قادر به انجام آن می‌کند.

اگرچه مثال در این پست به این موضوع می‌پردازد که چگونه می‌توانید تخمین هزینه برنامه‌هایی را که روی خوشه‌های EMR اجرا می‌شوند، به دست آورید، اگر در جای دیگری از یک برنامه Spark یا Hive استفاده می‌کنید و می‌خواهید هزینه اجرای آن را در EMR برآورد کنید، می‌توانید از این رویکرد نیز استفاده کنید. بدون سرور به عنوان مثال، اگر برنامه های خود مدیریتی Spark یا Hive را روی آن اجرا کنید ابر محاسبه الاستیک آمازون خوشه های (Amazon EC2) یا اگر Spark jobs را روی آن اجرا کنید چسب AWS، ما به شما نشان می دهیم که چگونه می توانید از این روش برای تخمین هزینه اجرای برنامه در EMR Serverless استفاده کنید.

برآورد هزینه اجرای برنامه های کاربردی در خوشه EMR

هنگامی که برنامه‌ها را در خوشه‌های آمازون EMR اجرا می‌کنید، هزینه‌های زیر به طور جداگانه از شما دریافت می‌شود:

  1. قیمت آمازون EC2 نمونه‌های خوشه‌ای در حال اجرا (قیمت سرورهای اساسی)
  2. قیمت برای فروشگاه بلوک الاستیک آمازون ولوم های (Amazon EBS)، در صورتی که می خواهید ولوم های EBS را وصل کنید
  3. قیمت آمازون EMR برای نمونه های خوشه ای

کل هزینه اجرای خوشه شامل هر سه می شود. انواع مختلفی از گزینه های قیمت گذاری آمازون EC2 وجود دارد که می توانید از بین آنها انتخاب کنید، از جمله موارد درخواستی، نمونه های رزرو شده 1 ساله و 3 ساله، برنامه های صرفه جویی در ظرفیت، و نمونه های نقطه ای. گزینه قیمت گذاری آمازون EC2 که انتخاب می کنید، (الف)، قیمت آمازون EC2 را تعیین می کند. هزینه اجرای برنامه روی خوشه های EMR مجموع (a)، (b) و (c) است. شما می توانید این هزینه را برای طول عمر اجرای خوشه (از زمانی که یک خوشه شروع می شود تا زمانی که خوشه خاتمه می یابد) یا برای یک دوره زمانی خاص در حالی که خوشه در حال اجرا است محاسبه کنید. ما توصیه می کنیم اولی را اجرا کنید، یعنی محاسبه (a)، (b) و (c) از زمانی که خوشه شروع می شود تا زمانی که خوشه خاتمه می یابد. اگر برای خوشه آمازون EMR خود برچسب تنظیم کرده اید، می توانید به راحتی آن را دریافت کنید گزارش هزینه دقیق برای خوشه EMR با استفاده از AWS Cost Explorer.

برآورد هزینه اجرای برنامه های مشابه با استفاده از EMR Serverless

هنگامی که برنامه های مشابهی را با استفاده از EMR Serverless اجرا می کنید، مقدار vCPU، حافظه و منابع ذخیره سازی مصرف شده توسط برنامه های خود را پرداخت می کنید. هیچ هزینه جداگانه ای برای نمونه های EC2 یا حجم های EBS وجود ندارد. و، شما فقط برای منابعی که واقعاً توسط برنامه استفاده می شود و نه برای نمونه های EC2 ارائه شده پرداخت می کنید. به عنوان مثال، هنگام اجرای برنامه‌ها بر روی خوشه‌های EMR، زمانی که یک نمونه EC2 در کلاستر تا حدی استفاده می‌شود (مثلاً از 16 گیگابایت حافظه موجود در نمونه، 64 گیگابایت حافظه استفاده می‌شود، یا از 4 VCPU موجود در نمونه، 16 VCPU استفاده می‌شود. ) یا زمانی که نمونه EC2 غیرفعال است (به عنوان مثال، زمانی که نمونه در حال آماده سازی اولیه است یا منتظر شروع یک برنامه کاربردی است)، همچنان هزینه های آمازون EC2، آمازون EMR، و آمازون 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-seconds، و MB-second حافظه استفاده شده توسط هر یک از برنامه های YARN را بازیابی کنید.

اگر خوشه شما فقط برنامه های Spark را اجرا می کند، روش ساده تری برای تخمین وجود دارد. به جای دریافت vCore-seconds، MB-seconds حافظه و GB-second های ذخیره سازی از گزارش های مدیریت منابع YARN، می توانید این معیارها را از گزارش های رویداد Spark بدست آورید. ما ابزار را ارائه کرده ایم برآوردگر بدون سرور EMR، که می تواند گزارش های رویداد Spark را برای برنامه های شما تجزیه کند و معیارهای جمع آوری شده را برای برآورد هزینه شما ارائه دهد.

پس از دریافت معیارهای استفاده برای برنامه خود، می توانید هزینه تخمینی سرور EMR را با استفاده از قیمت گذاری بدون سرور EMR. به سادگی با قیمت گذاری vCPU بدون سرور EMR در ثانیه، چند برابر کنید. بیش از 20 گیگابایت برای هر کارگر). با جمع کردن این هزینه‌ها برای vCPU، حافظه و فضای ذخیره‌سازی، می‌توانید هزینه اجرای برنامه‌های مشابه را در EMR Serverless مقایسه کنید.

در این رویکرد، ما فرض می کنیم که عملکرد برنامه معادل است. به عبارت دیگر، اندازه (vCPU، حافظه) و مدت زمان اجرا برای هر کانتینر YARN در خوشه EMR برابر با تعداد، اندازه و مدت زمان اجرا کارگران مورد نیاز برای اجرای برنامه در EMR Serverless است. ما این فرض را داریم زیرا زمان اجرای EMR برای انتشار EMR صرف نظر از اینکه برنامه روی خوشه EMR اجرا می شود یا بدون سرور EMR یکسان است.

مثال

بیایید یک نمونه مقایسه هزینه آمازون EMR در EC2 و EMR Serverless با استفاده از یک کلاستر انجام دهیم.

ما یک برنامه Spark را روی یک خوشه EMR با پنج گره (یک اصلی، دو هسته و دو وظیفه) اجرا کردیم و معیارهای YARN را با استفاده از YARN CLI جمع‌آوری کردیم. کد زیر تخصیص منابع مجموع ما را نشان می‌دهد.

تخصیص منابع کل

ما EMR آمازون را بر روی هزینه های EC2 به صورت زیر محاسبه کردیم:

  • نمونه های خوشه ای
    • اولیه: m5.2xlarge:1
    • هسته: r5.2xlarge:2
    • وظیفه: r5.2xlarge:2
  • زمان اجرای کلاستر = 18 دقیقه
  • هزینه درخواستی نمونه
    • m5.2xlarge (8 vCPU، 32 گیگابایت حافظه)
      • آمازون EC2: 0.384 دلار در ساعت
      • آمازون EMR افزایشی: 0.096 دلار در ساعت
    • r5.2xlarge (8 vCPU، 64 گیگابایت حافظه)
      • آمازون EC2: 0.504 دلار در ساعت
      • آمازون EMR افزایشی: 0.126 دلار در ساعت

زیر EMR در محاسبه هزینه EC2 است:

  • هزینه آمازون EMR = ((1 گره اصلی x 0.096 دلار در ساعت) + (2 گره هسته x 0.126 دلار در ساعت) + (2 گره وظیفه x 0.126 دلار در ساعت)) = 0.60 دلار
  • هزینه آمازون EC2 = ((1 x 0.384 دلار در ساعت) + (2 گره هسته x 0.504 دلار در ساعت) + (2 گره وظیفه x 0.504 دلار در ساعت)) = 2.40 دلار
  • آمازون EMR در هزینه/ساعت کلاستر EC2 = 0.6 دلار + 2.40 دلار = 3 دلار در ساعت * 8/60 ساعت (زمان اجرا بر حسب ساعت)

کل هزینه EMR آمازون در آمازون EC2 0.40 دلار در ساعت است.

برای محاسبه هزینه بدون سرور EMR، vCore-seconds و MB-second حافظه را برای همان برنامه ای که قبلاً روی خوشه EMR اجرا می کردید، جمع آوری کنید. سپس آن اعداد را با vCPU بدون سرور EMR و قیمت حافظه ضرب کنید. نتایج محاسبات ما به شرح زیر است:

  • Total_vcore_seconds = 5737
  • Total_Memory_mb_seconds = 120156631
  • تبدیل به vCPU/hr و memory-GB/hr:
    • vCPU/hr جمع‌آوری شده: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • هزینه کل vCPU-ساعت = 33 vCPU * 0.052624 VCPU/hr * 8/60 = 0.23 دلار
  • هزینه کل حافظه گیگابایت = 1.59 مگابایت * 0.0057785 حافظه در ساعت * 8/60 = 0.00122 دلار

در این مثال، کل هزینه سرور EMR 0.231 دلار است که 42 درصد کاهش دارد.

نتیجه

Amazon EMR Serverless یک گزینه بدون سرور اخیراً در Amazon EMR است که اجرای چارچوب‌های منبع باز مانند Spark و Hive را بدون پیکربندی، مدیریت و مقیاس‌بندی خوشه‌ها آسان می‌کند. مشتریانی که قبلاً از خوشه‌های EMR استفاده می‌کردند می‌خواهند بدانند که چگونه می‌توانند هزینه اجرای برنامه‌های EMR خود را با استفاده از EMR Serverless تخمین بزنند. ما رویکردی ارائه کرده‌ایم که می‌توانید از آن برای انجام تحلیل هزینه بر اساس تجزیه و تحلیل معیارهای برنامه از خوشه‌های EMR استفاده کنید.

امیدواریم این کار را امتحان کنید و نظرات خود را با ما در میان بگذارید!


درباره نویسندگان

رادیکا راویرالا مدیر محصول اصلی در AWS است.

متیو لیم مدیر ارشد معماری راه حل در AWS است.

تمبر زمان:

بیشتر از داده های بزرگ AWS