GlueのETLジョブではVPCエンドポイントを使用して、インターネットを経由せずS3へのアクセスを行うことができます。以下のドキュメントに記載されている通りです。S3https://docs.aws.amazon.com/glue/latest/dg/vpc-endpoints-s3.htmlイメージ図もそのまま引用させていただきます。Glueが指定したプライベートサブネット上でENIを作成し、そのENIに割り当てられたプライベートIPでVPCエンドポイントを経由してS3にアクセスします。やりたいことはこれだけなのですが、ジョブ自体にはS3のアクセスやVPCサブネットを指定する方法がなく設定に戸惑ったため、手順を残しておきます。ここでは以下の内容には触れません。接続設定の追加Glueのコンソールメニューから、データカタログのデータベース→接続と進み、接続の追加を選択します。現状、データソースとしてS3にプライベートアクセスを行いたいだけの場合であってもこのような接続設定を介す必要があります。これがわかりにくかった。入力したら次に進みます。URL/ユーザ名/パスワードが必須になっているのでここではダミーの情報を入力しました。オンプレミスデータベースの接続情報を入力し、DirectConnectを介して接続するなどの用途にも実際には使用することが可能です。その下の設定でVPC/Subnet/セキュリティグループを指定することができます。適切なルート情報が設定されていれば、GlueジョブはS3へプライベート接続を行います。設定するセキュリティグループには全てのTCPポートに対する自己参照のインバウンドルールが含まれている必要があります。自己参照ルールというのは以下のように送信元に自身のセキュリティグループが設定されているルールのことを指します。最後に設定の確認を行い、接続の追加を完了します。URLに対し接続確認を行います。エンドポイントを経由したS3アクセスを確認するものではありません。ダミーのJDBC情報を入力している場合は、当然のことながらテストは失敗します。対象のジョブ設定で、すべての接続に先ほど追加した接続設定が追加されています。選択をクリックすると要求される接続に設定が追加されますので、この状態でジョブ設定を保存します。動作確認バケットポリシーで対象VPCエンドポイント経由のみを許可したバケットをデータソース/結果出力先としてジョブを実行し、正常終了することを確認しました。Logsに保存されているジョブのログを参照し、VPCのプライベートIPが使用されていることを確認することもできます。注意点などS3バケットのリージョンS3のVPCエンドポイントを使用する際の基本的な注意点ではありますが、VPCエンドポイントが存在するリージョンとS3バケットが存在しているリージョンは同一である必要があります。サブネットの利用可能なIP数を考慮する前述の通りプライベート接続を使用したジョブを実行するとGlueにENIが割り当てられます。サブネットを細かく分割している場合に、サブネットで利用可能なIPv4の残数に注意してください。気がつくと結構な数のENIが割り当てられていたりします。unavailable(メッセージがわかりにくい...)でジョブがFailedする場合はIPが枯渇している可能性が高いです。些細な点ですが、プライベート接続を使用したジョブを起動すると通常よりも処理開始まで時間がかかるようになりました。ENIの割当等で余計に時間を使っているのだと思われます。shellで試してみましたが、ジョブに接続設定を追加しても現状はVPCエンドポイント経由の接続とはならないようです。以下のような超簡易ジョブを実行してみたところ、指定したVPCのIPアドレスにならなかったので。addr")結果は以下のような感じ。Gluehttps://aws.amazon.com/jp/about-aws/whats-new/2019/01/introducing-python-shell-jobs-in-aws-glue/以上です。参考になれば幸いです。requestStockLike3@hayao_kインフラ大好きです。掲載内容は個人の見解であり、所属する企業を代表するものではありません。Follow株式会社セゾン情報システムズモード1(守りのIT)・モード2(攻めのIT)を兼ね備えたバイモーダル・インテグレーターとしてFintechプラットフォーム、流通ITサービス、HULFT事業およびセンターマネジメントサービスを提供します。