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 クラスターをスケジュールして起動する。

  • AWS Lake Formation Amazon S3 データレイク内のデータを検出、カタログ化、保護する

デプロイ

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 インスタンスプロファイルのデフォルトロールが存在します。 AWS デフォルトのロールは管理ポリシーを使用します。管理ポリシーは、コンソールから EMR クラスターを初めて起動してデフォルトの権限を選択したときに自動的に作成されます。デフォルト 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 CloudTrail はと統合して、お客様のアカウントによって、 AWS またはお客様のアカウントに代わって行われたリクエストに関する情報を記録します。この情報を使用すると、クラスターにアクセスしたユーザーや日時に加え、リクエストの生成元 IP アドレスを追跡できます。詳細については、「での Amazon EMR API コールのログ記録 AWS CloudTrail」を参照してください。

Amazon EC2 のキーペア

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

モニタリング

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

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

管理インターフェイス

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

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

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