Terraform を使用して、ウェイティングルームを迅速に設定できます。これにより、キューイングメカニズムでオリジンをトラフィックの急増から保護します。
Terraform のインストールと権限の設定
コンピューターへの Terraform のインストールと設定
コンピューターで Terraform を使用する方法の詳細については、「Terraform のインストールと設定」をご参照ください。
RAM ユーザーの AccessKey ペアを作成します。Alibaba Cloud アカウント (root ユーザー) はリソースに対するすべての権限を持っています。Alibaba Cloud アカウントの AccessKey ペアが漏洩すると、ご利用のリソースが大きなリスクにさらされます。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「AccessKey ペアの作成」をご参照ください。
-
認証情報を保存するための環境変数を作成します。
AccessKey 管理ページで AccessKey を作成および表示できます。
環境変数が設定されていない場合、Terraform テンプレートの実行時に本人確認が失敗します。
オンラインサービスの利用 (インストールや権限設定は不要)
Terraform をインストールしたくない場合は、オンラインサービスの Cloud Shell を利用できます。
Alibaba Cloud の Cloud Shell は無料の運用保守 (O&M) プロダクトです。Terraform コンポーネントがプリインストール済みで、認証情報も設定されているため、Cloud Shell で直接 Terraform コマンドを実行できます。詳細については、「Terraform を使用したリソースの作成」をご参照ください。
Cloud Shell で Terraform を使用する際、その削除機能によりデータ損失が発生する可能性があります。デバッグなどの単純で迅速な操作にのみ Cloud Shell を使用することを推奨します。使用制限の詳細については、「使用制限」をご参照ください。
リソース
サイトの作成: alicloud_esa_site
ウェイティングルームの作成: alicloud_esa_waiting_room
ESA インスタンスの照会: alicloud_esa_sites
操作手順
ウェイティングルームを設定するために、
main.tfという名前のファイルを作成し、次のコードを追加します:# 1. Enterprise 版 ESA インスタンスの照会 data "alicloud_esa_sites" "default" { plan_subscribe_type = "enterpriseplan" # Enterprise 版インスタンスをフィルタリング } # 2. サイトの作成 resource "alicloud_esa_site" "resource_Site_example" { site_name = "{{DOMAIN}}" # ご利用のドメイン名 (例: example.com) に置き換えます instance_id = data.alicloud_esa_sites.default.sites.0.instance_id coverage = "overseas" # 海外アクセラレーション access_type = "NS" # NS アクセスモード } # 3. ウェイティングルームの作成 resource "alicloud_esa_waiting_room" "default" { site_id = alicloud_esa_site.resource_Site_example.id waiting_room_name = "waitingroom_example" # ウェイティングルーム名 description = "example" status = "off" # デフォルトでは無効。手動で有効にする必要があります。 waiting_room_type = "default" # キューイングポリシーの設定 queuing_method = "fifo" # FIFO キューイング方式 session_duration = "5" # セッション期間 (分) total_active_users = "300" # 最大同時接続ユーザー数 new_users_per_minute = "200" # 1分あたりに入室を許可する新規ユーザー数 # マッチングルール:キューイングをトリガーする条件 host_name_and_path { domain = "sub_domain.com" # マッチングするホスト名 path = "/example" # マッチングするパス subdomain = "example_sub_domain.com." # マッチングするサブドメイン } # ページ表示設定 language = "zhcn" # キューイングページの言語:簡体字中国語 custom_page_html = "" # 空の値はデフォルトのキューイングページを使用 queuing_status_code = "200" # キューイング中に返される HTTP ステータスコード cookie_name = "__aliwaitingroom_example" # クッキー名 # 詳細オプション queue_all_enable = "off" # すべてのユーザーをキューに入れるかどうかを指定 disable_session_renewal_enable = "off" # セッション更新を無効にするかどうかを指定 json_response_enable = "off" # JSON 応答を返すかどうかを指定 }説明コード内のプレースホルダーを実際の値に置き換えてください。
DOMAINをご利用のドメイン名に置き換え、host_name_and_pathブロック内のドメインとパスをキューイング条件に合わせて更新してください。パラメーターの説明については、「関連ドキュメント」セクションをご参照ください。設定ファイルが含まれるディレクトリに移動します。次に、以下のコマンドを実行して Terraform 環境を初期化します。
terraform init
以下のコマンドを実行して、Terraform ファイルの構文と設定を検証します。
terraform validate出力が次の図のようであれば、検証は成功です。

以下のコマンドを実行して、適用される変更をプレビューします。
terraform plan以下のコマンドを実行して、Terraform スクリプトを実行します。
terraform applyプロンプトが表示されたら、
yesと入力して操作を確定します。
結果の確認
Terraform show コマンド
terraform apply の完了後、リソースをクリーンアップする前に、作業ディレクトリで次のコマンドを実行してリソースのステータスを確認します:
terraform showコンソールでの確認
ESA コンソールで、サイト管理 を選択し、サイト 列で対象のサイトをクリックします。
左側のナビゲーションウィンドウで、 を選択します。
ウェイティングルームページで、新しいウェイティングルームルールとその設定詳細 (ウェイティングルーム名、ステータス、キューイング方式、セッション期間、同時実行数制限など) を表示します。
関連ドキュメント
次の表に、コード例で使用されている主要なパラメーターを示します。
パラメーター | 値の例 | 説明 |
|
| Enterprise 版の ESA インスタンスをフィルタリングして、利用可能なインスタンス ID を取得します。 |
|
| サイトのドメイン名です。プレースホルダーを |
|
| コンソールに表示されるウェイティングルームの名前です。 |
|
| ウェイティングルームのステータスです。有効な値は |
|
| キューイング方式です。 |
|
| キューから入室を許可された後のユーザーセッションの持続時間 (分) です。この時間内であれば、ユーザーは再度キューイングすることなくページをリフレッシュできます。 |
|
| 許可される最大同時接続ユーザー数です。これには、キューイング中のユーザーと既に入室済みのユーザーが含まれます。この制限に達すると、新規ユーザーはキューに配置されます。 |
|
| 1分あたりにキューからオリジンへの入室を許可される新規ユーザーの最大数です。この設定は、オリジンの過負荷を防ぐためのトラフィックシェーピングレートとして機能します。 |
|
| マッチングするホスト名です。このホスト名へのリクエストがウェイティングルームをトリガーします。 |
|
| マッチングするパスです。このパスへのリクエストがウェイティングルームをトリガーします。 |
|
| マッチングするサブドメインです。これは、より具体的なマッチングのためのオプションのパラメーターです。 |
|
| キューイングページの言語です。 |
|
| カスタムキューイングページの HTML です。空のままにすると、デフォルトページが使用されます。 |
|
| ユーザーがキューにいるときに返される HTTP ステータスコードです。これを |
|
| キュー内でのユーザーの位置とセッションステータスを識別するために使用されるクッキーの名前です。 |
|
| すべてのユーザーをキューに入れるかどうかを指定します。 |
|
| セッション更新を無効にするかどうかを指定します。 |
|
| JSON 応答を有効にするかどうかを指定します。 |
パラメーターの詳細については、「alicloud_esa_waiting_room」をご参照ください。
可用性
ウェイティングルーム機能は、Premium および Enterprise プランで利用できます。一部の機能には Waiting Room プロ版が必要で、これは Enterprise プランで利用可能です。有効にするには、お問い合わせください。
特徴 | Premium | Enterprise |
基本的なウェイティングルーム機能 | ||
ウェイティングルームの数 | 1 | デフォルトで 1。Waiting Room プロ版では最大 10。 |
複数のホスト名とパス | デフォルトで 1。Waiting Room プロ版では最大 50。 | |
カスタムテンプレート | Waiting Room プロ版で利用可能。 | |
セッション更新の無効化 | Waiting Room プロ版で利用可能。 | |
JSON フレンドリな応答 | Waiting Room プロ版で利用可能。 | |
カスタムキュー状態コード | ||
キューイング方式 | FIFO のみサポート。 | デフォルトで FIFO をサポート。Waiting Room プロ版ではすべてのキューイング方式が利用可能。 |
ウェイティングルームルール | Waiting Room プロ版で最大 5 ルール。 | |
ウェイティングルームイベント | Waiting Room プロ版で最大 5 イベント。 | |
SEO クローラーバイパス |