TL;DR
- GCPの リージョン外部アプリケーションロードバランサー(External Managed) でマネージド証明書を利用してHTTPS対応をするには、Googleマネージド証明書の作成 + CLI操作が必要
- GUIではフロントエンド構成を作成する際に、マネージド証明書の選択ができない
- フロントエンド構成(転送ルール(Forwarding Rule))をCLIで作成する必要がある
実現したい構成
[ クライアント ]
↓ HTTPS(マネージド証明書を利用)
[ リージョン外部アプリケーションロードバランサー ]
↓ HTTP
[ VM / Cloud Run / GKE など ]
実現方法
基本構成の構築(HTTP)
基本的に以下手順に沿って実施すればOK
構築されるもの
- ネットワーク
- VPCネットワーク
- バックエンド用サブネット
- ロード バランシング用に予約されているプロキシ専用サブネット:ロードバランサーを利用する際は専用サブネットが必要
- Firewallルール:LBからのヘルスチェック、LBからバックエンド通信許可の為のルール
- Compute Engine(バックエンド)
- VMインスタンス
- インスタンスグループ:ロードバランサーからバックエンドを指定するときに必要
- Load Brancer(フロントエンド)
- 静的IPアドレス:LBのIP固定化で利用
- リージョン外部アプリケーションロードバランサー
- フロントエンド構成(転送ルール)
- バックエンド構成
- ヘルスチェック
注意事項
手順の中にロードバランサーのフロントエンド構成を構築する手順があるが、マネージド証明書を利用する場合、GUIでの選択肢にはマネージド証明書は出てこないので一旦、HTTPでフロントエンドを構成して、後からマネージド証明書を作成してHTTPSでのフロントエンド構成を構築する
※フロントエンド構成が最低1つないと、LBは作成できない
マネージド証明書を利用してHTTPS化
参照の公式ページは以下
-
上記手順でURLマップを指定する箇所があるが、基本的にはロードバランサーと同じ名前で自動で作成されている、もしくはCLIを実行して確認する
- コマンド:
gcloud compute url-maps list
- コマンド:
-
上記手順を実施すればマネージド証明書の作成とターゲットプロキシの作成までは行えるが、フロントエンドの構成(転送ルール)の作成は行えない、そのため、CLIから転送ルールを作成する必要がある
注意事項
マネージド証明書はGUIでは選択できないのでCLIで作成する必要がある。
転送ルール作成するためのCLIコマンドは以下
コマンド例
gcloud compute forwarding-rules create 転送ルール名 \
--load-balancing-scheme=EXTERNAL_MANAGED \
--network-tier=STANDARD \
--address=xxx.xxx.xxx.xxx \
--region=asia-northeast1 \
--target-https-proxy=ターゲットプロキシ名 \
--target-https-proxy-region=asia-northeast1 \
--ports=443 \
--network=VPCネットワーク名
その他/感想
転送ルールとターゲットプロキシの関係は以下を参照