🤖
【Terraform】Route53の作成
はじめに
TerraformでRoute53の設定をしていきます。
ゾーンの作成
- domainを変数化しておきます。
main.tf
variable "domain" {
type = string
}
terraform.tfvars
domain = "example.com"
aws_route53_zone
- name : string : Route53ゾーン名
- force_destroy : bool : 削除時にレコードを削除してよいかどうか
route53.tf
#------------------
#Route53
#------------------
resource "aws_route53_zone" "route53_zone" {
name = var.domain
force_destroy = false
tags = {
Name = "${var.project}-${var.environment}-domain"
Project = var.project
Env = var.environment
}
}
aws_route53_record
Aレコード(IPアドレス)
- zone_id : string : ホストゾーンID
- name : string : レコード名
- type : enum : "A"
- ttl : number : TTL(キャッシュ有効期間:秒)
- records : string[] : ルーティング先(EIPなど)
- allow_overwrite : bool : 既に存在する場合、上書きしてよいかどうか
Aレコード(AWSリソース)
- zone_id : string : ホストゾーンID
- name : string : レコード名
- type : enum : "A"
- allow_overwrite : bool : 既に存在する場合、上書きしてよいかどうか
- alias : block : トラフィックルーティング先(AWSリソース)
- name : string : DNSドメイン名
- zone_id : string : ホストゾーン名
- evaluate_target_health : bool : ヘルスチェックするかどうか
route53.tf
#------------------
#Route53 レコード作成
#------------------
resource "aws_route53_record" "route53_record" {
zone_id = aws_route53_zone.route53_zone.id
name = "dev-elb.${var.domain}"
type = "A"
alias {
name = aws_lb.alb.dns_name
zone_id = aws_lb.alb.zone_id
evaluate_target_health = true
}
}
ネームサーバーの設定
Route53のマネジメントコンソールに記述されている4つのnsレコードをドメインを購入した会社の管理画面で設定していく。
Discussion