事象
GlueからVPC内のRDSにコネクションを作る際、以下のエラー画面が出てコネクションの作成に失敗する。
「Connection creation is failed」
※上記エラーは詳細情報がなくCloudWatchLogsに全く記録されないため、AWSサポートに改善依頼を出しました。
結論
- Glueから接続先として指定するVPC内サブネットがインターネットへのNATアクセス(※)ができない場合は、VPC内に以下のVPCエンドポイントが必要。
- secretsmanager
- sts
- ※「インターネットへのNATアクセス」とは私の造語です。具体的には以下を指しています。
- NATゲートウェイへのルートを持つサブネットからインターネットへのアクセス
- 例えばEC2はグローバルIPをアタッチさせることができます。これはインターネットゲートウェイが持つグローバルIPと、EC2のプライベートIPがNATされるということを意味します。
- 一方、GlueのENIはパブリックサブネットに設置したとしても、グローバルIPをアタッチすることができません(おそらく分散型のため。Dynamic NATしてほしいところですが)。そのため、GlueのENIがAWSのエンドポイントに到達するためには、以下のいずれかの通信経路が必要になります。
- インターネット上の各AWSエンドポイント
- NATゲートウェイを通してインターネットに接続
- GlueにとってNATを肩代わりしてくれるものとしてのNATゲートウェイ
- NATゲートウェイを通してインターネットに接続
- VPCエンドポイント
- VPCからプライベート接続
- 今回の注意喚起はこちらのパターン
- VPCからプライベート接続
- インターネット上の各AWSエンドポイント
- NATゲートウェイへのルートを持つサブネットからインターネットへのアクセス
詳細
- これはGlueのコネクタの仕様変更による影響です。
- 2025年7月現在、Glueコネクタをマネジメントコンソールから作成する場合はVer.2がデフォルトになっています。
-
Ver.2は、昨今のSagemaker Unified Studioへの各データ分析系サービスの統合の流れによるもので仕様変更が行われています。
-
https://docs.aws.amazon.com/glue/latest/dg/using-connectors-unified-connections.html
- 以下のような機能が拡張されているようです。(Glueコンソール上はまだ恩恵がないようにみえます)
- 接続タイプの検出
- 再利用性
- データ プレビュー
- コネクタ メタデータ
- サービスにリンクされたシークレット
- 以下のような機能が拡張されているようです。(Glueコンソール上はまだ恩恵がないようにみえます)
-
https://docs.aws.amazon.com/glue/latest/dg/using-connectors-unified-connections.html
-
Ver.2で作成されたコネクタは、RDSへの接続パスワードをコンソール上で平文で貼り付けた場合であっても、裏ではSecretsManagerに保管されるようで、その関係でSecretsManagerのVPCエンドポイントが必要になります。
- 従来(Ver.1)はGlueサービス内にパスワードを保存できたのに対し、Ver.2では他サービスから連携できるようにSecretsManagerに外部保管するように変更したと思われます。
-
また、(やや推測ですが)上記の機能拡張の「再利用性」の項目にあるとおり、Glue以外のサービスからGlueのコネクションを利用できるようにするため、stsのVPCエンドポイントが必要になるものと思われます。
-
今回の事象に関しては上記ページのこちらにさらっとだけ書かれています。
-
If jobs run in a VPC, they require either a VPC endpoint or NAT gateway to access AWS Secrets Manager and Secure Token Service (STS), which incurs additional costs.
-
- 2025年7月現在、Glueコネクタをマネジメントコンソールから作成する場合はVer.2がデフォルトになっています。
感想など
なお、Ver.1でコネクタを作成するには、非常に残念ながらCLIしか手段がありません。
Ver.2で必要になるインターフェース型のVPCエンドポイントやNATゲートウェイは有料ですから、Ver.1を使いたくなります。このままだとGlueコンソールからみるとサービスの改悪の印象を受けますから、Ver.1もコンソール上から選択できるようになることを望みます。
https://docs.aws.amazon.com/cli/latest/reference/glue/create-connection.html
なにより、GlueからRDSへの接続は、AWSの製品同士なわけですから、もっともシームレスに接続できなくてはいけないと私は思います。にもかかわらず、このような手間とコストが発生してしまうのは非常に残念です。(以下に記載するように自己参照型のSecurityGroupという、とっつきにくい設定も必要なわけですし。)
手順系メモ
-
VPCエンドポイントの作成
-
Glueコネクションの作成
-
RDSのSG
以上です。