今日学んだこと#
Google Search Consoleのドメイン所有権検証をTerraformで管理する方法を学びました。DNS検証(TXTレコード)を選択することで、IaCの一貫性を保ちながらSearch Consoleの設定を行えます。
前提条件#
- AWSアカウントを持っている
- Route53でホストゾーンが作成済み
- Terraformの基本操作(init, plan, apply)を理解している
学習内容#
検証方式の選択#
Google Search Consoleには複数の所有権検証方式があります。
| 検証方式 | 概要 | Terraform管理 |
|---|---|---|
| DNS検証(TXTレコード) | ドメインのDNSにTXTレコードを追加 | ✅ 可能 |
| HTMLファイル | 指定されたHTMLファイルをサイトに配置 | △ ビルドに含める必要あり |
| metaタグ | HTMLのheadにmetaタグを追加 | △ テンプレート修正が必要 |
| Google Analytics | 既存のGA設定を利用 | ❌ 不可 |
IaCの一貫性を保つため、DNS検証を採用しました。
実装手順#
Step 1: Google Search ConsoleでTXTレコード値を取得#
- Google Search Consoleにアクセス
- 「プロパティを追加」→「ドメイン」を選択
- ドメイン名を入力
- 表示されたTXTレコード値をコピー
取得できる値の形式:
google-site-verification=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Step 2: Terraformコードの作成#
以下は、Route53にGoogle Search Console検証用のTXTレコードを作成するコード例です。
注意: このコードは個人プロジェクトで使用したものです。実際に利用する際は、ご自身の環境に合わせて調整してください。
variables.tf
variable "domain_name" {
description = "ドメイン名"
type = string
}
variable "google_site_verification" {
description = "Google Search Console検証用のTXTレコード値"
type = string
}
main.tf
data "aws_route53_zone" "this" {
name = var.domain_name
}
resource "aws_route53_record" "google_site_verification" {
zone_id = data.aws_route53_zone.this.zone_id
name = var.domain_name
type = "TXT"
ttl = 300
records = [var.google_site_verification]
}
terraform.tfvars
domain_name = "example.com"
google_site_verification = "google-site-verification=XXXXXXXXXXXX"
Step 3: Terraform適用#
terraform plan
terraform apply
Step 4: Search Consoleで検証完了#
Google Search Consoleに戻り、「確認」ボタンをクリックします。DNSの反映には数分かかる場合があります。
まとめ#
- Google Search ConsoleのDNS検証はTerraformで管理可能
- TXTレコードをRoute53に追加することで所有権を証明
- DNS検証は一度設定すれば永続的に有効