【ITニュース解説】Part-62: To Implement a VPC Private Google Access for Cloud Run Service in GCP Cloud
2025年09月17日に「Dev.to」が公開したITニュース「Part-62: To Implement a VPC Private Google Access for Cloud Run Service in GCP Cloud」について初心者にもわかりやすく解説しています。
ITニュース概要
VPC Private Google Access (PGA) を使うと、外部IPを持たないサーバーがCloud RunなどのGoogleサービスへ、インターネットを通さずに安全にアクセスできる。PGAを有効にすれば繋がり、無効だと失敗することを実例で解説する。
ITニュース解説
この記事は、Google Cloud Platform(GCP)における「VPCプライベートGoogleアクセス(PGA)」という機能を使って、外部に公開されない「Cloud Runサービス」へ、安全にアクセスする方法を解説したものだ。システムエンジニアを目指す上で、ネットワークセキュリティとクラウドサービスの連携は非常に重要なテーマであり、この記事はその具体的な一例を示している。
まず、「Cloud Run」とは、プログラムコードを動かすためのサーバーやインフラの管理をGoogleに任せられる、非常に便利なサービスだ。開発者はコードを用意するだけで、必要な時に自動的に動くアプリケーションを素早くデプロイできる。通常、Cloud Runでデプロイされたアプリケーションは、インターネットを通じて誰でもアクセスできるようになるが、この記事では「内部エンドポイント」としてCloud Runサービスをデプロイしている。これは、そのCloud Runサービスがインターネットに直接公開されず、特定のプライベートなネットワーク内からのみアクセスできる設定であることを意味する。つまり、会社や組織内のシステムだけで利用したい場合などに使う、外部からは見えない秘密の入り口のようなものだ。
次に、「VPC」とは「Virtual Private Cloud」の略で、Google Cloudの中に構築する仮想的なプライベートネットワーク空間のことだ。このVPCネットワーク内に、サーバーの役割を果たす仮想マシン(VM)や、先ほどのCloud Runサービスなどを配置する。VPCネットワークはさらに「サブネット」という小さな区画に分けられ、それぞれのサブネットにIPアドレスの範囲が割り当てられる。ここで重要なのは、多くのVMはインターネットに接続するために「外部IPアドレス」を持つのが一般的だが、セキュリティを高めるためや内部システムでの利用に限る場合は、外部IPアドレスを持たないVMを作成することがある点だ。外部IPアドレスを持たないVMは、インターネットから直接アクセスされることがなく、より安全に運用できる。
しかし、外部IPアドレスを持たないVMには一つの課題がある。それは、インターネット経由でアクセスするGoogleの各種サービス(例えば、Cloud Storageへのデータの保存や、機械学習APIの利用など)に直接接続できないことだ。Cloud RunもGoogleが提供するサービスの一つであり、特に「内部エンドポイント」としてデプロイされたCloud Runサービスは、その性質上、インターネットを経由したアクセスを前提としていない。ここで登場するのが「VPCプライベートGoogleアクセス(PGA)」という機能だ。
PGAは、外部IPアドレスを持たないVMが、Googleのサービスに安全にアクセスするための特別な仕組みだ。この機能をサブネットに対して有効にすると、そのサブネット内のVMは、インターネットに出ることなく、Googleの内部ネットワークを経由してGoogleのサービスに接続できるようになる。例えるなら、外部へのドアがない部屋から、秘密の地下通路を使って、別のGoogleの建物にあるサービスにアクセスするようなイメージだ。この「秘密の地下通路」が、PGAによって提供されるGoogle内部のプライベートネットワーク経路であり、これによりデータがインターネット上に流出するリスクを減らし、セキュアな通信を実現する。
この記事の手順では、このPGAの働きを実際に確認している。まず、内部エンドポイントを持つCloud Runサービス「myservice201」をデプロイする。このサービスは公開されていないため、通常のWebブラウザからURLにアクセスしようとしても、エラーとなってしまう。これは、想定通りの動作だ。
次に、VPCネットワーク内に二つの異なるサブネットを用意する。一つはPGAを「有効(ON)」にしたサブネット(mysubnet2pga)で、もう一つはPGAを「無効(OFF)」にしたサブネット(mysubnet1)だ。そして、これらの二つのサブネットそれぞれに、外部IPアドレスを持たない仮想マシン(VM)を作成する。具体的には、PGAがONのサブネットには「myvm-pga-on」というVMを、PGAがOFFのサブネットには「myvm-pga-off」というVMを起動する。これらのVMはインターネットに直接出ていくことができないため、外部からCloud Runサービスにアクセスすることはできない。
しかし、これらのVMからCloud Runサービスにアクセスするテストを行うと、興味深い結果が得られる。PGAがONのサブネットにいる「myvm-pga-on」から、先ほどデプロイしたCloud Runサービスへ「curl」コマンドを使ってアクセスすると、見事に成功する。これは、VMが外部IPを持たなくても、PGAを通じてGoogleの内部ネットワークを経由し、Cloud Runサービスに到達できたことを示している。
一方、PGAがOFFのサブネットにいる「myvm-pga-off」から同じCloud Runサービスにアクセスしようとすると、アクセスは失敗する。これは、PGAが有効になっていないため、外部IPアドレスを持たないVMはGoogleのサービスに接続する経路を持てないからだ。秘密の地下通路が用意されていないため、建物から出られない状態と同じである。
この実験結果から、PGAの重要な役割が明確にわかる。PGAは、外部IPを持たないセキュアなVMが、Googleが提供する多様なサービス(今回の例ではCloud Runの内部エンドポイント)と安全に通信するための、必要不可欠な機能だ。パブリックインターネットを経由しないため、データの漏洩リスクを低減し、より高速で信頼性の高い接続を可能にする。
したがって、システムを設計する際には、プライベートな環境で動作するアプリケーションがGoogleのサービスにアクセスする必要がある場合、そのサブネットでPGAを有効にすることを検討すべきだ。これは、セキュリティを確保しつつ、クラウドの柔軟性と機能を最大限に活用するためのベストプラクティスと言える。この知識は、今後システムエンジニアとしてクラウド環境を設計・構築する上で、非常に役立つだろう。