Private Service Connectの設定:課題解決
Private Service Connect 設定時の課題解決
みなさん、こんにちは。
クラウドエースでいつだってごきげん
をキャッチフレーズにSREをしている長野です。
前回、Private Service Connectの設定:課題共有で共有した課題についての解決策を記載していきたいと思います。
※ Private Service Connectは以降、PSCと略します
課題のおさらい
前回まとめた課題は以下のとおりです。
- PSCを設定するVPCは共有VPCにしないといけない?
- 名前解決をhostsで対応することは可能?
- ルーティングはどんな設定をする必要がある?
それでは、以下に具体的な解決策を記載していきます。
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レンジから払い出す必要がある
ためです。
VPCのSubnet範囲内であればクラウドルーターがよしなにルートをアドバタイズしてくれるのですが、PSCのIPアドレスはSubnetの範囲からはみ出してしまうのでカスタムルートアドバタイズが必要、ということになります。
とはいえ設定は簡単で、以下のように設定します。
カスタムルートアドバタイズの設定に関する参考URLは以下です。
まとめ
ということで、課題の解決ができました。
専用線経由のAPI系サービスへの接続は、エンタープライズ要件としては需要があると思いますので、同じような状況で課題を抱えてる方の助けになれば幸いです。
Discussion