はじめに
Cloud Runにデプロイすると自動的に付与される xxx.run.app
というURLがあります。このURL自体もGoogleの高度なインフラ上で動作し、トラフィックに応じて自動でスケーリングしてくれます。では、なぜわざわざCloud Load Balancingを使う選択肢があるのか、聞かれました。その場ではCloud Armor(WAF)など連携ができ、セキュア面で必要であることを伝えましたが、せっかくなので具体的に回答できるよう、調べてまとめることにしました。
それぞれの特徴と使い分けを分かりやすく記載します。
結論:どちらを選ぶべきか
まずは結論から。ユースケースに合わせて選ぶ必要があります。
-
とりあえず始めるなら、デフォルトURL (
xxx.run.app
)- 開発・テスト環境
- 社内向けのツール
- シンプルなAPIやWebサイト
コストを最小限に抑え、すぐに公開したい場合におすすめです。
-
本格的な本番環境なら、Cloud Load Balancing
- 独自のドメイン (
www.your-service.com
など) を使いたい - 複数のサービスやリージョンにリクエストを振り分けたい
- CDNでコンテンツを高速化したい
- WAF(Web Application Firewall)でセキュリティを強化したい
高い信頼性、柔軟なルーティング、高度なセキュリティが求められる場合におすすめです。
- 独自のドメイン (
それぞれの仕組みと特徴
なぜ上記のような使い分けになるのか、それぞれの仕組みと特徴を整理します。
1. Cloud RunのデフォルトURL (xxx.run.app
)
Cloud Runのサービスを作成すると、Googleが管理する run.app
ドメインのサブドメインとして、ユニークなURLが自動的に発行されます。
メリット
- 設定不要ですぐに使える: デプロイするだけで、HTTPS対応のURLが手に入ります。SSL証明書の管理もGoogleが自動で行ってくれます。
- コストが安い: Cloud Load Balancingの利用料金がかかりません。Cloud Runの利用料金だけで済みます。
- グローバルに利用可能: Googleのグローバルネットワーク上で動作するため、世界中のどこからアクセスしても最適な経路で接続されます。スケーリングももちろん自動です。
デメリット
-
ドメインが固定:
xxx.run.app
という形式のURLしか使えず、独自のドメインを直接割り当てることができません。 - 機能がシンプル: CDN連携やWAF(セキュリティ機能)の追加、パスベースの細かいルーティング設定などはできなさそうです。
2. Cloud Load Balancing
Cloud Load Balancingは、Google Cloudが提供する高性能なロードバランサです。Cloud Runをそのバックエンド(リクエストの転送先)の一つとして設定することができます。
メリット
-
カスタムドメインが使える:
www.your-service.com
のような独自のドメイン名を設定できます。 -
高度なルーティング: URLのパス (
/api/
や/images/
) に応じて、リクエストを別のCloud Runサービスや、全く別のサービス(Cloud Storageなど)に振り分けることができます。 -
他のGoogle Cloudサービスとの連携:
- Cloud CDN: 静的コンテンツをキャッシュさせ、Webサイトの表示を高速化できます。
- Google Cloud Armor: DDoS攻撃からの保護や、IPアドレス・国別のアクセス制限など、高度なセキュリティ(WAF)を実現できます。
- 複数のバックエンドを統合: 複数のリージョンにあるCloud Runサービスや、仮想マシン(Compute Engine)、Kubernetes(GKE)などを束ねて、単一の窓口として公開できます。
デメリット
- 設定が必要: ドメインの用意やロードバランサ自体の設定など、デフォルトURLに比べて手間がかかります。
- 追加コスト: Cloud Load Balancingの利用料金が別途発生します(転送されたデータ量やルール数に応じた課金となるようです)。
機能比較まとめ
機能 | Cloud Run デフォルトURL (xxx.run.app ) |
Cloud Load Balancing |
---|---|---|
スケーリング | ◎ 自動 | ◎ 自動 (Cloud Run側) |
URL | △ xxx.run.app (固定) |
◎ 独自ドメインが利用可能 |
SSL/TLS証明書 | ○ Googleマネージド証明書 (自動) | ◎ 独自証明書も利用可能 |
設定の容易さ | ◎ 非常に簡単 | △ やや複雑 |
コスト | ◎ 安い (Cloud Runのみ) | △ 高い (LBの料金が追加) |
バックエンドの柔軟性 | × 単一のCloud Runサービスのみ | ◎ 複数のサービスやGCE/GKE/Storageも可 |
高度なルーティング | × 不可 | ◎ パスベース、ホストベースなど柔軟 |
CDN連携 | × 不可 | ◎ 可能 (Cloud CDN) |
WAF (セキュリティ) | × 不可 | ◎ 可能 (Google Cloud Armor) |
まとめ
Cloud RunのデフォルトURLは「手軽で高機能なエントリーモデル」、Cloud Load Balancingは「本格的なWebサービスを構築するためのプロフェッショナルモデル」と考えると分かりやすいかもしれません。
まずはデフォルトURLで迅速に開発を始め、サービスが成長し、独自ドメインやCDN、高度なセキュリティが必要になったタイミングでCloud Load Balancingの導入を検討するのが、効率的で無駄のない進め方となると考えます。
以上です。