すべてのプロダクト
Search
ドキュメントセンター

:Terraform によるプラン、サイト、DNS レコードの作成

最終更新日:Sep 01, 2026

サイトをESA に接続した後、ESA にドメイン名を登録するには、DNS レコードを追加する必要があります。これにより、アクセラレーションドメイン名が名前解決され、アクセスできるようになります。このトピックでは、Terraform を使用して DNS レコードを追加する方法について説明します。

リソース

注意事項

  • Alibaba Cloud 中国サイトのアカウントと Alibaba Cloud 国際サイトのアカウントでは、利用可能なプランの種類が異なります。

    • Alibaba Cloud 中国サイトのアカウントで利用可能なプラン:

      • Free Edition: entranceplan

      • Basic Edition: basic

      • Standard Edition: medium

      • Premium Edition: high

    • Alibaba Cloud 国際サイトのアカウントで利用可能なプラン:

      • Entrance: entranceplan_intl

      • Pro: basicplan_intl

      • Premium: vipplan_intl

  • 現在、Terraform を使用して [Enterprise] プランを作成することはできません。[Enterprise] プランを購入するには、お問い合わせください。

  • Terraform を使用してサイトを作成する場合、既存の Enterprise Edition プランのインスタンス ID に関連付けることができます。

  • Terraform を使用してプランを作成する場合、アカウントの種類 (Alibaba Cloud 中国サイトまたは Alibaba Cloud 国際サイト) に応じて、Terraform プロバイダーを設定する必要があります。

    • 方法 1: region パラメーターを設定します。

      • Alibaba Cloud 中国サイト: cn-hangzhou

      • Alibaba Cloud 国際サイト: ap-southeast-1

    • 方法 2: account_type パラメーターを設定します。

      • Alibaba Cloud 中国サイト: Domestic

      • Alibaba 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
}

リソースの作成

  1. 設定ファイルのあるディレクトリに移動し、次のコマンドを実行して Terraform 環境を初期化します。

    terraform init
  2. 次のコマンドを実行して、Terraform の構文と設定を検証します。

    terraform validate
  3. 次のコマンドを実行して、実行計画をプレビューします。

    terraform plan
  4. 次のコマンドを実行して、設定を適用します。

    terraform apply
  5. プロンプトが表示されたら、yes と入力して変更を確定し、適用します。

結果の確認

プランの確認

  1. ESA コンソールにログインし、[プラン管理] ページに移動します。

  2. [プラン管理] ページに、以下の図に示すように、新しいプランが表示されます。

    image

サイトの確認

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

image

DNS レコードの確認

  1. ESA コンソールで、サイト管理 を選択し、サイト 列で対象のサイトをクリックします。

  2. ナビゲーションウィンドウで、DNS > レコード を選択します。以下の図に示すように、新しい DNS レコードが表示されます。

    image

(オプション) リソースのクリーンアップ

これらのリソースが不要になった場合は、terraform destroy コマンドを実行します。

terraform destroy