AWS Glue エラー「SubnetID の VPC S3 エンドポイントの検証に失敗しました」をトラブルシューティングするにはどうすればよいですか?

所要時間2分
0

AWS Glue ジョブが以下のエラーで失敗しました。「JobRunId:jr_xx は、SubnetId の VPC S3 エンドポイントの検証が失敗した以外にも実行に失敗しました。理由: SubnetID の S3 エンドポイントまたは NAT ゲートウェイが見つかりませんでした。」または AWS Glue クローラーが以下のエラーで失敗しました。「SubnetID の VPC S3 エンドポイントの検証に失敗しました。理由: SubnetID の S3 エンドポイントまたは NAT ゲートウェイが見つかりませんでした。」

簡単な説明

このエラーは、次の条件に当てはまる場合に表示されます。

  • AWS Glue ジョブまたは AWS Glue クローラーで AWS Glue 接続を使用しています。
  • AWS Glue 接続用に設定されたサブネットに、Amazon Simple Storage Service (Amazon S3) 仮想プライベートクラウド (VPC) エンドポイントまたは NAT ゲートウェイが設定されていません。

AWS Glue は、AWS Glue 接続で指定されたサブネットに Elastic Network Interface を作成します。これらの Elastic Network Interface は、データソースと Amazon S3 への接続に使用されます。Elastic Network Interface には、指定されたサブネット内の IP アドレス範囲からプライベート IP アドレスが割り当てられます。パブリック IP アドレスは使用されないため、AWS Glue はインターネットを使用してデータソースや VPC 内の Amazon S3 に直接接続することはできません。詳細については、「データストアへのネットワークアクセスの設定」を参照してください。

解決策

AWS Glue 接続用に設定されたサブネットが、サブネットのルートテーブルに Amazon S3 VPC ゲートウェイエンドポイントまたは NAT ゲートウェイへのルートを持っていることを確認します。詳細については、「エラー: VPC の subnetId に S3 エンドポイントまたは NAT ゲートウェイが見つかりませんでした」を参照してください。AWS Glue ジョブがパブリックインターネットにアクセスする必要がある場合は、サブネットが NAT ゲートウェイで設定されていることを確認してください。

S3 VPC ゲートウェイエンドポイントのセットアップ

S3 VPC ゲートウェイエンドポイントをセットアップするには、次の手順に従います。

  1. Amazon VPC コンソールを開きます。
  2. ナビゲーションペインで [エンドポイント] を選択します。
  3. [エンドポイントの作成] を選択します。
  4. [サービス名]com.amazonaws.us-east-1.s3 を選択します。「タイプ」列に「**ゲートウェイ」と表示されていることを確認してください。
    注:**必ず us-east-1 を目的の AWS リージョンで置き換えてください。
  5. [VPC] で、エンドポイントを作成する VPC を選択します。
  6. [ルートテーブルの設定] には、S3 VPC エンドポイントへのルートが自動的に追加されます。
  7. [ポリシー] はデフォルトオプションの [フルアクセス] のままにします。
  8. [エンドポイントの作成] を選択します。

詳細については、「ゲートウェイエンドポイント」を参照してください。

より制限の厳しいポリシーを設定する場合は、必ず AWS Glue ジョブまたは AWS Glue クローラーの AWS ID およびアクセス管理 (IAM) ロールに必要な S3 バケットとオブジェクトへのアクセスを許可してください。

NAT ゲートウェイのセットアップ

: Elastic IP アドレスの作成は、NAT ゲートウェイをセットアップするための前提条件です。割り当ての詳細については、「Elastic IP アドレスの割り当て」を参照してください。

NAT ゲートウェイをセットアップするには、次の操作を行います。

: AWS Glue 接続に使用する VPC には、少なくとも 1 つのパブリックサブネットがあることを確認してください。詳細については、「パブリックサブネットとプライベートサブネットを持つ VPC (NAT)」を参照してください。

  1. Amazon VPC コンソールを開きます。
  2. ナビゲーションペインで [NAT ゲートウェイ] を選択します。
  3. [NAT ゲートウェイの作成] を選択します。
  4. [名前] に作成するゲートウェイの名前を入力します。
  5. [サブネット] では、AWS Glue 接続で指定した VPC のパブリックサブネットを選択します。
  6. [接続タイプ] をデフォルトオプションの [パブリック] のままにして、パブリック NAT ゲートウェイを作成できます。
  7. [NAT ゲートウェイの作成] を選択します。

ゲートウェイを設定した後、以下を行う必要があります。

  • AWS Glue 接続で指定されたサブネットに関連付けられているルートテーブルを変更します。
  • 作成した NAT ゲートウェイにルートを追加します。

ルートテーブルを変更して NAT ゲートウェイにルートを追加するには、次の手順を実行します。

  1. ナビゲーションペインで [ルートテーブル] を選択します。
  2. 変更するサブネットに関連付けられているルートテーブルを選択します。
  3. [アクション] を選択してから **[ルートの編集]**を選択します。
  4. [ルートの編集] ページで、[ルートの追加] を選択します。
  5. 表示される新しいルートで、次の操作を行います。
    [送信先] に「0.0.0.0/0」と入力します。
    [ターゲット][NAT ゲートウェイ] を選択し、作成する NAT ゲートウェイを選択します。**注:**インターネット経由のトラフィックなど、すべてのサブネットトラフィックが NAT ゲートウェイに送信されるようにするには、これらのオプションを選択する必要があります。
  6. [変更を保存] を選択します。

サブネットに S3 VPC エンドポイントまたは NAT ゲートウェイを設定した後、それぞれの AWS Glue 接続をテストします。テスト接続に成功したら、AWS Glue ジョブまたは AWS Glue クローラーを再実行します。


関連情報

Amazon S3 用 Amazon VPC エンドポイント

AWS公式
AWS公式更新しました 2年前