VPC でクラスターを起動する
Amazon EMR クラスターをホストするように設定されたサブネットが作成されたら、クラスターの作成時に関連するサブネット ID を指定して、そのサブネットでクラスターを起動します。
Amazon EMR は、リリースバージョン 4.2 以降のプライベートサブネットをサポートします。
クラスターが起動された場合、Amazon EMR はクラスターが VPC プライベートサブネットまたはパブリックサブネット内で起動しているかどうかに基づいて、セキュリティグループを追加します。すべてのセキュリティグループでは、Amazon EMR サービスとの通信にポート 8443 での受信を許可しますが、IP アドレスの範囲はパブリックサブネットとプライベートサブネットで異なります。Amazon EMR はこれらのセキュリティグループをすべて管理し、時間の経過とともに IP アドレスを AWS に追加することが必要になる場合があります。詳細については、「セキュリティグループを使用してネットワークトラフィックを制御する」を参照してください。
VPC 上のクラスターを管理するために、Amazon EMR はネットワークデバイスをプライマリノードにアタッチし、このデバイスを通じて管理を行います。このデバイスは、Amazon EC2 API アクション DescribeInstances
を使用して確認できます。このデバイスをいずれかの方法で変更すると、クラスターに障害が発生する可能性があります。
Amazon EMR コンソールは、再設計され、使いやすくなりました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「コンソールの新機能」を参照してください。
- New console
-
新しいコンソールを使用して VPC 内でクラスターを起動するには
-
AWS Management Consoleにサインインし、Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。
-
左側のナビゲーションペインの [EMR on EC2] で、[クラスター] を選択し、[クラスターの作成] を選択します
-
[ネットワーク] の [仮想プライベートクラウド (VPC)] フィールドに移動します。VPC の名前を入力するか、[参照] を選択して VPC を選択します。または [VPC の作成] を選択して、クラスターに使用できる VPC を作成します。
-
クラスターに適用するその他のオプションを選択します。
-
クラスターを起動するには、[クラスターの作成] を選択します。
- Old console
-
古いコンソールを使用して VPC 内でクラスターを起動するには
新しい Amazon EMR コンソールに移動し、サイドナビゲーションから [古いコンソールに切り替え] を選択します。古いコンソールに切り替えたときの動作の詳細については、「Using the old console」を参照してください。
-
[Create cluster] (クラスターを作成) を選択します。
-
[Go to advanced options] を選択します。
-
[Hardware Configuration (ハードウェア構成)] セクションの [Network (ネットワーク)] で、以前に作成した VPC ネットワークの ID を選択します。
-
[EC2 Subnet (EC2 サブネット)] で、以前に作成したサブネットの ID を選択します。
-
プライベートサブネットが、NAT インスタンスと S3 エンドポイントオプションで正しく構成されている場合、サブネット名と識別子の上に (EMR 対応) と表示されます。
-
プライベートサブネットに NAT インスタンスまたは S3 エンドポイント (またはその両方) がない場合、[Add S3 endpoint and NAT instance (S3 エンドポイントおよび NAT インスタンスの追加)]、[Add S3 endpoint (S3 エンドポイントの追加)]、または [Add NAT instance (NAT インスタンスの追加)] を選択してこれを設定できます。NAT インスタンスおよび S3 エンドポイント用に必要なオプションを選択し、[設定] を選択します。
Amazon EMR から NAT インスタンスを作成するには、ec2:CreateRoute、ec2:RevokeSecurityGroupEgress
、ec2:AuthorizeSecurityGroupEgress
、cloudformation:DescribeStackEvents
、および cloudformation:CreateStack
のアクセス許可が必要です。
NAT デバイスに対して Amazon EC2 インスタンスを起動すると、追加のコストが発生します。
-
クラスターの作成に進みます。
- AWS CLI
-
AWS CLI を使用して VPC 内でクラスターを起動するには
AWS CLI は、NAT インスタンスを自動的に作成してプライベートサブネットに接続する方法は提供しません。ただし、サブネットで S3 エンドポイントを作成するには、Amazon VPC CLI コマンドを使用できます。コンソールを使用して NAT インスタンスを作成し、プライベートサブネットでクラスターを起動します。
VPC の設定が完了したら、create-cluster
サブコマンドと --ec2-attributes
パラメータを使用して、VPC 内で Amazon EMR クラスターを起動できます。クラスターに VPC サブネットを指定するには、--ec2-attributes
パラメータを使用します。
-
特定のサブネットにクラスターを作成するには、次のコマンドを入力し、myKey
を Amazon EC2 キーペアの名前に置き換え、77XXXX03
をサブネット ID に置き換えます。
aws emr create-cluster --name "Test cluster"
--release-label emr-4.2.0
--applications Name=Hadoop
Name=Hive
Name=Pig
--use-default-roles --ec2-attributes KeyName=myKey
,SubnetId=subnet-77XXXX03
--instance-type m5.xlarge
--instance-count 3
--instance-groups
パラメータを使用せずにインスタンス数を指定すると、1 つのプライマリノードが起動され、残りのインスタンスはコアノードとして起動されます。すべてのノードで、コマンドで指定したインスタンスタイプが使用されます。
以前にデフォルトの Amazon EMR サービスロールと EC2 インスタンスプロファイルを作成していない場合は、「aws
emr create-default-roles
」と入力してそれらを作成してから、create-cluster
サブコマンドを入力します。