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

:Terraform でプラン、サイト、DNS レコードを作成する

最終更新日:Jun 18, 2026

サイトを ESA に接続した後、DNS レコードを追加してドメイン名を ESA に登録する必要があります。これにより、高速化ドメイン名の名前解決とアクセスが可能になります。このトピックでは、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 プランのインスタンス 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"
    }
  }
}

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
}

リソースの作成

  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