サイトをESA に接続した後、ESA にドメイン名を登録するには、DNS レコードを追加する必要があります。これにより、アクセラレーションドメイン名が名前解決され、アクセスできるようになります。このトピックでは、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 Edition プランのインスタンス 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" # Terraform のバージョンは定期的に更新されます。最新バージョンについては、Terraform の公式サイトをご確認ください。
}
}
}
provider "alicloud" {
region = "ap-southeast-1"
}リソース変数の定義
コードの再利用性を高めるために、入力変数とローカル変数を宣言します。variables.tf という名前の設定ファイルを作成し、次のコードをコピーします。
# サイトのアクセスタイプ。有効な値: CNAME、NS
variable "site_type" {
default = "NS"
}
# 課金方法。有効な値はサブスクリプションのみです。
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