Terraform は、リソースオーケストレーションを自動化するオープンソースツールです。 Terraform は、Resource Orchestration Service(ROS)でマネージドサービスとして利用できます。 Terraform テンプレートとスタックを作成して、Alibaba Cloud、Amazon Web Services(AWS)、および Microsoft Azure リソースをオーケストレートできます。 Terraform の機能は ROS API と互換性があります。 Terraform テンプレートを作成した後、ROS API 操作を呼び出して機能を実装できます。
制限事項
Terraform は、特定の ROS 機能とリソースのみをサポートしています。 詳細については、「ROS で Terraform がサポートする機能とリソース」をご参照ください。
開発方法
使い慣れた開発方法を使用して Terraform コードを記述およびテストすることをお勧めします。 次の開発方法がサポートされています。
オンプレミス環境を使用します。
Terraform オンラインデバッグツール を使用します。 この方法は、Alibaba Cloud リソースに対してのみ使用できます。
推奨。 ROS コンソールで Terraform スタックを作成し、ビジネス要件に基づいてスタックの作成を続行するか、スタックを更新します。 詳細については、「Terraform スタックを作成する」、「スタックの作成を続行する」、および「スタックを更新する」をご参照ください。
ROS で Terraform を使用するメリット
Terraform CLI と比較して、ROS は Terraform コードを管理するためのより多くの機能をサポートし、ユーザーエクスペリエンスを向上させています。 ROS には次の利点があります。
同じコンソールエクスペリエンス
ROS コンソールは、ROS テンプレートと Terraform テンプレートで同じユーザーエクスペリエンスを提供します。 1 つのコンソールで、両方のタイプのテンプレートのすべてのリソースを同じ方法で管理できます。
パラメーターとプロパティの動的クエリと選択
ROS は、パラメーターの有効な値の動的クエリをサポートしています。
ROS は、複数のプロパティで同じパラメーターを参照できるように、包括的なクエリをサポートしています。
ROS は GUI にパラメーターを表示し、オプションの値に基づいてパラメーター構成を選択できます。 詳細については、「AssociationProperty および AssociationPropertyMetadata」をご参照ください。
テンプレートの [パラメーター] セクションで、パラメーターに
AssociationPropertyを指定して、指定されたリージョン内のリソースをクエリし、AssociationPropertyMetadataを指定してパラメーターにフィルター条件を追加できます。 これにより、ROS コンソールでオプションの値に基づいてパラメーター構成を選択できます。テンプレートリソースの価格照会
リソースをデプロイする前に、ROS は Terraform テンプレートに基づいて見積価格を自動的に計算して表示し、予算計画を立てるのに役立ちます。
サービスのアクティブ化とロールチェック
自動チェック:ROS は、Terraform テンプレートに含まれるサービスがアクティブ化されているかどうか、必要なロールが使用可能で権限が付与されているかどうかを自動的にチェックします。 これにより、デプロイ前の準備が完了していることが保証されます。
ヒントとガイダンス:必要なサービスがアクティブ化されていない場合、またはロールがない場合、ROS はヒントとガイダンスを提供して、必要な構成を迅速に完了できるようにします。
リスク検出
ROS は潜在的なリスクを自動的に検出し、エラーを防止するのに役立ちます。 たとえば、セキュリティグループを削除すると、ROS はリスクを検出します。

テンプレートバージョンの管理と共有

タグとリソースグループの伝播
タグとリソースグループをテンプレート内のすべてのリソースに一度に伝播できます。
シナリオ
Terraform スタックを作成する
AWS や Microsoft Azure などのクラウドプラットフォーム間、またはオンプレミsplatform間でリソースを作成および管理する場合は、Terraform スタックを作成して、プラットフォーム上のリソースを一元的にオーケストレートおよび管理できます。 詳細については、「Terraform スタックを作成する」をご参照ください。
Terraform テンプレートを作成する
Alibaba Cloud で AWS や Microsoft Azure などのサードパーティクラウドプラットフォームのリソースを作成および管理する場合は、Terraform テンプレートでサードパーティリソースを定義し、リソース間の依存関係を構成できます。 これにより、クラウドプラットフォーム間でリソースを簡単に管理できます。 詳細については、「Terraform テンプレートを作成する」をご参照ください。
テンプレート構造
Terraform テンプレートは、Terraform が ROS で管理された後に ROS でサポートされます。 Terraform テンプレートを使用して、Alibaba Cloud、AWS、および Microsoft Azure リソースをオーケストレートできます。 Terraform テンプレートでは、リソースとパラメーターを定義し、リソース間の依存関係を構成できます。 詳細については、「Terraform テンプレートの構造」をご参照ください。 Terraform テンプレートでパラメーターを定義する方法の詳細については、「Terraform とは」をご参照ください。
開発の推奨事項
ROS で管理される Terraform の関連概念に精通したら、次の推奨事項に基づいて Terraform コードを開発し、ROS でコードを使用できます。 詳細については、「Terraform コード開発の方法と推奨事項」をご参照ください。
変数定義を絞り込みます。
プロバイダーバージョンを指定します。
疑似パラメーターを使用してスタック情報を取得します。
コンソールでのパラメーターと変数の入力モードを制御します。
Aliyun::Terraform-v1.0 以降を使用します。
メタデータを使用して、コンソールでのパラメーターと変数の表示を制御します。
オンプレミスコードを、名前が .debug.tf で終わるファイルに保存します。
.tf ファイルで Alibaba Cloud プロバイダー(alicloud)を宣言しないでください。
.tfvars ファイル以外の ROS パラメーターを使用して変数値を渡します。
Terraform テンプレートの例
詳細については、「Terraform テンプレートの例」をご参照ください。