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

:Terraform を使用したプラン、サイト、DNS レコードの作成

最終更新日:Mar 20, 2026

サイトを ESA に接続した後は、管理対象となるドメイン名を ESA に追加する必要があります。これは DNS レコードを追加することで実現します。これにより、高速化ドメイン名が正常に解析およびアクセス可能になります。本トピックでは、Terraform を使用して DNS レコードを追加する方法について説明します。

関連リソース

注意事項

  • Alibaba Cloud 中国ウェブサイトアカウントと Alibaba Cloud 国際ウェブサイトアカウントで作成可能なパッケージの種類は異なります。

    • Alibaba Cloud 中国ウェブサイトでサポートされるパッケージ名:

      • 無料版:entranceplan

      • Basic Edition:basic

      • Standard Edition:medium

      • Premium Edition:high

    • Alibaba Cloud 国際ウェブサイトでサポートされるパッケージ名:

      • エントランス: entranceplan_intl

      • Pro Edition:basicplan_intl

      • Premium Edition:vipplan_intl

  • Terraform は、Enterprise 版パッケージの作成に対応していません。Enterprise 版パッケージを購入するには、お問い合わせください

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

  • Terraform を使用してパッケージを作成する場合、ご利用のアカウントが Alibaba Cloud 中国ウェブサイトアカウントか Alibaba Cloud 国際ウェブサイトアカウントかに応じて、Terraform Provider の設定情報を指定する必要があります。

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

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

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

リソースの作成

  1. 構成ファイルが格納されているディレクトリに移動し、以下のコマンドを実行して Terraform 環境を初期化します。

    terraform init

    image

  2. 以下のコマンドを実行して、Terraform ファイルの構文および構成を検証します。

    terraform validate

    出力が以下の図と同様の場合、検証は成功です。

    image

  3. 以下のコマンドを実行して、適用される変更内容をプレビューします。

    terraform plan
  4. 以下のコマンドを実行して、Terraform スクリプトを実行します。

    terraform apply
  5. 操作の確認が求められた場合、yes を入力して確認します。

結果の確認

プランの表示

  1. ESA コンソール にログインします。左側のナビゲーションウィンドウから、課金管理 > プラン管理 を選択します。

  2. 「パッケージ管理」ページで、新しく追加されたパッケージを以下のように確認できます。

    image

サイトの表示

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

image

DNS レコードの表示

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

  2. 左側のナビゲーションウィンドウから、DNS > レコード を選択します。 「レコード」ページで、新しく追加された DNS レコードを以下のように確認できます。

    image

(任意)リソースのクリーンアップ

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

terraform destroy