Terraform を使用すると、スマートルーティング、HTTP/2 オリジン、WebSocket、gRPC、アップロードファイルサイズ制限などの機能を含む、サイト向けのネットワーク最適化機能を迅速に有効化できます。
Terraform のインストールと権限の構成
お使いのコンピューターへの Terraform のインストールと構成
お使いのコンピューターで Terraform を使用する方法の詳細については、「Terraform のインストールと構成」をご参照ください。
RAM ユーザー用の AccessKey ペアを作成します。Alibaba Cloud アカウント (root ユーザー) はすべてのリソースに対して完全な権限を持ちます。Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、関連するすべてのリソースが不正アクセスのリスクにさらされます。そのため、Alibaba Cloud アカウントではなく、RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「AccessKey の作成」をご参照ください。
-
認証情報を格納する環境変数を作成します。
AccessKey は、AccessKey 管理 ページから作成および確認できます。
環境変数が構成されていない場合、Terraform テンプレート実行時に本人確認が失敗します。
オンラインサービスの利用(インストールおよび権限構成不要)
Terraform をインストールしたくない場合は、オンラインサービスの Cloud Shell をご利用ください。
Alibaba Cloud Cloud Shell は無料の運用・保守(O&M)プロダクトです。Terraform コンポーネントがプリインストール済みであり、認証情報も事前に構成されています。このため、Cloud Shell 上で Terraform コマンドを直接実行できます。詳細については、「Terraform を使用したリソースの作成」をご参照ください。
Cloud Shell で Terraform を使用する場合、`destroy` 機能によりデータ損失が発生する可能性があります。そのため、デバッグなど簡易かつ迅速な操作のみに Cloud Shell をご使用いただくことを推奨します。制限事項の詳細については、「使用制限」をご参照ください。
リソース
サイト情報の照会: alicloud_esa_sites(既存のサイトを参照するためのデータソース)
ネットワーク最適化ルールの構成: alicloud_esa_network_optimization
ネットワーク最適化ルールの設定
ファイル名を
main.tfとして作成し、以下のコードを追加して、ご利用のサイト向けにネットワーク最適化ルールを定義します。# 1. 設定対象のサイト名を指定します。 data "alicloud_esa_sites" "default" { site_name = "<span class="var-span" contenteditable="true" data-var="DOMAIN">DOMAIN"</span> # DOMAIN を ESA 接続済みのサイト(例:example.com)に置き換えます。 } # 2. ネットワーク最適化ルールを構成します。 resource "alicloud_esa_network_optimization" "default" { site_id = data.alicloud_esa_sites.default.sites[0].site_id # 設定対象のサイト ID。 rule_name = "example2" # ルールの名称。 rule_enable = "on" # ルールを有効化します。 rule = "true" # マッチング条件。true に設定すると、すべての着信リクエストにルールが適用されます。 smart_routing = "on" # スマートルーティングを有効化します。リアルタイムの接続テストおよびルート最適化により、ユーザーのリクエストをより高速かつ信頼性高く配信し、グローバルなレイテンシーおよび障害率を低減します。 http2_origin = "on" # ESA エッジノードからオリジンサーバーへの HTTP/2 オリジンリクエストを有効化します。 websocket = "on" # オリジンサーバーが ws:// または wss:// をサポートしている場合、ESA はデフォルトで WebSocket オリジンリクエストをプロキシします。通常、追加の構成は必要ありません。 grpc = "on" # gRPC:HTTP/2 および Protobuf を基盤とする、言語・プラットフォームを横断した RPC フレームワークで、帯域幅およびレイテンシーを削減します。 upload_max_filesize = "300" # 単一のアップロードリクエストにおける最大ファイルサイズ(MB)。デフォルト値:300。有効範囲:100~500。 }構成ファイルが格納されているディレクトリに移動し、以下のコマンドを実行して Terraform 環境を初期化します。
terraform init
以下のコマンドを実行して、Terraform ファイルの構文および構成を検証します。
terraform validate出力が以下の図と類似している場合、検証は成功です。

以下のコマンドを実行して、適用される変更内容をプレビューします。
terraform plan以下のコマンドを実行して、Terraform スクリプトを実行します。
terraform apply操作の確認を求めるプロンプトが表示されたら、
yesを入力します。
検証
terraform show の実行
作業ディレクトリで、以下のコマンドを実行して Terraform によって作成されたリソースを確認します:
terraform showコンソール上での検証
ESA コンソールで、サイト管理 に移動します。サイト 列で、対象のサイトをクリックします。
左側のナビゲーションウィンドウで、 を選択し、ネットワーク最適化ルールおよびその構成を確認します。
(任意)リソースのクリーンアップ
Terraform によって作成または管理されたリソースが不要になった場合は、terraform destroy コマンドを実行してリソースを解放できます。
terraform destroy関連ドキュメント
パラメーターのリファレンス
引数の定義および有効値の範囲などの詳細については、公式の alicloud_esa_network_optimization ドキュメントをご参照ください。本例では、upload_max_filesize の単位は MB です。値はコンソールに表示される許容範囲内である必要があります。