サイトを ESA に接続した後、DNS レコードを追加してドメイン名を ESA に登録する必要があります。これにより、高速化ドメイン名の名前解決とアクセスが可能になります。このトピックでは、Terraform を使用して DNS レコードを追加する方法について説明します。
リソース
プラン購入用のリソース: alicloud_esa_rate_plan_instance
サイト追加用のリソース: alicloud_esa_site
DNS レコード追加用のリソース: alicloud_esa_record
注意事項
利用可能なプランタイプは、Alibaba Cloud 中国サイトのアカウントと Alibaba Cloud 国際サイトのアカウントで異なります。
Alibaba Cloud 中国サイトのアカウントで利用可能なプラン:
Free Edition:
entranceplanBasic Edition:
basicStandard Edition:
mediumPremium Edition:
high
Alibaba Cloud 国際サイトのアカウントで利用可能なプラン:
Entrance:
entranceplan_intlPro:
basicplan_intlPremium:
vipplan_intl
現在、Terraform を使用して [Enterprise] プランを作成することはできません。[Enterprise] プランを購入するには、お問い合わせください。
Terraform を使用してサイトを作成する際、既存の Enterprise プランのインスタンス ID に関連付けることができます。
Terraform を使用してプランを作成する際、アカウントタイプ (Alibaba Cloud 中国サイトまたは Alibaba Cloud 国際サイト) に応じて Terraform プロバイダーを構成する必要があります。
方法 1:
regionパラメータを設定します。Alibaba Cloud 中国サイト:
cn-hangzhouAlibaba Cloud 国際サイト:
ap-southeast-1
方法 2:
account_typeパラメータを設定します。Alibaba Cloud 中国サイト:
DomesticAlibaba Cloud 国際サイト:
International
設定ファイルの作成
作業ディレクトリを作成します。そのディレクトリ内に、以下のセクションで説明する設定ファイルを作成します。必要に応じてコードの設定を調整してください。
プロバイダーと Terraform バージョンの定義
まず、providers.tf という設定ファイルを作成します。すべてのプロバイダー設定とバージョン制約を管理するために、次のコードをファイルにコピーします。
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "1.266.0"
}
}
}
provider "alicloud" {
region = "ap-southeast-1"
}リソース変数の定義
コードの再利用性を高めるために、入力変数とローカル変数を宣言します。variables.tf という設定ファイルを作成し、次のコードをコピーします。
# サイトのアクセスタイプ。有効な値: CNAME、NS。
variable "site_type" {
default = "NS"
}
# 課金方法。有効な値は `Subscription` のみです。
variable "payment_type" {
default = "Subscription"
}
# サービスカバレッジ。有効な値:
# domestic (中国本土)、overseas (グローバル、中国本土を除く)、global (グローバル)。
variable "coverage_name" {
default = "overseas"
}
# 自動支払いの有効化。
variable "auto_pay" {
default = "true"
}
# プラン名。有効な値:
# entranceplan_intl (Entrance)、basicplan_intl (Pro)、vipplan_intl (Premium)
variable "plan_name" {
default = "entranceplan_intl"
}
# サイト名。ご自身のドメイン名に置き換えてください。
variable "site_name" {
default = "aliyundoc.com"
}
# オリジンのドメイン名。
variable "record_value" {
default = "www.example.com"
}
# オリジンポート。
variable "record_port" {
default = "80"
}
# DNS レコード名 (加速ドメイン名)。
variable "record_name" {
default = "_udp._sip.aliyundoc.com"
}
# DNS レコードタイプ。
variable "record_type" {
default = "SRV"
}リソースの定義
最後に、main.tf という設定ファイルを作成し、次のコードをコピーします。このファイルには、主なリソース宣言が含まれています。
# プランを作成
resource "alicloud_esa_rate_plan_instance" "my_plan" {
type = var.site_type
auto_renew = "false"
period = "1"
payment_type = var.payment_type
coverage = var.coverage_name
auto_pay = var.auto_pay
plan_name = var.plan_name
}
# サイトを作成
resource "alicloud_esa_site" "my_site" {
site_name = var.site_name
instance_id = alicloud_esa_rate_plan_instance.my_plan.id
coverage = var.coverage_name
access_type = var.site_type
}
# DNS レコードを追加
resource "alicloud_esa_record" "my_record" {
data {
value = var.record_value
weight = "1"
priority = "1"
port = var.record_port
}
ttl = "100"
record_name = var.record_name
comment = "This is a remark"
site_id = alicloud_esa_site.my_site.id
record_type = var.record_type
}リソースの作成
設定ファイルが含まれるディレクトリに移動し、次のコマンドを実行して Terraform 環境を初期化します。
terraform init次のコマンドを実行して、Terraform の構文と設定を検証します。
terraform validate次のコマンドを実行して、実行計画をプレビューします。
terraform plan次のコマンドを実行して、設定を適用します。
terraform applyプロンプトが表示されたら、
yesと入力して変更を確認し、適用します。
結果の確認
プランの確認
ESA コンソールにログインし、プラン管理 ページに移動します。
プラン管理ページに、次の図に示すように、新しいプランが表示されます。

サイトの確認
ESA コンソールで、[サイト管理] を選択します。次の図に示すように、新しいサイトが表示されます。

DNS レコードの確認
ESA コンソールで、サイト管理 を選択し、サイト 列で、目的のサイトをクリックします。
ナビゲーションウィンドウで、 を選択します。次の図に示すように、新しい DNS レコードが表示されます。

(省略可能) リソースのクリーンアップ
これらのリソースが不要になった場合は、terraform destroy コマンドを実行します。
terraform destroy