View a markdown version of this page

クラスター起動時の Amazon VPC オプション - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クラスター起動時の Amazon VPC オプション

VPC 内で Amazon EMR クラスターを起動するときは、パブリックサブネット、プライベートサブネット、または共有サブネット内で起動できます。クラスターに選択するサブネットタイプに応じて、構成に多少の顕著な相違があります。

パブリックサブネット

パブリックサブネットの EMR クラスターでは、接続されているインターネットゲートウェイが必要です。これは、Amazon EMR クラスターが AWSサービスと Amazon EMR にアクセスする必要があるためです。Simple Storage Service (Amazon S3) などのサービスが、VPC エンドポイントを作成する機能を提供している場合、インターネットゲートウェイを通してパブリックエンドポイントにアクセスする代わりに、エンドポイントを使用してこれらのサービスにアクセスできます。また、Amazon EMR はネットワークアドレス変換 (NAT) デバイスを通じてパブリックサブネットのクラスターと通信することはできません。この目的にはインターネットゲートウェイが必要ですが、より複雑なシナリオでは、他のトラフィックに対して NAT インスタンスまたはゲートウェイを引き続き使用できます。

クラスター内のインスタンスはいずれも、VPC エンドポイントまたはインターネットゲートウェイを通じて Simple Storage Service (Amazon S3) に接続します。現在 VPC エンドポイントをサポートしていない他のAWSサービスは、インターネットゲートウェイのみを使用します。

インターネットゲートウェイに接続したくない追加のAWSリソースがある場合は、VPC 内に作成したプライベートサブネットでそれらのコンポーネントを起動できます。

パブリックサブネットで実行中のクラスターは 2 つのセキュリティグループを使用します。1 つはプライマリノード用、もう 1 つはコアノードとタスクノード用です。詳細については、「Amazon EMR クラスターのセキュリティグループを使用してネットワークトラフィックを制御する」を参照してください。

次の図は、パブリックサブネットを使用して Amazon EMR クラスターが VPC でどのように実行されるかを示しています。クラスターは、インターネットゲートウェイを介して Amazon S3 バケットなどの他のAWSリソースに接続できます。

VPC 上のクラスター

次の図は、VPC のクラスターが Oracle データベースなど、ご自身のネットワーク上のリソースにアクセスできるように VPC をセットアップする方法を示します。

ローカル VPN 上のリソースにアクセスできるように VPC とクラスターを設定する

プライベートサブネット

プライベートサブネットを使用すると、サブネットにインターネットゲートウェイをアタッチしなくてもAWSリソースを起動できます。プライベートサブネットでのクラスターの起動をサポートするのは、Amazon EMR リリースバージョン 4.2.0 以降のみです。

注記

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

プライベートサブネットとパブリックサブネットは、次の点で異なります。

  • Amazon EMR 8.0.0 以降および Amazon EMR Spark 8.0.0 以降では、Amazon EMR は VPC に VPC エンドポイントをプロビジョニングして、Amazon EMR クラスターが Amazon EMR サービスと通信できるようにします。クラスターを起動する前に、Amazon EMR のサービスロールに ec2:CreateVpcEndpointおよび アクセスec2:ModifyVpcEndpoint許可を提供するか、この VPC エンドポイントを手動で作成する必要があります。VPC エンドポイントサービスの名前は ですaws.api.region.emr-service-cell01。タグを含むスコープダウンポリシーの例については、「」を参照してくださいAmazon EMR のサービスロール (EMR ロール)

  • VPC エンドポイントを提供しないAWSサービスにアクセスするには、NAT インスタンスまたはインターネットゲートウェイを使用する必要があります。NAT ゲートウェイを作成するには、「Amazon VPC ユーザーガイド」の「NAT ゲートウェイ」を参照してください。

  • 少なくとも、Amazon EMR に必要なバケットの Amazon S3 へのルートを指定する必要があります。詳細については、Amazon S3 にアクセスするプライベートサブネットのサンプルポリシーを参照してください。

  • EMRFS 機能を使用する場合、Simple Storage Service (Amazon S3) VPC エンドポイントとプライベートサブネットから DynamoDB へのルートが必要です。

  • 既存の Amazon EMR クラスターがあるサブネットを、パブリックからプライベートに、またはその逆に変更することはできません。プライベートサブネット内で Amazon EMR クラスターを見つけるため、クラスターはそのプライベートサブネットで起動する必要があります。

Amazon EMR は、プライベートサブネット内のクラスターに対して、ElasticMapReduce-Primary-Private、ElasticMapReduce-Core-Private、および ElasticMapReduce-ServiceAccess という異なるデフォルトのセキュリティグループを作成して使用します。詳細については、「Amazon EMR クラスターのセキュリティグループを使用してネットワークトラフィックを制御する」を参照してください。

クラスターの NACL の完全なリストについては、Amazon EMR コンソールの [クラスターの詳細] ページで [プライマリのセキュリティグループ][コアおよびタスクのセキュリティグループ] を選択します。

次の図は、プライベートサブネット内で Amazon EMR クラスターが設定される方法を示しています。サブネット外の唯一の通信は、Amazon EMR に対するものです。

プライベートサブネットで Amazon EMR クラスターを起動する

次の図は、パブリックサブネットにある NAT インスタンスに接続されているプライベートサブネット内の Amazon EMR クラスターの設定例を示しています。

NAT を持つプライベートサブネット

共有サブネット

VPC 共有を使用すると、お客様は同じ AWSOrganization 内の他のAWSアカウントとサブネットを共有できます。次の注意点に注意しながら、Amazon EMR クラスターをパブリック共有サブネットとプライベート共有サブネットの両方で起動できます。

Amazon EMR クラスターをサブネットで起動するには、サブネットの所有者とサブネットを共有している必要があります。ただし、共有サブネットは後で共有解除することができます。詳細については、「共有 VPC の使用」を参照してください。クラスターを共有サブネットで起動した後に、共有サブネットが共有解除された場合は、サブネットの共有解除時に、Amazon EMR クラスターの状態に基づいて、特定の動作が発生します。

  • クラスターが正常に起動する前にサブネットが共有解除された場合 - 参加者がクラスターを起動しようとしている最中に、所有者が Amazon VPC またはサブネットの共有を停止した場合は、クラスターの起動に失敗するか、リクエストされたすべてのインスタンスがプロビジョニングされないままに、クラスターが部分的に初期化されることがあります。

  • クラスターが正常に起動した後にサブネットが共有解除された場合 - 所有者が参加者とのサブネットまたは Amazon VPC の共有を停止した場合、参加者のクラスターは、新しいインスタンスの追加や、異常なインスタンスを交換するためにサイズ変更できなくなります。

Amazon EMR クラスターを起動すると、複数のセキュリティグループが作成されます。共有サブネットでは、サブネットの参加者がこれらのセキュリティグループを制御します。サブネットの所有者は、これらのセキュリティグループを表示できますが、これらのグループに対してアクションを実行することはできません。サブネットの所有者がセキュリティグループの削除または変更を希望する場合は、セキュリティグループを作成した参加者がそのアクションを実行する必要があります。

IAM で VPC のアクセス許可を制御する

デフォルトでは、すべての ユーザーはそのアカウントのすべてのサブネットを表示でき、どのサブネットでもクラスターを起動できます。

VPC でクラスターを起動するときは、Amazon EC2 Classic で起動したクラスターと同様に、 AWS Identity and Access Management(IAM) を使用してクラスターへのアクセスを制御し、 ポリシーを使用してアクションを制限できます。IAM の詳細については、「IAM ユーザーガイド」を参照してください。

また、IAM を使用すると、サブネットを作成および管理できるユーザーを制御することもできます。例えば、サブネットを管理するための IAM ロールを 1 つ作成し、クラスターを起動することはできても Amazon VPC の設定を変更できないロールを 2 つ目として作成できます。Amazon EC2 および Amazon VPC でのポリシーとアクションの管理の詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 の IAM ポリシー」を参照してください。