created: 2020-01-16T00:17:45.000Z
terraformでroute53の管理
前提
awsのコンソールから諸々設定をしたものを、terraformをつかってコード管理できるようにしていく場合の作業
前準備
まず最初に目当てのディレクトリでterraform initを叩く
$ terraform init
適当なtfファイル(main.tfなど)を作成してproviderを記述
provider "aws" {
region = "ap-northeast-1"
access_key = "xxxxxxxxx"
secret_key = "xxxxxxxxxxxxxxx"
}
そのtfファイルに、空のリソースを定義しておく必要がある
# mydomain.comならこんな感じ
resource "aws_route53_zone" "mydomain" {}
import
awsのコンソールなどからIDを持ってきて、それを引数にimportをたたく
$ terraform import aws_route53_zone.mydomain Z1W0SAOSERTYU
recordをimportするときは若干特殊なID指定になる
Route53 Records can be imported using ID of the record. The ID is made up as ZONEID_RECORDNAME_TYPE_SET-IDENTIFIER
こんな感じ
Z4KAPRWWNC7JR_dev.example.com_NS_dev
AWS: aws_route53_record - Terraform by HashiCorp
$ terraform import aws_route53_record.www--mydomain QT9WXXXXXXXX_www.mydomain.com_A
plan
importしたあと、show/planを叩いて差分を確認、その通りにエディタで埋めていく
$ terraform plan
その他
間違えて自分で作成していないnsレコードをterraform-importした場合は terraform state rm
で消し込む
$ terraform state rm aws_route53_record.mydomain-ns