概要
Terraform Explorer は、オープンソース版 Terraform を基盤として Alibaba Cloud が提供するオンラインツールであり、Terraform 構成ファイルのデバッグに使用されます。これにより、Terraform 構成ファイルの作成および Terraform の操作プロセスが簡素化され、開発者が Terraform を利用する際の障壁を低減します。Terraform Explorer を使用すると、開発者はフォーム入力による Terraform 構成ファイルの自動生成・変換や、シンプルなボタン操作による Terraform のオンライン実行が可能です。
機能
Terraform 構成ファイル
Terraform 構成ファイルは、コードベースでインフラストラクチャリソースを定義します。Terraform 構成ファイルの作成は、IaC ワークフローにおける最初のステップです。構成ファイル内で必要な Alibaba Cloud リソース(例:ECS インスタンス、RDS データベースインスタンスなど)およびリソース間の依存関係を定義した後、Terraform はファイルの内容に基づいて定義されたリソースを自動的に作成・設定し、自動デプロイメントおよび運用を実現します。Terraform Explorer では、構成ファイルの自動生成および開発者による構成ファイルテンプレートのオンライン編集の両方をサポートしています。
機能セット | 機能ポイント | 機能説明 |
構成ファイルの作成 | 構成ファイルの自動生成 | 開発者がクラウドプロダクトおよび関連するリソースタイプを選択し、「デバッグ開始」ボタンをクリックすると、Terraform Explorer は選択されたリソースタイプ向けの構成ファイルを自動的に生成します。その後、左側のフォームで一部またはすべてのパラメーターを入力することで、構成ファイルを継続的に改善できます。 |
構成ファイルのオンライン編集 | Terraform Explorer は、各リソースタイプに対して 1 つ以上のサンプルテンプレートを提供します。多数のパラメーターを入力したくない場合や、複数のリソースを作成したい場合は、リソースタイプを選択した後に特定のサンプルテンプレートを選択し、「デバッグ開始」ボタンをクリックしてテンプレートの詳細を表示し、デバッグを開始できます。 サンプルテンプレートの内容が要件を満たさない場合は、テンプレート右上隅の「編集モード」ボタンをクリックして、既存のテンプレートにオンラインで内容を追加または変更し、保存したうえでデバッグを継続できます。 |
Terraform のオンライン実行
構成ファイル作成後の Terraform のワークフローには、初期化、プレビュー、実行という 3 つのノードがあります。Terraform Explorer では、デバッグタスクをキャリアとして活用し、タスク実行を通じてこれらの Terraform ワークフローノードを実装します。各デバッグタスクの実行は、初期化、プレビュー、実行の順に処理を完了します。
機能セット | 機能ポイント | 機能説明 |
構成ファイルの実行 | オンライン初期化 | 初期化はプレビューおよび実行の前提となる最初のステップであるため、Terraform Explorer ではプレビューおよび実行の一環として実行されます。 |
オンラインプレビュー | **[プレビュー]** をクリックします。Terraform Explorer は、新規のデバッグタスクを作成するか、既存のデバッグタスクで | |
オンライン実行 | 実行計画が期待通りである場合は、**[実行]** をクリックして実行します。Terraform Explorer は **[プレビュー]** および **[実行]** を連続してクリックすると、手動確認をスキップして計画を自動実行できます。Terraform Explorer は、 | |
リソースの破棄 | デバッグ終了後にリソースを破棄する場合は、**[リソースの破棄]** をクリックします。Terraform Explorer は |
メリット
Terraform Explorer は、オープンソース版 Terraform の主な機能をオンラインで管理することをサポートしており、環境のインストール不要、コード記述不要、状態管理不要といった利点があります。
環境のインストール不要
Terraform Explorer は、Terraform コマンド実行時に Terraform クライアントのオンラインホスティングおよび Alibaba Cloud Provider の高速ダウンロードをサポートします。これにより、Terraform のインストール・設定や Provider のダウンロード遅延などの環境に関する課題を心配する必要がなくなります。
コード記述不要
Terraform Explorer は、単一リソース向けにフォーム入力によるテンプレート構成ファイルの自動生成機能を提供します。これにより、Terraform コードの書き方がわからなかったり、記述が面倒だったりするといった課題を解消できます。さらに、各リソースタイプに対応する関連サンプルテンプレートも備えており、テンプレートを選択するだけでワンクリックで実行可能です。
また、Terraform Explorer は、各 Terraform 実行で使用されたテンプレートおよびパラメーターをデフォルトで保存します。新しいデバッグタスクを開始する際には、過去のテンプレートおよびパラメーターから内容を読み込むことができます。
状態管理不要
状態管理は Terraform の重要な要素であり、ローカル状態とリモート状態の 2 種類に分類されます。Terraform Explorer は、これら 2 種類の状態管理をサポートし、デフォルトではローカル状態管理を使用します。これにより、各 Terraform 実行の実行中の状態をホストし、同一の構成ファイルを複数回実行可能にするとともに、Terraform 固有の状態管理メカニズムを維持し、状態のセキュリティを確保します。
用語解説
概念 | 説明 |
バージョン | Alibaba Cloud Terraform Provider のバージョン。現在の最小サポートバージョンは 1.202.0 です。 |
プロダクト | 各 Provider バージョンでサポートされるクラウドプロダクトの一覧。キーワードによるあいまい検索が可能です。 |
リソースタイプ | 各 Provider バージョンで、選択されたクラウドプロダクトがサポートするリソースタイプ。キーワードによるあいまい検索が可能です。 |
テンプレート | Terraform 構成ファイル。UTF-8 エンコーディングの HCL 形式テキストファイルです。フォームパラメーターの入力による自動生成、または特定のリソースタイプ下にあるサンプルテンプレートの参照が可能です。 |
テンプレートバージョン | デバッグタスクが実行されるたびに、使用されたテンプレートはテンプレートバージョンとして保存されます。異なるテンプレートバージョンの詳細を閲覧できます。 |
タスク | 「デバッグ開始」ボタンを介して新しいデバッグ操作を開始するたびに、Terraform Explorer は新しいデバッグタスクを作成します。各タスクは一意の状態ファイルに対応するため、同時には 1 つのプレビューまたは実行操作のみ実行可能です。 |
デバッグレコード | 各タスクの各実行(プレビュー、またはプレビューおよび実行)ごとにデバッグレコードが生成されます。新しいデバッグレコードは、直前のデバッグレコードに基づいて生成および実行されます。 |
デバッグ履歴 | 各リソースタイプに対するすべてのデバッグタスクがデバッグ履歴に記録されます。履歴タスクを選択し、最新のデバッグレコードに基づいてデバッグを継続できます。 |
アクセスの制御
Terraform Explorer にアクセスする際、デバッグタスクの作成、プレビュー、プレビューおよび実行、リソースの破棄、デバッグ履歴の表示、リソース詳細の表示など、一部の機能は事前に権限付与を受ける必要があります。Terraform Explorer で使用される認証が必要な API および機能については、以下の表をご参照ください。
API 名 | API 説明 | 関連する機能ポイント(ボタン) |
CreateExplorerModule | テンプレートの内容を保存 | プレビュー、プレビューおよび実行 |
GetExplorerModule | テンプレートの内容を取得 | テンプレートの表示 |
CreateExplorerModuleVersion | デバッグを継続するたびに、テンプレートの内容が新しいバージョンとして保存されます | プレビュー、プレビューおよび実行、デバッグの継続 |
ListExplorerModules | テンプレートの一覧表示 | サンプルテンプレートの表示 |
UpdateExplorerModuleAttribute | テンプレートの内容を更新 | サンプルテンプレートの編集 |
DeleteExplorerModule | テンプレートの削除 | サンプルテンプレートの削除 |
CreateExplorerTask | デバッグタスクの作成 | プレビュー、プレビューおよび実行 |
GetExplorerTask | デバッグタスクの詳細を取得 | デバッグ結果 |
DeleteExplorerTask | デバッグタスクの削除 | タスクの削除 |
UpdateExplorerTaskAttribute | デバッグタスクの更新 | リソースの破棄 |
CreateJob | ジョブの作成、デバッグタスクの実行 | プレビュー、プレビューおよび実行、リソースの破棄 |
GetJob | デバッグタスク実行の詳細を取得 | デバッグ結果 |
OperateJob | ジョブの操作、プレビュー完了後のデバッグタスク実行 | プレビューおよび実行、実行、リソースの破棄 |
ListJobs | ジョブ一覧の取得 — デバッグタスクの実行記録 | デバッグレコード |
CreateExplorerHistory | 各デバッグタスクを記録 | デバッグ履歴 |
ListExplorerHistories | デバッグ履歴の詳細および過去のパラメーターを取得 | デバッグ履歴、過去のパラメーターの使用 |
ListResources | 正常に作成されたリソースの一覧および詳細を取得 | リソースの詳細 |
ExportTerraformCode | 選択されたリソース向けの Terraform コードをエクスポート | オンライン体験 |
Terraform Explorer をご利用になる前に、上記の API を使用して詳細なアクセスの制御を実装するか、以下のアクセスポリシーによる迅速な権限付与を実行できます。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iacservice:CreateExplorerModuleVersion",
"iacservice:GetExplorerModule",
"iacservice:CreateExplorerModule",
"iacservice:ListExplorerModules",
"iacservice:UpdateExplorerModuleAttribute",
"iacservice:DeleteExplorerModule"
],
"Resource": "acs:iacservice:*:*:explorermodule/*"
},
{
"Effect": "Allow",
"Action": [
"iacservice:CreateExplorerTask",
"iacservice:UpdateExplorerTaskAttribute",
"iacservice:GetExplorerTask",
"iacservice:DeleteExplorerTask"
],
"Resource": "acs:iacservice:*:*:explorertask/*"
},
{
"Effect": "Allow",
"Action": [
"iacservice:CreateJob",
"iacservice:GetJob",
"iacservice:listJobs",
"iacservice:OperateJob"
],
"Resource": "acs:iacservice:*:*:explorertask/*/job/*"
},
{
"Effect": "Allow",
"Action": [
"iacservice:ListResources",
"iacservice:ListExplorerHistories",
"iacservice:CreateExplorerHistory",
"iacservice:ExportTerraformCode",
"iacservice:ListRecentCalls"
],
"Resource": "*"
}
]
}