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

Anti-DDoS:Anti-DDoS Proxy インスタンスの購入と管理

最終更新日:Jul 29, 2025

Terraform を使用して Anti-DDoS Proxy インスタンスを購入および管理できます。このトピックでは、Anti-DDoS Proxy インスタンスを取得する手順の概要を説明します。

セットアップ

  • Alibaba Cloud アカウントの侵害に関連するリスクを軽減するために、RAM ユーザーを使用し、そのユーザーの AccessKey ペアを作成することをお勧めします。詳細については、「RAM ユーザーの作成」および「AccessKey ペアの作成」をご参照ください。

  • この例のリソースを管理するための最小限の権限を RAM ユーザーに付与するには、次のポリシーを割り当てます。詳細については、「RAM ユーザーへの権限の付与」をご参照ください。

    このポリシーでは、RAM ロールの作成、表示、削除、および RAM ロールの権限の管理が許可されます。

    {
      "Statement": [
        {
          "Action": [
            "ddosprotection:CreateInstance",
            "ddosprotection:DeleteInstance"
          ],
          "Effect": "Allow",
          "Resource": "*"
        }
      ],
      "Version": "1"
    }
  • 次のいずれかの方法を使用して、Terraform の実行環境をセットアップします。

    • Explorer: Alibaba Cloud が提供する Terraform Explorer を使用すると、開発者はインストールせずに Terraform をオンラインで実行できます。この方法は、Terraform を効率的かつ便利に無料で使用およびデバッグするのに最適です。

    • Cloud Shell: Alibaba Cloud Cloud Shell には Terraform がプリインストールされ、ID 資格情報が構成されているため、Terraform コマンドを直接実行できます。この方法は、Terraform を効率的、便利、かつ低コストで使用およびデバッグするのに最適です。

    • Terraform のインストールと構成: この方法は、ネットワーク接続が不十分な場合、またはカスタム開発環境が必要な場合に最適です。

必要なリソース

手順

  1. 作業ディレクトリを作成し、main.tf という名前の構成ファイルを追加して、デプロイするリソースを定義します。

    main.tf: デプロイメントのリソースを指定するプライマリ Terraform ファイル。次のガイドでは、Anti-DDoS Proxy (中国本土以外) インスタンスの取得に焦点を当てています。

    重要

    Terraform を使用して Anti-DDoS Proxy (中国本土以外) インスタンスをデプロイする場合、Terraform を使用してインスタンスを破棄できないことに注意してください。そのため、不要な費用を防ぐために、インスタンスのライフサイクルを慎重に管理する必要があります。

    # リージョン
    variable "region_id" {
      type    = string
      default = "ap-southeast-1"  // シンガポールに変更
    }
    
    # DDoS CoO インスタンス名
    variable "ddoscoo_instance_name" {
      description = "DDoS CoO インスタンスの名前"
      type        = string
      default     = "Ddoscoo-spm-fofo"  // デフォルト値
    }
    // ポート数(必須): インスタンスのポート フォワーディング ルールの数。少なくとも 50。55、60、65 など、毎回 5 ずつ増加します。スペックアップのみがサポートされています。
    variable "port_count" {
      description = "DDoS CoO インスタンスのポート数"
      type        = string
      default     = "50"  // デフォルト値
    }
    // 0: スタンダードプラン #1: 無制限プラン #2: CMA プラン #3: 中国本土向けセキュア アクセラレーション (Sec-CMA) プラン。
    variable "product_plan" {
      description = "DDoS CoO インスタンスのプロダクトプラン"
      type        = string
      default     = "0"
    }
    
    // ドメイン数(必須): インスタンスのドメイン転送ルールの数。少なくとも 50。55、60、65 など、毎回 5 ずつ増加します。スペックアップのみがサポートされています。
    variable "domain_count" {
      description = "DDoS CoO インスタンスのドメイン数"
      type        = string
      default     = "50"  // デフォルト値
    }
    
    // 購入期間
    variable "period" {
      description = "DDoS CoO インスタンスの購入期間"
      type        = string
      default     = "1"  // デフォルト値
    }
    
    // プロダクトタイプ
    variable "product_type" {
      description = "DDoS CoO インスタンスのプロダクトタイプ"
      type        = string
      default     = "ddosDip"  // 国際版 ddoscoo_intl
    }
    
    // 課金方法
    variable "pricing_mode" {
      description = "DDoS CoO インスタンスの料金モード(前払いまたは後払い)"
      type        = string
      default     = "Postpaid"  // デフォルト値
    }
    // クリーン帯域幅: インスタンスによって提供されるクリーン帯域幅
    variable "normal_bandwidth" {
      description = "インスタンスによって提供されるクリーン帯域幅。product_type が ddosDip の場合にのみ有効です。"
      type        = number
      default     = 100
    }
    // 1 秒あたりのクエリ数: インスタンスによって提供されるクリーン QPS
    variable "normal_qps" {
      description = "インスタンスによって提供される標準 QPS。security_acceleration にのみ有効です。"
      type        = number
      default     = 500
    }
    // 機能バージョン: スタンダードプラン
    variable "function_version" {
      description = "インスタンスの機能バージョン。security_acceleration にのみ有効です。"
      type        = number
      default     = 0
    }
    
    provider "alicloud" {
      region = var.region_id
    }
    
    resource "alicloud_ddoscoo_instance" "newInstance" {
      name             = var.ddoscoo_instance_name
      port_count       = var.port_count
      domain_count     = var.domain_count
      period           = var.pricing_mode == "Prepaid" ? var.period : null
      product_type     = var.product_type
      product_plan     = var.product_plan
      function_version = var.function_version
      normal_bandwidth = var.normal_bandwidth
    
    }
    
    output "instance_id" {
      description = "DDoS CoO インスタンスの ID"
      value       = alicloud_ddoscoo_instance.newInstance.id
    }
    
    output "instance_name" {
      description = "DDoS CoO インスタンスの名前"
      value       = var.ddoscoo_instance_name
    }
  2. terraform init コマンドを実行して、Terraform を初期化します。

  3. 予想される出力:

    Terraform は正常に初期化されました!
    
    これで Terraform での作業を開始できます。"terraform plan" を実行して、
    インフラストラクチャに必要な変更を確認してみてください。すべての Terraform コマンドが
    動作するはずです。
    
    Terraform のモジュールまたはバックエンド構成を設定または変更した場合は、
    このコマンドを再実行して、作業ディレクトリを再初期化してください。忘れた場合は、他の
    コマンドがそれを検出し、必要に応じて再実行するように指示します。
  4. terraform plan コマンドを実行して、リソースプランを生成します。

予想される結果:

alicloud_ddoscoo_instance.newInstance: 状態を更新しています... [id=ddoscoo-cn-20s3zrc4k001]

Terraform は、選択したプロバイダーを使用して、次の実行計画を生成しました。リソースアクションは、次の記号で示されます。
  ~ インプレース アップデート

Terraform は、次のアクションを実行します。

  # alicloud_ddoscoo_instance.newInstance はインプレースで更新されます
  ~ resource "alicloud_ddoscoo_instance" "newInstance" {
        id                = "ddoscoo-cn-20**********""
      ~ name              = "yourDdoscooInstanceName" -> "Ddoscoo"
        // (7 つの変更されていない属性が非表示になっています)
    }

プラン: 追加 0、変更 1、破棄 0。

出力の変更:
  + instance_id   = "ddoscoo-cn-**********"
  + instance_name = "Ddoscoo"
  1. terraform apply コマンドを実行し、プロンプトが表示されたら yes と入力し、[Enter] をクリックします。コマンドが実行されるまで待ちます。次のメッセージが表示されたら、承認は完了です。

予想される結果:

alicloud_ddoscoo_instance.newInstance: 変更中... [id=ddoscoo-cn-*********]
alicloud_ddoscoo_instance.newInstance: 1 秒後に変更が完了しました [id=ddoscoo-cn-*********]

適用完了! リソース: 追加 0、変更 1、破棄 0。

出力:

instance_id = "ddoscoo-cn-*********"
instance_name = "Ddoscoo"
  1. 操作を確認します。

terraform show コマンドを実行する

Terraform によって作成されたリソースの詳細を表示するには、次のコマンドを実行します。

terraform show

image

Anti-DDoS Proxy (中国本土) コンソール

Anti-DDoS Proxy (中国本土) コンソールにアクセスして、作成したインスタンスを表示します。

image

完全なコード例

// リージョン
variable "region_id" {
  type    = string
  default = "ap-southeast-1"  // シンガポールに変更
}

// DDoS CoO インスタンス名
variable "ddoscoo_instance_name" {
  description = "DDoS CoO インスタンスの名前"
  type        = string
  default     = "Ddoscoo-spm-fofo"  // デフォルト値
}
// ポート数(必須): インスタンスのポート フォワーディング ルールの数。少なくとも 50。55、60、65 など、毎回 5 ずつ増加します。スペックアップのみがサポートされています。
variable "port_count" {
  description = "DDoS CoO インスタンスのポート数"
  type        = string
  default     = "50"  // デフォルト値
}
// 0: スタンダードプラン #1: 無制限プラン #2: CMA プラン #3: 中国本土向けセキュア アクセラレーション (Sec-CMA) プラン。
variable "product_plan" {
  description = "DDoS CoO インスタンスのプロダクトプラン"
  type        = string
  default     = "0"
}

// ドメイン数(必須): インスタンスのドメイン転送ルールの数。少なくとも 50。55、60、65 など、毎回 5 ずつ増加します。スペックアップのみがサポートされています。
variable "domain_count" {
  description = "DDoS CoO インスタンスのドメイン数"
  type        = string
  default     = "50"  // デフォルト値
}

// 購入期間
variable "period" {
  description = "DDoS CoO インスタンスの購入期間"
  type        = string
  default     = "1"  // デフォルト値
}

// プロダクトタイプ
variable "product_type" {
  description = "DDoS CoO インスタンスのプロダクトタイプ"
  type        = string
  default     = "ddosDip"  // 国際版 ddoscoo_intl
}

// 課金方法
variable "pricing_mode" {
  description = "DDoS CoO インスタンスの料金モード(前払いまたは後払い)"
  type        = string
  default     = "Postpaid"  // デフォルト値
}
// クリーン帯域幅: インスタンスによって提供されるクリーン帯域幅
variable "normal_bandwidth" {
  description = "インスタンスによって提供されるクリーン帯域幅。product_type が ddosDip の場合にのみ有効です。"
  type        = number
  default     = 100
}
// 1 秒あたりのクエリ数: インスタンスによって提供されるクリーン QPS
variable "normal_qps" {
  description = "インスタンスによって提供される標準 QPS。security_acceleration にのみ有効です。"
  type        = number
  default     = 500
}
// 機能バージョン: スタンダードプラン
variable "function_version" {
  description = "インスタンスの機能バージョン。security_acceleration にのみ有効です。"
  type        = number
  default     = 0
}

provider "alicloud" {
  region = var.region_id
}

resource "alicloud_ddoscoo_instance" "newInstance" {
  name             = var.ddoscoo_instance_name
  port_count       = var.port_count
  domain_count     = var.domain_count
  period           = var.pricing_mode == "Prepaid" ? var.period : null
  product_type     = var.product_type
  product_plan     = var.product_plan
  function_version = var.function_version
  normal_bandwidth = var.normal_bandwidth

}

output "instance_id" {
  description = "DDoS CoO インスタンスの ID"
  value       = alicloud_ddoscoo_instance.newInstance.id
}

output "instance_name" {
  description = "DDoS CoO インスタンスの名前"
  value       = var.ddoscoo_instance_name
}

関連情報

  • Terraform の詳細については、「Terraform とは」をご参照ください。