💭

Private Service Connectの設定:課題解決

2022/11/08に公開

Private Service Connect 設定時の課題解決

みなさん、こんにちは。
クラウドエースでいつだってごきげんをキャッチフレーズにSREをしている長野です。

前回、Private Service Connectの設定:課題共有で共有した課題についての解決策を記載していきたいと思います。
※ Private Service Connectは以降、PSCと略します

課題のおさらい

前回まとめた課題は以下のとおりです。

  1. PSCを設定するVPCは共有VPCにしないといけない?
  2. 名前解決をhostsで対応することは可能?
  3. ルーティングはどんな設定をする必要がある?

psc001

それでは、以下に具体的な解決策を記載していきます。

1. PSCを設定するVPCは共有VPCにしないといけない?

  • 回答:共有VPCは不要です

専用線は安価なものではないので、プロジェクトごとに回線を敷くことはしたくないですよね。
そこでネットワーク集約用のプロジェクトを作成し、そこに共有VPCを作成することはよくあるパターンだと思います。

今回の専用線経由でGoogleのAPI系サービス(今回はPub/SubとCloud Storage)に接続したいというケースでもネットワーク集約用のプロジェクトは用意したのですが、その上でAPI系のサービスでも共有VPCが必要なのか?というのが疑問点でした。

IPアドレス帯があるサービスでは共有VPCが必須だと思いますが、SubnetやIPアドレス帯のような概念がないPub/SubとCloud Storageでは、共有VPCは不要なのではないか?という疑問です。

結果は上記の通りで共有VPCは不要でした。

たとえばPub/Subへのpublishは以下のようなgcloudコマンドを利用します

gcloud pubsub topics publish  projects/xxxxxxxx/topics/xxxxxx  --message "Hello World"

projects/xxxxxxxx/topics/xxxxxxのようにプロジェクトを指定して通信しているので、PSCのIPアドレスから先は送付元の権限に基づいて送付先に繋がるため共有VPCは不要ということになります。

2. 名前解決をhostsで対応することは可能?

  • 回答:可能ですが、いくつか考慮点がありました。

ここは最初はPub/SubとCloud Storage用のhostsを設定すればOKと考えていましたが、それでは足りないものがありました。

それは、認証認可用の設定です。
以下が /etc/hosts の設定内容です。

[PSCのIPアドレス]    pubsub.googleapis.com
[PSCのIPアドレス]    storage.googleapis.com
[PSCのIPアドレス]    accounts.google.com
[PSCのIPアドレス]    oauth2.google.com

専用線接続をしてるということは、インターネット接続がない、もしくはインターネット接続させたくない、ということなので認証認可の通信に関してもPSC経由にする必要がある、ということです。

3. ルーティングはどんな設定をする必要がある?

  • 回答:PSCのIPアドレスをカスタムルートアドバタイズする

カスタムルートアドバタイズが必要なのは、PSCのIPアドレスがPSCを配置するVPCのSubnetの範囲外のIPレンジから払い出す必要があるためです。

https://cloud.google.com/vpc/docs/configure-private-service-connect-apis?hl=ja#ip-address-requirements

VPCのSubnet範囲内であればクラウドルーターがよしなにルートをアドバタイズしてくれるのですが、PSCのIPアドレスはSubnetの範囲からはみ出してしまうのでカスタムルートアドバタイズが必要、ということになります。

とはいえ設定は簡単で、以下のように設定します。

psc002

カスタムルートアドバタイズの設定に関する参考URLは以下です。

https://cloud.google.com/network-connectivity/docs/router/how-to/advertising-custom-ip?hl=ja#cloud-router

まとめ

ということで、課題の解決ができました。

専用線経由のAPI系サービスへの接続は、エンタープライズ要件としては需要があると思いますので、同じような状況で課題を抱えてる方の助けになれば幸いです。

Discussion