Оценщик затрат Amazon EMR без сервера

Оценщик затрат Amazon EMR без сервера

Исходный узел: 1776349

Amazon EMR без сервера это бессерверный вариант в Амазонка ЭМИ это позволяет аналитикам данных и инженерам легко запускать приложения, используя платформы аналитики больших данных с открытым исходным кодом, такие как Apache Spark и Hive, без настройки, управления и масштабирования кластеров или серверов. Вы получаете все функции новейших платформ с открытым исходным кодом благодаря оптимизированной по производительности среде выполнения Amazon EMR и избавляете от необходимости планировать и эксплуатировать инстансы и кластеры.

С помощью Amazon EMR вы можете запускать свои аналитические приложения в выделенных кластерах EMR, на существующих Амазон Эластик Кубернетес Сервис (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. Вы также можете узнать о ценах на эти опции из Страница с ценами на Amazon EMR. Многие клиенты уже запускают приложения для анализа данных в кластерах EMR и считают, что новый бессерверный вариант проще и дешевле.

В этом посте мы обсудим, как вы можете оценить, сколько может стоить запуск приложения, которое в настоящее время работает в кластерах EMR, с использованием нового бессерверного варианта, и выполнить этот анализ, просто используя текущие показатели вашего приложения. Такой подход помогает оценить и принять вариант развертывания, наиболее экономичный для приложения. Однако на странице с ценами на Amazon EMR не указано, как легко оценить стоимость запуска существующих кластерных приложений EMR на EMR Serverless. В следующих разделах мы опишем подход, который позволит вам это сделать.

Хотя в примере в этом посте обсуждается, как вы можете получить оценку стоимости приложений, работающих в кластерах EMR, вы также можете использовать этот подход, если вы запускаете приложение Spark или Hive в другом месте и хотите оценить стоимость его запуска в EMR. Без сервера. Например, если вы запускаете самоуправляемые приложения Spark или Hive на Эластичное вычислительное облако Amazon (Amazon EC2) или если вы запускаете задания Spark на Клей AWS, мы покажем вам, как вы можете использовать этот подход для оценки стоимости запуска приложения в EMR Serverless.

Оценка стоимости запуска приложений в вашем кластере EMR

При запуске приложений в кластерах Amazon EMR с вас отдельно взимается плата за следующее:

  1. Стоимость экземпляров кластера Amazon EC2 (цена базовых серверов)
  2. Стоимость Магазин эластичных блоков Amazon (Amazon EBS), если вы решите подключить тома EBS
  3. Цена Amazon EMR для инстансов кластера

В общую стоимость запуска кластера входят все три. На выбор предлагаются различные варианты ценообразования Amazon EC2, в том числе инстансы по требованию, зарезервированные инстансы на 1 и 3 года, планы экономии емкости и спотовые инстансы. Выбранный вариант ценообразования Amazon EC2 определяет (a) цену Amazon EC2. Стоимость запуска приложения на кластерах EMR складывается из (а), (б) и (в). Вы можете вычислить эту стоимость для всего срока службы кластера (с момента запуска кластера до момента остановки кластера) или для определенного периода времени, пока кластер работает. Мы рекомендуем запускать первое, то есть вычислять (a), (b) и (c) с момента запуска кластера до момента остановки кластера. Если вы настроили теги для своего кластера Amazon EMR, вы можете легко получить подробный отчет о затратах на кластер EMR с использованием AWS Cost Explorer.

Оценка стоимости запуска тех же приложений с помощью EMR Serverless

Когда вы запускаете одни и те же приложения с помощью EMR Serverless, вы платите за объем виртуальных ЦП, памяти и ресурсов хранения, потребляемых вашими приложениями. За инстансы EC2 или тома EBS отдельная плата не взимается. И вы платите только за ресурсы, которые фактически используются приложением, а не за предоставленные инстансы EC2. Например, при запуске приложений в кластерах EMR, когда экземпляр EC2 в кластере используется частично (скажем, используется 16 ГБ памяти из 64 ГБ, доступных в экземпляре, или используется 4 VCPU из 16 VCPU, доступных в экземпляре). ) или когда инстанс EC2 простаивает (например, когда инстанс инициализируется или ожидает запуска приложения), с вас по-прежнему взимается плата Amazon EC2, Amazon EMR и Amazon EBS за полный инстанс EC2 и за время, в течение которого экземпляр активен в кластере EMR. При использовании EMR Serverless вы платите только за виртуальный ЦП, память и ресурсы хранения, используемые с момента, когда работники начинают выполнять ваше задание Spark или Hive, до момента их остановки.

Чтобы оценить стоимость запуска вашего приложения EMR Spark или Hive в EMR Serverless, вам необходимо сначала агрегировать общее количество вычислительных виртуальных ядер в секундах, мегабайтах памяти и гигабайтах секунд хранения, потребляемых каждым приложением YARN, работающим в вашем кластере EMR. с момента запуска контейнера YARN до момента закрытия контейнера YARN. Вы можете получить эти показатели из журналов менеджера ресурсов YARN, доступных на сервере временной шкалы YARN или инструментах YARN CLI. Вы можете получить данные о времени выполнения, виртуальных ядрах в секундах и МБ памяти в секундах, используемых каждым из приложений YARN.

Если в вашем кластере работают только приложения Spark, существует более простой подход к оценке. Вместо того, чтобы получать количество виртуальных ядер в секундах, МБ памяти и ГБ-секунд хранилища из журналов диспетчера ресурсов YARN, вы можете получить эти показатели из журналов событий Spark. Мы предоставили инструмент Бессервисный оценщик EMR, который может анализировать журналы событий Spark для ваших приложений и предоставлять агрегированные показатели для вашей оценки затрат.

После того, как вы получите метрики использования для своего приложения, вы можете рассчитать примерную стоимость бессерверной версии EMR, используя Бессерверные цены EMR. Просто умножьте количество агрегированных виртуальных ядер в секундах на цену бессерверного виртуального ЦП EMR в секунду, умножьте агрегированные МБ-секунды памяти на цену бессерверной памяти EMR в секунду и умножьте количество ГБ-секунд хранения на цену бессерверного хранилища EMR в секунду (только если требования к хранилищу превышать 20 ГБ на одного рабочего). Суммируя эти затраты на виртуальные ЦП, память и хранилище, вы можете сравнить стоимость запуска одних и тех же приложений в EMR Serverless.

В этом подходе мы предполагаем, что производительность приложения эквивалентна. Другими словами, размер (виртуальный ЦП, память) и продолжительность выполнения для каждого контейнера YARN в кластере EMR совпадают с количеством, размером и продолжительностью выполнения рабочих процессов, необходимых для запуска приложения в EMR Serverless. Мы делаем это предположение, потому что среда выполнения EMR для выпуска EMR одинакова независимо от того, выполняется ли приложение в кластере EMR или в бессерверной среде EMR.

Пример

Давайте проведем пример сравнения стоимости Amazon EMR на EC2 и EMR Serverless с использованием одного кластера.

Мы запустили приложение Spark в кластере EMR с пятью узлами (один основной, два основных и два рабочих узла) и собрали показатели YARN с помощью интерфейса командной строки YARN. В следующем коде показано наше совокупное распределение ресурсов.

совокупное распределение ресурсов

Мы рассчитали Amazon EMR по затратам EC2 следующим образом:

  • Экземпляры кластера
    • Первичный: m5.2xlarge:1
    • Ядро: r5.2xlarge:2
    • Задача: r5.2xlarge:2
  • Время работы кластера = 18 мин.
  • Стоимость экземпляра по запросу
    • m5.2xlarge (8 виртуальных ЦП, 32 ГБ памяти)
      • Amazon EC2: 0.384 доллара США в час.
      • Инкрементальный Amazon EMR: 0.096 USD/ч.
    • r5.2xlarge (8 виртуальных ЦП, 64 ГБ памяти)
      • Amazon EC2: 0.504 доллара США в час.
      • Инкрементальный 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 доллара США в час.

Чтобы рассчитать стоимость бессерверного решения EMR, суммируйте количество виртуальных ядер в секундах и МБ памяти в секундах для того же приложения, которое вы запускали ранее в кластере EMR. Затем умножьте эти цифры на бессерверный виртуальный ЦП EMR и стоимость памяти. Результаты наших расчетов следующие:

  • Всего_vcore_секунд = 5737
  • Total_Memory_mb_секунды = 120156631
  • Преобразовать в виртуальные ЦП/ч и память-ГБ/ч:
    • Суммарное количество виртуальных ЦП/ч: 5737/(60*60)=1.59
    • Aggregated memory/hr: 120156631/(60*60*1024)=32.5
  • Общая стоимость виртуальных ЦП в часах = 33 виртуальных ЦП * 0.052624 ВЦП в час * 8/60 = 0.23 USD.
  • Общая стоимость ГБ памяти = 1.59 МБ * 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 Большие данные