こんにちは!クラウドの海を泳ぎ続けるSREの視点から、今日はGCPネットワークの中でも特に「これを知っておくと世界が変わる」と言っても過言ではない、Private Service Connect (PSC) についてお話しします。
「VPCピアリング?NAT?何だかネットワークの構成図がスパゲッティみたいになってきた……」と頭を抱えた経験はありませんか? PSCは、そんな複雑なネットワークの絡まりをバサッと断ち切る、魔法のような仕組みなんです。
今回は、難しい用語を並べるのは一旦お休みして、身近な「郵便システム」に例えながら、PSCの正体を紐解いていきましょう。
—
1. そもそもPSCって何?「専用の私書箱」を作ること
ネットワークの世界では、Aという場所からBという場所へパケット(データ)を送るために、複雑な経路設定や、お互いの住所を知り合うための「ピアリング」という作業が必要でした。でも、これだと相手が増えるたびに設定が膨大になり、ミスも起きやすくなります。
そこで登場したのが PSC です。
PSCは、「自分のVPCの中に、相手のサービスへ直通する『専用の私書箱』を置いてしまう」 という考え方です。
- 送信側(クライアント): 自分の家の近く(自分のVPC内)に「あのサービス専用の私書箱」を設置します。
- 宛先側(サービス提供者): 「この私書箱に来た手紙は、すべて私のサービスに届くようにする」という転送ルールを設けます。
これなら、インターネットの荒波にデータをさらす必要はありません。すべてGCPの広大な内部ネットワークという「専用道路」を通って、安全にデータがやり取りされるのです。
—
2. PSCの構成:エンドポイントと転送ルールの役割
PSCを理解するには、2つの登場人物を覚えるだけで十分です。
1. PSC エンドポイント(私書箱)
自分のVPCの中に作る「IPアドレス」のことです。例えば 10.0.0.5 というIPを割り当てたとしましょう。アプリケーションからは、「あ、このアドレスに送ればサービスに届くんだな」と認識されます。
2. PSC 転送ルール(転送窓口)
サービス提供者側が持つ「受け取り窓口」です。エンドポイント(私書箱)に届いた荷物を、どのサービス本体に引き渡すかを決定します。
—
3. 実践!PSCエンドポイントを作ってみよう
では、実際に gcloud コマンドを使って、PSCエンドポイントを作成する流れを見てみましょう。今回はGoogleの管理サービス(Cloud SQLなど)を想定した設定例です。
# 1. 予約済みIPアドレスを作成(これが私書箱の住所になります)
gcloud compute addresses create my-psc-address \
--global \
--purpose=private_service_connect \
--subnet=my-subnet \
--addresses=10.0.0.5 # 自分のVPC内の空きIPを指定
# 2. PSCエンドポイント(転送ルール)を作成
gcloud compute forwarding-rules create my-psc-endpoint \
--global \
--network=my-vpc \
--address=my-psc-address \
--target-service=projects/service-project/global/networks/service-network # 接続先サービス名
このように、たった数行の設定で、あなたのVPCは外部のサービスと直結します。設定が終われば、アプリ側からは http://10.0.0.5 にリクエストを送るだけで、まるで自分の隣のサーバーと通信しているかのように、爆速かつ安全にデータが流れていきます。
—
4. なぜSREはPSCを愛するのか?
私が現場でPSCを強く推奨する理由は、単に「便利だから」だけではありません。
- IPアドレスの衝突を気にしなくていい: ピアリングだと、接続先と自分のネットワークアドレスが被ると大惨事(再設計)ですが、PSCならその心配は皆無です。
- セキュリティの堅牢性: インターネットを経由せず、GCPのバックボーンネットワークだけで完結します。ファイアウォールの設定も「このエンドポイントへのアクセス」に絞れば良いので、管理が非常に楽です。
- 管理の分離: サービス提供側と利用側で、お互いのネットワーク構成を細かく共有する必要がありません。この「疎結合」こそが、大規模なクラウド運用には不可欠なんです。
—
最後に:一歩ずつ進んでいきましょう
ネットワークは目に見えない分、最初は怖く感じるかもしれません。でも、PSCのように「郵便の仕組み」として捉えてみると、パケットがどこで迷い、どこで届くのかが少しずつ見えてくるはずです。
まずはテスト用のVPCで、小さな Forwarding Rule を作ってみることから始めてみてください。実際に動いたときの「おっ、つながった!」という感動こそが、エンジニアとしての確かなスキルアップの証です。
皆さんのインフラ構築が、PSCでよりシンプルで、よりセキュアなものになることを応援しています!また次の記事でお会いしましょう!
コメント