Amazon EMR を使用する利点 - Amazon EMR

Amazon EMR を使用する利点

Amazon EMR を使用することには多くのメリットがあります。このセクションでは、このようなメリットの概要と、詳しい情報へのリンクを示します。

コスト削減

Amazon EMR の料金は、デプロイするインスタンスタイプと Amazon EC2 インスタンスの数、およびクラスターを起動するリージョンによって異なります。オンデマンド料金は低価格ですが、リザーブドインスタンスまたはスポットインスタンスを購入すると、コストをさらに抑えることができます。スポットインスタンスを利用すると大幅に節約できます。場合によっては、オンデマンド料金の 10 分の 1 になります。

注記

EMR クラスターとともに Amazon S3、Amazon Kinesis、または DynamoDB を使用している場合、Amazon EMR の利用とは別個に請求されるサービスについては追加料金が発生します。

注記

プライベートサブネットに Amazon EMR クラスターを設定するときは、Amazon S3 の VPC エンドポイントも設定することをお勧めします。EMR クラスターが Amazon S3 の VPC エンドポイントのないプライベートサブネットに存在する場合、EMR クラスターと S3 間のトラフィックは VPC 内にとどまらないため、S3 トラフィックに関連する追加の NAT ゲートウェイ料金が発生します。

料金のオプションと詳細については、「Amazon EMR 料金表」を参照してください。

AWS の統合

Amazon EMR は、クラスターのネットワーキング、ストレージ、セキュリティなどに関連する機能を提供するため、他の AWS サービスと統合されています。次のリストに、この統合の例をいくつか示します。

  • クラスターのノードを構成するインスタンスの Amazon EC2

  • インスタンスを起動する仮想ネットワークを設定するための Amazon Virtual Private Cloud (Amazon VPC)

  • 入力データと出力データを保存するための Amazon S3

  • クラスターのパフォーマンスを監視し、アラームを設定する Amazon CloudWatch

  • アクセス許可を設定する AWS Identity and Access Management (IAM)

  • サービスに対して行われたリクエストを監査する AWS CloudTrail

  • クラスターをスケジュールおよび開始する AWS Data Pipeline

  • Amazon S3 データレイク内のデータを検出、分類、保護する AWS Lake Formation

デプロイ

EMR クラスターは、クラスターに送信した処理を実行する EC2 インスタンスで構成されます。クラスターを起動すると、選択したアプリケーション (Apache Hadoop や Spark など) を使用してインスタンスが Amazon EMR により構成されます。クラスターの処理の必要に最も合うインスタンスサイズとタイプを選択します (バッチ処理、レイテンシークエリ、ストリーミングデータ、または大容量データストレージ)。Amazon EMR で利用可能なインスタンスタイプの詳細については、「クラスターハードウェアとネットワークを設定する」を参照してください。

Amazon EMR には、クラスター上のソフトウェアを設定するためのさまざまな方法があります。たとえば、Amazon EMR リリースは、Hadoop などの多用途フレームワークと Hive、Pig、Spark などのアプリケーションを含むアプリケーションセットを選択してインストールできます。いくつかの MapR ディストリビューションの 1 つをインストールすることもできます。Amazon EMR は Amazon Linux を使用するため、yum パッケージマネージャで、またはソースから手動でクラスターにソフトウェアをインストールすることもできます。詳細については、「クラスターソフトウェアを設定する」を参照してください。

スケーラビリティと柔軟性

Amazon EMR には、コンピューティングニーズの変化に合わせてクラスターを拡大または縮小できる柔軟性が備わっています。クラスターのサイズを変更し、ピークワークロード用にインスタンスを追加したり、ピークワークロードが減少したときにインスタンスを削除してコストをコントロールしたりすることができます。詳細については、「実行中のクラスターのサイズを手動で変更する」を参照してください。

Amazon EMR には、複数のインスタンスグループを実行することにより、あるグループでオンデマンドインスタンスを使用して処理能力を保証すると同時に、別のグループでスポットインスタンスを使用してジョブを高速に低コストで完了できるようにするオプションも用意されています。異なるインスタンスタイプを混ぜて、別のインスタンスタイプよりも有利なスポットインスタンスタイプの料金を活かすこともできます。詳細については、「スポットインスタンスを使用すべき場合」を参照してください。

さらに、Amazon EMR には入力データ、出力データ、中間データに複数のファイルシステムを使用する柔軟性も備わっています。例えば、クラスターのライフサイクル後は保存する必要がないデータを処理するために、クラスターのプライマリノードとコアノードで実行される Hadoop 分散ファイルシステム (HDFS) を選択することができます。Amazon S3 をクラスターで実行されるアプリケーションのデータレイヤーとして使用するために EMR File System (EMRFS) を選択し、コンピューティングとストレージを分離して、データをクラスターのライフサイクル外に保持することができます。EMRFS には、コンピューティングのニーズとストレージのニーズそれぞれに合わせて拡大または縮小できるという利点もあります。コンピューティングのニーズが変化した場合はクラスターのサイズを変更することができ、ストレージのニーズが変化した場合は Amazon S3 を使用することができます。詳細については、「ストレージシステムとファイルシステムで作業する」を参照してください。

信頼性

Amazon EMR は、クラスター内のノードを監視し、障害が発生した場合はインスタンスを自動的に終了して置き換えます。

Amazon EMR には、クラスターの終了方法 (自動または手動) をコントロールする設定オプションが用意されています。クラスターが自動的に終了されるように設定した場合、すべてのステップが完了すると終了されます。これは一時的なクラスターと呼ばれます。一方、クラスターが必要なくなったときに手動で終了を選択できるように、処理が完了した後もクラスターが実行され続けるように設定することもできます。または、クラスターを作成して、インストールされたアプリケーションを直接操作した後、必要なくなった時に手動で終了することもできます。このようなクラスターは長時間稼働クラスターと呼ばれます。

さらに、削除保護を設定し、処理中にエラーや問題が発生した場合にクラスター内のインスタンスが削除されないようにすることもできます。終了保護が有効になると、終了前にインスタンスからデータを回復できます。これらのオプションのデフォルト設定は、クラスターの起動方法 (コンソール、CLI、または API) によって異なります。詳細については、「終了保護の使用」を参照してください。

セキュリティ

Amazon EMR は、IAM や Amazon VPC などの他の AWS サービス、および Amazon EC2 キーペアなどの機能を利用して、クラスターやデータを保護します。

IAM

Amazon EMR は、アクセス権限を管理するため IAM と統合されています。アクセス権限は、ユーザーまたは IAM グループにアタッチする IAM ポリシーを使用して定義します。ポリシーで定義したアクセス権限により、それらのユーザーまたはグループのメンバーが実行できるアクションと、アクセスできるリソースが決まります。詳細については、「Amazon EMR で IAM が機能する仕組み」を参照してください。

さらに、Amazon EMR は Amazon EMR サービス自体の IAM ロールとインスタンスの EC2 インスタンスプロファイルを使用します。これらのロールは、ユーザーの代わりに他の AWS サービスにアクセスするアクセス権限をサービスとインスタンスに付与します。Amazon EMR サービスのデフォルトロールと EC2 インスタンスプロファイルのデフォルトロールが存在します。デフォルトロールは、初めてコンソールから EMR クラスターを起動してデフォルトアクセス権限を選択したときに自動的に作成される AWS 管理ポリシーを使用します。デフォルト IAM ロールは、AWS CLI から作成することもできます。AWS の代わりにアクセス権限を管理する場合、サービスとインスタンスプロファイルにカスタムロールを選択できます。詳細については、「AWS のサービスおよびリソースへのアクセス許可を Amazon EMR に付与する IAM サービスロールの設定」を参照してください。

セキュリティグループ

Amazon EMR は、セキュリティグループを使用して、EC2 インスタンスのインバウンドトラフィックとアウトバウンドトラフィックをコントロールします。クラスターを起動すると、Amazon EMR はプライマリインスタンスのセキュリティグループと、コアインスタンス/タスクインスタンスによって共有されるセキュリティグループを使用します。Amazon EMR は、クラスター内のインスタンス間の通信を確実にするために、セキュリティグループルールを設定します。オプションで、追加のセキュリティグループを設定し、高度なルールで、プライマリインスタンスとコア/タスクインスタンスにそのグループを割り当てることができます。詳細については、「セキュリティグループを使用してネットワークトラフィックを制御する」を参照してください。

暗号化

Amazon EMR では、Amazon S3 に保存するデータを保護できるようにするため、EMRFS を使用したオプションの Amazon S3 サーバー側の暗号化とクライアント側の暗号化がサポートされます。サーバー側の暗号化を使うと、Amazon S3 はアップロード後にデータを暗号化します。

クライアント側の暗号化を使用すると、暗号化および復号プロセスは EMR クラスターの EMRFS で行われます。クライアント側の暗号化のルートキーは、AWS Key Management Service (AWS KMS) またはユーザー独自のキー管理システムのキーを使用して管理します。

詳細については、「EMRFS プロパティを使用して Amazon S3 の暗号化を指定する」を参照してください。

Amazon VPC

Amazon EMR は、Amazon VPC の仮想プライベートクラウド (VPC) におけるクラスターの起動をサポートします。VPC は AWS 内の分離された仮想ネットワークであり、ネットワーク設定およびアクセスの細かい側面をコントロールできます。詳細については、「ネットワークを設定する」を参照してください。

AWS CloudTrail

Amazon EMR は、AWS アカウントが実行したリクエストやアカウントの代わりに実行されたリクエストに関する情報をログ記録するため、CloudTrail と統合されています。この情報を使用すると、クラスターにアクセスしたユーザーや日時に加え、リクエストの生成元 IP アドレスを追跡できます。詳細については、「AWS CloudTrail に Amazon EMR API 呼び出しをログ記録する」を参照してください。

Amazon EC2 のキーペア

リモートコンピュータとプライマリノードの間で安全な接続を確立することにより、クラスターを監視して操作できます。Secure Shell (SSH) ネットワークプロトコルを使用して接続するか、Kerberos で認証することができます。SSH を使用する場合は Amazon EC2 キーペアが必要です。詳細については、「SSH 認証情報に EC2 キーペアを使用する」を参照してください。

モニタリング

Amazon EMR 管理インターフェイスとログファイルを使用して、障害やエラーなどのクラスターの問題をトラブルシューティングできます。Amazon EMR には、ログファイルを Amazon S3 にアーカイブする機能があるため、クラスターの終了後でもログを保存し、問題のトラブルシューティングを行うことができます。Amazon EMR には、Amazon EMR コンソールで、ステップ、ジョブ、およびタスクに基づいてログファイルを参照するためのオプションのデバッグツールも用意されています。詳細については、「クラスターのログ記録とデバッグを設定する」を参照してください。

Amazon EMR は、クラスターとクラスター内のジョブのパフォーマンスメトリクスを追跡するため、CloudWatch と統合されています。クラスターがアイドル状態かどうかや使用されているストレージの割合など、さまざまなメトリクスに基づいてアラームを設定できます。詳細については、「CloudWatch で Amazon EMR のメトリクスをモニタリングする」を参照してください。

管理インターフェイス

Amazon EMR とやり取りする方法はいくつかあります。

  • コンソール — クラスターの起動と管理に使用できるグラフィカルユーザーインターフェイス。起動するクラスターの詳細をウェブフォームに入力することで指定し、既存のクラスターの詳細を確認して、クラスターのデバッグや終了を行うことができます。コンソールは、最も簡単に Amazon EMR の使用を開始する手段です。プログラミングの知識は必要ありません。コンソールは、https://console.aws.amazon.com/elasticmapreduce/home からオンラインで使用できます。

  • AWS Command Line Interface (AWS CLI) — Amazon EMR に接続し、クラスターを作成して管理するためにローカルマシンで実行するクライアントアプリケーション。AWS CLI には、機能が豊富な Amazon EMR 固有のコマンド一式が含まれています。これを利用すると、クラスターの起動と管理のプロセスをスクリプトで自動化できます。コマンドラインから作業する場合は、AWS CLI を使用するのが最適の選択肢です。詳細については、「https://docs.aws.amazon.com/cli/latest/reference/emr/index.html コマンドリファレンス」の「AWS CLIAmazon EMR」を参照してください。

  • Software Development Kit (SDK) — SDK には、Amazon EMR を呼び出してクラスターを作成し、管理する機能が備わっています。これを利用すると、クラスターの作成や管理のプロセスを自動化するアプリケーションを作成できます。Amazon EMR の機能を拡張したりカスタマイズしたりするには、SDK が最適の選択肢です。Amazon EMR は現在、次の SDK で使用可能です。Go、Java、.NET (C# および VB.NET)、Node.js、PHP、Python、および Ruby。これらの SDK の詳細については、「AWS のツール」および「Amazon EMR サンプルコード & ライブラリ」を参照してください。

  • Web Service API – JSON を使用して直接ウェブサービスを呼び出すことができる低レベルインターフェイスです。Amazon EMR を呼び出すカスタム SDK を作成するには、この API が最適の選択肢です。詳細については、「Amazon EMR API リファレンス」を参照してください。