Amazon EMR Serverless とは - Amazon EMR

Amazon EMR Serverless とは

Amazon EMR Serverless は、サーバーレスランタイム環境を備えた Amazon EMR のデプロイオプションです。これにより、Apache Spark や Apache Hive などの最新のオープンソースフレームワークを使用する分析アプリケーションの運用が簡素化されます。EMR Serverless では、これらのフレームワークでアプリケーションを実行するためにクラスターを設定、最適化、保護、または操作する必要はありません。

EMR Serverless は、データ処理ジョブのリソースの過剰プロビジョニングや過少プロビジョニングを回避するのをサポートします。EMR Serverless は、アプリケーションが必要とするリソースを自動的に判別し、ジョブを処理するためにこれらのリソースを取得して、ジョブが終了するとリソースを解放します。インタラクティブデータ分析など、アプリケーションが数秒以内にレスポンスを必要とするユースケースでは、アプリケーションの作成時にアプリケーションが必要とするリソースを事前に初期化できます。

EMR Serverless を使用すると、オープンソースの互換性、同時実行性、一般的なフレームワークのランタイムパフォーマンスの最適化など、Amazon EMR のメリットを引き続き享受できます。

EMR Serverless は、オープンソースフレームワークを使用してアプリケーションを簡単に操作することを必要とするお客様に適しています。ジョブの迅速な起動、容量の自動管理、容易なコスト管理を実現します。

概念

このセクションでは、EMR Serverless ユーザーガイド全般に記載されている EMR Serverless の用語と概念について説明します。

リリースバージョン

Amazon EMR リリースは、ビッグデータエコシステムの一連のオープンソースアプリケーションです。各リリースには、EMR Serverless がアプリケーションを実行できるようにデプロイおよび設定するために選択するさまざまなビッグデータアプリケーション、コンポーネント、および機能が含まれています。アプリケーションを作成するときにリリースバージョンを指定する必要があります。アプリケーションで使用する Amazon EMR リリースバージョンとオープンソースフレームワークバージョンを選択します。リリースバージョンの詳細については、「Amazon EMR Serverless のリリースバージョン」を参照してください。

アプリケーション

EMR Serverless を使用すると、オープンソース分析フレームワークを使用する 1 つ以上の EMR Serverless アプリケーションを作成できます。アプリケーションを作成するには、次の属性を指定する必要があります。

  • 使用するオープンソースフレームワークバージョンの Amazon EMR リリースバージョン。リリースバージョンを確認するには、「Amazon EMR Serverless のリリースバージョン」を参照してください。

  • Apache Spark や Apache Hive など、アプリケーションで使用する特定のランタイム。

アプリケーションを作成すると、データ処理ジョブまたは対話型リクエストをアプリケーションに送信できるようになります。

各 EMR Serverless アプリケーションは、他のアプリケーションとは厳密に分離された状態で、安全な Amazon Virtual Private Cloud (VPC) で実行されます。さらに、AWS Identity and Access Management (IAM) ポリシーを使用して、アプリケーションにアクセス可能なユーザーとロールを定義できます。また、アプリケーションによって発生した使用コストを制御および追跡するための制限を指定することもできます。

以下のことを行う必要がある場合は、複数のアプリケーションを作成することを検討してください。

  • さまざまなオープンソースフレームワークを使用する

  • さまざまなユースケースに異なるバージョンのオープンソースフレームワークを使用する

  • あるバージョンから別のバージョンにアップグレードするときに A/B テストを実施する

  • テストシナリオと本番シナリオ用に個別の論理環境を維持する

  • 独立したコスト管理と使用状況の追跡により、異なるチームに個別の論理環境を用意する

  • 異なる基幹業務アプリケーションを分離する

EMR Serverless は、リージョン内の複数のアベイラビリティーゾーン間でワークロードを実行する方法を簡素化するリージョンサービスです。EMR Serverless でアプリケーションを使用する方法の詳細については、「EMR Serverless アプリケーションを操作して設定する」を参照してください。

ジョブ実行

ジョブ実行は、EMR Serverless アプリケーションに送信されるリクエストであり、アプリケーションはそれらのリクエストを非同期的に実行し、完了まで追跡します。ジョブの例としては、Apache Hive アプリケーションに送信する HiveQL クエリ、または Apache Spark アプリケーションに送信する PySpark データ処理スクリプトなどがあります。ジョブを送信する際に、ジョブが Amazon S3 オブジェクトなどの AWS リソースへのアクセスに使用する IAM で作成されたランタイムロールを指定する必要があります。アプリケーションには複数のジョブ実行リクエストを送信でき、各ジョブ実行では異なるランタイムロールを使用して AWS リソースにアクセスできます。EMR Serverless アプリケーションは、ジョブを受信したら直ちにジョブの実行を開始し、複数のジョブリクエストを同時に実行します。EMR Serverless がジョブを実行する方法の詳細については、「ジョブの実行」を参照してください。

ワーカー

EMR Serverless アプリケーションは、ワーカーを内部的に使用してワークロードを実行します。これらのワーカーのデフォルトサイズは、アプリケーションタイプと Amazon EMR リリースバージョンに基づいています。ジョブの実行をスケジュールすると、これらのサイズをオーバーライドできます。

ジョブを送信すると、EMR Serverless はアプリケーションがジョブに必要とするリソースを計算し、ワーカーをスケジュールします。EMR Serverless は、ワークロードをタスクに分割し、イメージをダウンロードして、ワーカーのプロビジョニングとセットアップを行い、ジョブが終了したら廃止します。EMR Serverless は、ジョブのすべての段階で必要なワークロードと並列処理に基づいて、ワーカーを自動的にスケールアップまたはスケールダウンします。この自動スケーリングにより、アプリケーションがワークロードを実行するために必要なワーカーの数をユーザーが見積もる必要がなくなります。

事前初期化された容量

EMR Serverless は、ワーカーが初期化され、数秒で応答できる状態に保つための事前初期化された容量機能を備えています。この容量によって、アプリケーションのワーカーのウォームプールが効果的に作成されます。各アプリケーションにこの機能を設定するには、アプリケーションの initial-capacity パラメータを設定します。事前初期化された容量を設定すると、ジョブが直ちに開始され、反復アプリケーションと時間的制約のあるジョブを実装できます。事前初期化されたワーカーの詳細については、「EMR Serverless を使用する際のアプリケーションの設定」を参照してください。

EMR Studio

EMR Studio は、EMR Serverless アプリケーションの管理に使用できるユーザーコンソールです。最初の EMR Serverless アプリケーションの作成時に EMR Studio がアカウントに存在しない場合は、自動的に作成されます。Amazon EMR コンソールから EMR Studio にアクセスするか、IAM または IAM Identity Center を介して ID プロバイダー (IdP) からのフェデレーティッドアクセスを有効にすることができます。これを行うと、ユーザーは Studio にアクセスし、Amazon EMR コンソールに直接アクセスすることなく EMR Serverless アプリケーションを管理できます。EMR Serverless アプリケーションと EMR Studio の連携の詳細については、「EMR Studio コンソールからの EMR Serverless アプリケーションの作成」および「EMR Studio コンソールからのジョブの実行」を参照してください。