Akamai Edge DNSで始めるTerraform
Akamaiの主要な製品の多くは、Terraformに対応しています。
今回はTerraformの導入とEdge DNSでの管理を簡単にご紹介します。
Edge DNSはグローバルに分散構成された、堅牢な権威DNSサービスです。
配信Propertyの設定の記事ついてはこちら
対応しているリソースの確認
最新のドキュメントから対応しているサービスを確認することができます。
Terraformのインストール
インストール手順を参考に、各環境でTerraformが利用できるようにします。
Macの場合
$ brew install terraform
$ terraform version
Terraform v1.2.1
on darwin_amd64
API Keyの用意
Akamai Control Center (ACC) のハンバーガーメニューからIdentity and Access Managementを選択し、API Keyの作成を行います。
詳細はこちらを参考に作成します。
Credentialsの記載
~/.edgerc に作成したAPI Keyの登録を行います。
$ vim ~/.edgerc
[default]
; Akamai {OPEN} API credentials
client_secret = xxxxxxxxxxxxxxxxxxxxx
host = akab-xxxxxxxxxxxxxxxxxxxxxxxxxx.luna.akamaiapis.net
access_token = akab-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
client_token = akab-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Contract IDとGroup IDの確認
Terraformでリソースを作成する際に作成先となるContract IDとGroup IDが必要です。
ACCからEdgeDNSのメニューを選択し、Group IDとContract IDを控えます。
Contract IDはBillingのページからも確認が可能です。
Terrformの記載
サンプルとして1つのファイルにTerraformのコードを記載しております。
今回はDNSゾーンの作成とレコードの作成を行うコードになります。
Variablesには先ほど控えた情報を記載します。
$ vim edgedns.tf
##################
# Providers
##################
terraform {
required_providers {
akamai = {
source = "akamai/akamai"
}
}
}
provider "akamai" {
edgerc = "~/.edgerc"
config_section = "default"
}
##################
# Variables
##################
# 先ほど控えたContract IDを入力する
variable "contract_id" {
type = string
default = "X-XXXXXX"
}
# 先ほど控えたGroup IDを入力する
variable "group_id" {
type = string
default = 111111
}
# 作成したいゾーンのドメイン名を記載する
variable "zone_name" {
type = string
default = "xxxxxxxx.com"
}
# コメントは任意
variable "comment" {
type = string
default = "main zone"
}
##################
# Edge DNS
##################
resource "akamai_dns_zone" "main" {
contract = var.contract_id
group = var.group_id
zone = var.zone_name
type = "primary"
sign_and_serve = false
comment = var.comment
}
resource "akamai_dns_record" "www" {
zone = var.zone_name
name = join(".", ["www",var.zone_name])
recordtype = "A"
ttl = 30
target = ["1.1.1.1"]
active = true
depends_on = [akamai_dns_zone.main]
}
Terraformの実行
Terraformを実行します。
# 初期設定
$ terraform init
# 実行
$ terraform apply
確認
ACCからDNSゾーンとレコードが作成されることを確認します。
まとめ
Akamai Edge DNSをTerraformにて簡単に管理することができます。
コード化することによりProperty設定やその他サービスとの連携を行うことも可能となります。
関連記事