前回の投稿のとおり、外部IPを制限する組織ポリシー(constraints/compute.vmExternalIpAccess
)を入れてDataflowジョブを実行したところ、ジョブが失敗しました。
Dataflowの設定を変更して、この事象を回避できるか実験をしましたので、順番に見ていきます。
Step1:ワーカーIPアドレスの構成を変更する
Dataflowのジョブの詳細設定にワーカーIPアドレスの構成を変更するという設定がありますので、そこをプライベートに変更しました。
この設定でジョブを実行しました!結果はどうなったかというと・・・
失敗でした
内部IPアドレスのみの設定の場合、GCPのサービスに接続できず、エラーとなりました。
さらなる回避策ですが、エラーメッセージに出力されているとおり、Private Google Accessをする必要がありそうです。
Private Google Access
Private Google Accessを使用すると、内部 IP アドレスしか持たない VM インスタンス(外部 IP アドレスなし)がGoogle API とサービスにアクセスできるようになります。
詳細はこちらです。
Step2:Private Google Accessを使用してDataflowジョブを実行する
それではDataflowでPrivate Google Accessを使用できるように設定していきます。
まずはカスタムモードでVPCネットワークを新規作成(詳細略)した後、手動でsubnetを作成しました。こちらのサブネットで、Private Google Accessをオンにしました。
Dataflowジョブの設定に戻りまして、ジョブの詳細設定でサブネットを設定できますので、Private Google Accessをオンにしたサブネットを指定します。
この設定でジョブを実行すると・・・
ジョブが成功しました!!
まとめ
- 外部IPを制限する組織ポリシーを入れた環境でDataflowを動かすことができました。
- Google CloudのDataflowに関するページはコチラになります。