コンテンツにスキップ

ロードバランサー導入方法

Cloud Load Balancer(+ Cloud Armor)を有効化する手順です。

構成概要

Internet
  └─ Cloud Load Balancer(グローバル外部 ALB)
       ├─ /api/* → Backend Cloud Run
       └─ /*     → Frontend Cloud Run

Cloud Armor で以下を自動適用: - OWASP 攻撃対策(XSS、Protocol Attack、LFI、SQLi) - allowed_ip_ranges 指定時: 許可IPのみアクセス可 - allowed_ip_ranges 未指定時: 日本からのアクセスのみ許可 + レートリミット(500回/分)

ドメインの有無で挙動が変わります:

ドメインなし ドメインあり
アクセス http://<IP> https://<ドメイン>
SSL なし Google マネージド証明書(自動)
HTTP→HTTPS リダイレクト なし あり

1. terraform.tfvars を更新

enable_load_balancer = true

# ドメインがある場合は設定(ない場合は "" のまま)
lb_domain_name = "micoto-ai.your-domain.com"

# 動作確認者やTerraform実行環境のIPを追加すること
allowed_ip_ranges = ["203.0.113.0/24", "198.51.100.10/32"]
# developer_ip_ranges = []  # メンテナンス中のバイパスIPが必要な場合

2. terraform apply

cd environments/${NEWENV}/setup
terraform plan -var-file="terraform.tfvars"
terraform apply -var-file="terraform.tfvars"

3. グローバルIPアドレスを確認

terraform output load_balancer_ip

出力されたIPアドレスを控えておきます。

4. DNS レコードを設定(ドメインありの場合のみ)

lb_domain_name に設定したサブドメインの DNS に A レコードを追加します。

タイプ 名前
A micoto-ai.your-domain.com Step 3 で確認した IP

お名前.com での設定手順

https://navi.onamae.com/login

  1. お名前.com のドメイン設定画面から、設定したいドメインを選択 alt text
  2. ネームサーバー > ドメイン > 設定 を選択 alt text
  3. DNS レコード設定を選択 alt text
  4. 設定したいサブドメイン名を「ホスト名」など各項目を入力して追加を押下 alt text
  5. 「DNSレコード設定用ネームサーバー変更確認」のチェックをして「確認画面へ進む」を押下 alt text
  6. 「設定しない」を押下 alt text
  7. 「設定する」を押下で完了 alt text

    SSL 証明書のプロビジョニングに数分〜数十分かかる場合があります。
    証明書が有効になるまで HTTPS アクセスはエラーになります。

5. Cloud Build トリガーを再実行

LB 有効化後は ALLOWED_ORIGINS や CORS の設定が LB の URL に切り替わるため、
GUIまたは gcloud コマンドで以下のトリガーを実行して Backend と Frontend を再デプロイします。

  • backend-main-trigger
  • frontend-main-trigger

ドメインなしで運用する場合の注意

lb_domain_name = "" の場合、アクセス URL は http://<IP> になります(HTTPS 非対応)。
ドメインを後から追加する場合は、lb_domain_name を設定して terraform apply を再実行し、DNS レコードを追加してください。