LoginSignup
1
0

More than 1 year has passed since last update.

Akamai Edge DNSで始めるTerraform

Last updated at Posted at 2022-06-08

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を控えます。

image.png image.png

Contract IDはBillingのページからも確認が可能です。

image.png image.png

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ゾーンとレコードが作成されることを確認します。

image.png

まとめ

Akamai Edge DNSをTerraformにて簡単に管理することができます。
コード化することによりProperty設定やその他サービスとの連携を行うことも可能となります。

関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0