SageMaker の Processing job で VPC 内の Redshift に接続できない理由を教えてください

2022.08.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

Processing job から Redshift に接続し、ML用のデータの前処理を行いたいと考えています。

ジョブから VPC 内の Redshift にアクセスすると、下記のエラーが発生します。

psycopg2.OperationalError: could not connect to server: Connection timed out
Is the server running on host "xxxx.xxxx.ap-northeast-1.redshift.amazonaws.com" (xx.xx.xx.xx) and accepting TCP/IP connections on port 5439?

エラーの発生原因と対処方法を教えてください。

どう対応すればいいの?

該当ジョブの設定を確認したところ、

ネットワーク分離の有効化 (EnableNetworkIsolation):True

になっていました。

この設定を有効にすると、すべてのアウトバウンドネットワーク呼び出しを実行できなくなります。

ネットワーク分離の有効化:False

に設定していただき、Redshift に接続できるかご確認ください。

参考資料

[1] トレーニングおよび推論コンテナをインターネットフリー モードで実行する - Amazon SageMaker

ネットワーク分離を有効にすると、コンテナは、Amazon S3 などの他の AWS サービスを含めて、すべてのアウトバウンドネットワーク呼び出しを実行できなくなります。