LoginSignup
4
3

More than 5 years have passed since last update.

プライベートサブネット上のAmazon EMRクラスターにNATゲートウェイは不要か?

Last updated at Posted at 2018-10-15

先に結論

  • プライベートサブネット上のクラスターはサービスアクセス用のENIを介してEMRと通信するため NATゲートウェイを使用せずにジョブを実行できる
    • ただしS3のVPCエンドポイントは必ず必要
  • クラスタの起動リクエスト自体はインターネットを介してEMRのエンドポイントにAPIリクエストを投げる必要がある
実行したい内容 NATGWが必要か
プライベートサブネット内からのRunJobFlow等のAPIリクエスト 必要
他のAWSサービスと通信が不要なジョブを実行 不要
VPCエンドポイントに対応していないAWSサービスと通信が必要なジョブ 必要
VPCエンドポイントに対応しているAWSサービスと通信が必要なジョブ 不要

ドキュメントやFAQによって記載がまちまち

VPC 環境で Amazon EMR クラスターを起動する方法を教えてください。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/emr-launch-cluster-vpc/

Amazon EMR のプライベートサブネットを使用する場合は、NAT ゲートウェイとセキュリティグループを使用する必要があります

ネットワークの計画と構成
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-plan-vpc-subnet.html

パブリックおよびプライベート VPC サブネットの両方で EMR クラスターを起動できます。これは、EMR クラスターを実行するために、インターネット接続が必要ないことを意味します

また、以下からはAWSのサービスエンドポイントに対する通信が発生しなければ
NATゲートウェイは不要と読み取れます。

ただし、たとえば企業イントラネット内、または AWS Key Management Service などのパブリック AWS サービスエンドポイントなど、VPC の外側にあるサービスまたはリソースにアクセスするために、サービスネットワークアドレス変換 (NAT) および VPN ゲートウェイを構成しなければならない場合があります。

以下のドキュメントからも通信が必要なAWSサービスにVPCエンドポイントが提供されていれば
NATゲートウェイが不要と読み取ることができます。

Amazon VPC オプション - プライベートサブネット
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-clusters-in-a-vpc.html#emr-vpc-private-subnet

VPC エンドポイントを提供しない AWS サービスにアクセスするには、NAT インスタンスまたはインターネットゲートウェイを引き続き使用する必要があります。

実際に試してみる

クラスターの作成時、プラベートサブネットを指定すると以下のようなメッセージが出ますが、
クラスター自体の作成は可能です。

image.png

ちなみにEMRコンソール上からS3エンドポイント、NATインスタンスの作成はできるのですが、
今のところNATゲートウェイの作成には対応していないようです。

クラスターのブートストラップおよび、サンプルのHiveスクリプトの実行も問題なく完了します。

image.png

参考: ステップ 4: Hive スクリプトの実行によるサンプルデータの処理
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-gs-process-sample-data.html

クラスターはどのようにEMRのサービスエンドポイントと通信するか

NATゲートウェイがない環境でもEMRはクラスターの状態やジョブの処理状況を認識しています。
サブネット上に作成されたサービス通信用のENIを介してクラスターが管理されているためです。

image.png
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-clusters-in-a-vpc.html#emr-vpc-private-subnet

image.png

参考: 当時のBlog Post
【新発表】- Amazon EMRクラスタをプライベートサブネットで起動
http://aws.typepad.com/aws_japan/2015/12/new-launch-amazon-emr-clusters-in-private-subnets.html

プライベートサブネットでは、EMRサービスがクラスタと通信するために使うENIに設定するセキュリティグループを指定することもできます。

以上です。
参考になれば幸いです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3