Terraformは、クラウドのインフラストラクチャとリソースを安全かつ効率的にプレビュー、設定、管理できるオープンソースツールです。 このトピックでは、Terraformの用語、利点、および使用シナリオについて説明します。
用語
Terraformは、クラウドリソースオーケストレーション用のIaC (infrastructure as code) ソフトウェアツールです。
Terraformでは、シンプルなテンプレート言語を使用して、Alibaba cloud上のクラウドインフラストラクチャを定義、プレビュー、デプロイできます。 詳細については、「設定構文」をご参照ください。
Terraformは、安全で効率的な方法でインフラストラクチャとアプリケーションのバージョン管理を展開、変更、実行するために使用されるツールです。 このツールは、マルチレベルリソース管理に使用できます。
Terraformが管理するリソースには、上位層のソフトウェアと、基盤となるネットワークおよびシステム構成の構成が含まれます。
Terraformは、ECS (Elastic Compute Service) 、VPC (Virtual Private Cloud) 、RDS (Relational Database Service) 、SLB (Server Load Balancer) などのさまざまなAlibaba Cloudリソースの作成、変更、削除に使用できます。
Terraformのシナリオの詳細については、「シナリオ」をご参照ください。
Terraformリソース | Terraformプラグイン |
Terraformにはリソースに2つのタイプがあります。
次の例は、リソースとデータソースの使用方法を示しています。
Container Service For Kubernetes (ACK) のリソースとデータソースの詳細については、「TerraformでのACKの使用」をご参照ください。 | Terraformには3種類のプラグインがあります。
Terraformプラグインのダウンロード方法の詳細については、「ローカルPCでのTerraformのインストールと設定」および「Cloud ShellでのTerraformの使用」をご参照ください。 |
Alibaba Cloudは、Terraformとサービスを統合した中国初のクラウドサービスプロバイダーです。 Alibaba Cloud Provider (terraform-provider-alicloud) は、163リソースと113データソースを提供し、コンピューティング、ストレージ、ネットワーキング、負荷分散、CDN、ミドルウェア、アクセス制御、データベースサービスなどの35のAlibaba Cloudサービスをカバーしています。 これは、クラウド展開の自動化における多くの大口顧客の要件を満たします。
Terraformの使用方法の詳細については、「Terraform」をご参照ください。
利点
マルチクラウドインフラストラクチャの展開
Terraformは、同様のインフラストラクチャがAlibaba cloud、サードパーティのクラウド、またはデータセンターにデプロイされるマルチクラウドシナリオで人気のあるツールです。 Terraformを使用すると、開発者は同じツールと同様の構成ファイルを使用して、異なるプロバイダーのクラウド上に構築されたインフラストラクチャリソースを管理できます。
自動インフラストラクチャ管理
Terraformを使用して、ECSリソースを予測可能な方法で繰り返し定義、プロビジョニング、設定するための設定ファイルテンプレートを作成できます。 これにより、展開および管理操作中の人的エラーが減少します。 Terraformでは、テンプレートを複数回デプロイして、同じ開発、テスト、および運用環境を作成できます。
コードとしてのインフラストラクチャ
Terraformでは、コードを使用してリソースを管理および維持できます。 Terraformは、インフラストラクチャの現在の状態のコピーを保存します。 これにより、システム内のコンポーネント (コードとしてのインフラストラクチャ) に加えられた変更を追跡し、インフラストラクチャ構成を他のユーザーと共有できます。
開発コストの削減
Terraformを使用して、要件に基づいて開発環境と展開環境を作成し、コストを削減できます。 さらに、システムを変更する前に開発コストを評価できます。
TerraformでACKを使用する
ACKを使用すると、Terraformを使用して次のリソースとデータソースを管理できます。
表 1 リソース
名前 | 説明 |
ACKエッジクラスタを管理します。 | |
ノードプールを管理します。 | |
ロールベースのアクセス制御 (RBAC) 権限を管理します。 | |
ACK管理クラスターを管理します。 | |
ACK専用クラスターを管理します。 | |
ACKサーバーレスクラスターを管理します。 | |
クラスターコンポーネントを管理します。 |
表 2. データソース
名前 | 説明 |
ACKを有効にします。 | |
すべてのACKエッジクラスタを一覧表示します。 | |
すべてのACK専用クラスターを一覧表示します。 | |
指定された (リソースアクセス管理) RAMユーザーのすべての権限を一覧表示します。 | |
すべてのACK管理クラスターを一覧表示します。 | |
すべてのACKサーバーレスクラスターを一覧表示します。 | |
クラスターコンポーネントのメタデータを一覧表示します。 | |
使用可能なクラスターコンポーネントを一覧表示します。 | |
利用可能なKubernetesバージョンに関する情報を一覧表示します。 |