こんにちわ @ktoshi です!
※ 前回の下記の記事の続きです。
terraform を使って GCP にロードバランサを設置してみた ~その①~
前回の記事で terraform を使ってロードバランサを構築する方法をお話しました。
ただ、昨今重要視されているHTTPS化ができていません。
そのため、今回はHTTPS化させる方法をお話します。
概要
前回作成したロードバランサにHTTPS用の転送ルールを追加して、HTTPSでの接続を有効にします。
なお、今回はGCPが提供するSSL証明書を利用します
環境
- Terraform v0.12.20
- こちら を参考にGCPのProviderの設定をしてください。
- 今回は「google-beta」のプロバイダも必要となります。
- gcloud 280.0.0
事前準備
今回、GCPが提供するSSL証明書を利用するのでドメインとAレコードの設定をお願いします。
Aレコードに設定するIPアドレスは前回作成したロードバランサに紐づけたIPアドレスとなります。
Let's Enjoy!!!
まず、ささっと一通りの設定書いちゃいます。
前回のコードに下記のコードを加えてください。
サンプルコード
# 転送ルールの作成
resource "google_compute_global_forwarding_rule" "global-forwarding-rule-https" {
name = "global-forwarding-rule-https"
target = google_compute_target_https_proxy.target-https-proxy.self_link
port_range = "443"
ip_address = google_compute_global_address.lb-address.address
}
# HTTPS転送ターゲット
resource "google_compute_target_https_proxy" "target-https-proxy" {
name = "target-https-proxy"
description = "target-https-proxy"
url_map = google_compute_url_map.url-map.self_link
ssl_certificates = [google_compute_managed_ssl_certificate.ssl.self_link]
}
# 証明書の作成(test01.example.com と test02.example.com 用の証明書が作成されます。)
resource "google_compute_managed_ssl_certificate" "ssl" {
provider = google-beta
name = "ssl"
managed {
domains = ["test01.example.com", "test02.example.comh"]
}
}
上記の設定を追加後、terraform apply を実行すればHTTPSでの接続が可能となります。
ただ、証明書作成までには少し時間がかかるので、気長にお待ちください。
apply を実行後すぐに接続してもエラーがでるのはこれが原因です。
一回、ロードバランサを作成してしまうと、HTTPS化はそこまで複雑ではないですね。
まとめ
前回の記事をほぼほぼ流用して、HTTPS化したロードバランサを作る設定ファイルを説明しました。
さして大きく難しいことはありません。
証明書を準備し、それ用の転送ルールを設定するだけですね。
なお、この構成ではLBがSSLの処理を行うので、LB <---> インスタンス間の通信は HTTP での
通信となりますので、それを頭にいれて構築を行ってください。
少しこれとは話が異なりますが、最近はやりのゼロトラストネットワークを使って、
インスタンスにグローバルIPアドレスを紐づけないサーバの構築、運用方法をお話しできればと思います。
それではみなさん、素晴らしい負荷分散ライフを…!