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 のインストールと構成: この方法は、ネットワーク接続が不十分な場合、またはカスタム開発環境が必要な場合に最適です。
必要なリソース
alicloud_ddoscoo_instance: このリソースは、Anti-DDoS インスタンスを作成するために使用されます。
手順
作業ディレクトリを作成し、
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 }terraform initコマンドを実行して、Terraform を初期化します。予想される出力:
Terraform は正常に初期化されました! これで Terraform での作業を開始できます。"terraform plan" を実行して、 インフラストラクチャに必要な変更を確認してみてください。すべての Terraform コマンドが 動作するはずです。 Terraform のモジュールまたはバックエンド構成を設定または変更した場合は、 このコマンドを再実行して、作業ディレクトリを再初期化してください。忘れた場合は、他の コマンドがそれを検出し、必要に応じて再実行するように指示します。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"
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"操作を確認します。
terraform show コマンドを実行する
Terraform によって作成されたリソースの詳細を表示するには、次のコマンドを実行します。
terraform show
Anti-DDoS Proxy (中国本土) コンソール
Anti-DDoS Proxy (中国本土) コンソールにアクセスして、作成したインスタンスを表示します。

完全なコード例
// リージョン
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 とは」をご参照ください。