|

2026-03-03

アプリ

Cloud Run間の内部通信を実現!

Google CloudCloud RunVPC

概要

Webアプリなどを作る際に、バックエンドのAPIサーバーとフロントエンドをそれぞれ別のCloud Runサービスにデプロイし、フロントエンドからAPIにアクセスする場合、APIサーバーが公開状態だとURLを知っていると誰でもアクセスできてしまいます。

そこでCloud Runサービス間の通信をGoogle Cloudプロジェクト内で閉じたセキュアな通信にしたいと思い試してみました!

やりたいこと

direct_vpc_egress_structure

今回は、APIサーバーへアクセスする際にCloud RunのデフォルトのURLを使用します。

フロントエンドからAPIサーバーにアクセスする際に、そのままの設定でアクセスするとインターネットを経由した通信になるので、誰でもアクセスできてしまいます。この間をできるだけ閉じた通信にしたいです。

今回はDirect VPC EgressというVPCネットワークを経由して通信させる方法を試してみます。

手順

バックエンドのIngress設定

まずは、外部から直接アクセスさせないために、APIサーバーをホストしているCloud RunのIngress(内向きの通信)を「内部」に限定します。 スクリーンショット_2026-03-03_12.02.35

これを設定することで、ブラウザ等でURLを叩いてもアクセスができなくなります。 image

VPCの作成

続いて、フロントエンドがトラフィックを送信する宛先のVPCネットワークおよびサブネットを作成します。

サブネットを作成する際に「プライベート Google アクセス」をオンにします。これにより、外部IPを持たないインスタンスがGoogle APIとサービスへのアクセスが可能になります。 スクリーンショット_2026-03-03_15.25.17

フロントエンドのEgress設定

次に、フロントエンドのCloud Runサービスの設定をします。

ネットワーキング設定で、「アウトバウンド トラフィック用のVPCに接続する」を選択し、先ほど作成したVPCネットワークとサブネットを指定します。 スクリーンショット_2026-03-03_15.40.46

これでCloud RunサービスからVPCにトラフィックを送信することが可能になります。

しかしこれだけではインターネット経由で通信が出ていく可能性があります。

すぐ下のトラフィック ルーティングの設定で「すべてのトラフィックを VPC にルーティングする」を選択します。 スクリーンショット_2026-03-03_15.48.30

これを設定することで、フロントエンドのCloud Runの外向き通信は全て、作成したVPC経由で出ていくことになります。フロントから外部APIを叩く場合にも全てVPC経由になってしまうので、注意が必要です。

内部通信の確認

これで設定は終わりです。内部で通信できているかを確認します。

バックエンド側のCloud Runのログを確認してみます。アクセス元のremoteIpが「0.0.0.0」になっていれば内部アクセスができています。 スクリーンショット_2026-03-03_16.44.41

終わりに

今回はDirect VPC Egressを利用してCloud Run間の内部通信を試してみました。組織内向けのWebアプリなど外部に公開したくないサービスで、Cloud Runを利用した構成を検討する場合、利用してみるのも良いかしれません。Cloud ArmorやIAP(Identity-Aware Proxy)などと組み合わせるとより強固な構成にできそうです。

 


この記事の著者

プロフィール画像

野地 慎太郎

朝日放送グループホールディングス株式会社 DX・メディアデザイン局 サービス開発チーム

2023年入社で、初期配属で現在の部署に配属される。動画配信やコンテンツ関連のデジタル支援等を担当。学生時代にM-1でスベり倒してから、今日までずっとスベり続けている。