サイトを ESA に接続した後は、管理対象となるドメイン名を ESA に追加する必要があります。これは DNS レコードを追加することで実現します。これにより、高速化ドメイン名が正常に解析およびアクセス可能になります。本トピックでは、Terraform を使用して DNS レコードを追加する方法について説明します。
関連リソース
パッケージ購入リソース:alicloud_esa_rate_plan_instance
サイト追加リソース:alicloud_esa_site
DNS レコード追加リソース:alicloud_esa_record
注意事項
Alibaba Cloud 中国ウェブサイトアカウントと Alibaba Cloud 国際ウェブサイトアカウントで作成可能なパッケージの種類は異なります。
Alibaba Cloud 中国ウェブサイトでサポートされるパッケージ名:
無料版:
entranceplanBasic Edition:
basicStandard Edition:
mediumPremium Edition:
high
Alibaba Cloud 国際ウェブサイトでサポートされるパッケージ名:
エントランス:
entranceplan_intlPro Edition:
basicplan_intlPremium Edition:
vipplan_intl
Terraform は、Enterprise 版パッケージの作成に対応していません。Enterprise 版パッケージを購入するには、お問い合わせください。
Terraform を使用してサイトを作成する場合、既存の Enterprise Edition パッケージのインスタンス ID を関連付けることができます。
Terraform を使用してパッケージを作成する場合、ご利用のアカウントが Alibaba Cloud 中国ウェブサイトアカウントか Alibaba Cloud 国際ウェブサイトアカウントかに応じて、Terraform Provider の設定情報を指定する必要があります。
方法 1:
regionパラメーターを設定します。Alibaba Cloud 中国ウェブサイト:
cn-hangzhouAlibaba Cloud 国際ウェブサイト:
ap-southeast-1
方法 2:
account_typeパラメーターを設定します。Alibaba Cloud 中国ウェブサイト:
Domestic国際サイト:
International
構成ファイルの作成
作業ディレクトリを作成し、その後、以下のセクションで説明する通り、その作業ディレクトリ内に構成ファイルを作成します。必要に応じて、コード内の構成情報を調整してください。
Provider および Terraform バージョンの定義
まず、providers.tf という名前の構成ファイルを作成します。次に、以下のコードを構成ファイルにコピーして、すべての Provider 構成およびバージョン制約を一元管理します。
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "1.266.0"
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 Edition)、basicplan_intl(Pro Edition)、vipplan_intl(Premium Edition)
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 スクリプトを実行します。
terraform apply操作の確認が求められた場合、
yesを入力して確認します。
結果の確認
プランの表示
ESA コンソール にログインします。左側のナビゲーションウィンドウから、 を選択します。
「パッケージ管理」ページで、新しく追加されたパッケージを以下のように確認できます。

サイトの表示
サイト管理 を ESA コンソールから選択します。 新しく追加されたサイトを以下のように確認できます。

DNS レコードの表示
サイト管理 を ESA コンソールから選択します。「サイト」列で対象のサイトをクリックします。
左側のナビゲーションウィンドウから、 を選択します。 「レコード」ページで、新しく追加された DNS レコードを以下のように確認できます。

(任意)リソースのクリーンアップ
Terraform によって作成または管理されたリソースが不要になった場合は、terraform destroy コマンドを実行してリソースを解放できます。
terraform destroy