Terraform は、クラウド インフラストラクチャとリソースを安全かつ効率的にプレビュー、構成、管理できるオープンソースツールです。このトピックでは、Terraform の用語、利点、およびユースケースについて紹介します。
用語
Terraform は、クラウド リソース オーケストレーションのためのコードとしてのインフラストラクチャ (IaC) ソフトウェアツールです。
Terraform では、シンプルなテンプレート言語を使用して、Alibaba Cloud 上のクラウド インフラストラクチャを定義、プレビュー、デプロイできます。詳細については、「構成構文」をご参照ください。
Terraform は、インフラストラクチャとアプリケーションのデプロイ、変更、バージョン管理を安全かつ効率的に実行するために使用されるツールです。このツールは、マルチレベルのリソース管理に使用できます。
Terraform が管理するリソースには、上位層ソフトウェアと、基盤となるネットワークおよびシステム構成が含まれます。
Terraform を使用すると、Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、Relational Database Service (RDS)、Server Load Balancer (SLB) などのさまざまな Alibaba Cloud リソースを作成、変更、削除できます。
Terraform のシナリオの詳細については、「シナリオ」をご参照ください。
Terraform リソース | Terraform プラグイン |
Terraform では、リソースには 2 つのタイプがあります。
次の例は、リソースとデータソースの使用方法を示しています。 Container Service for Kubernetes (ACK) のリソースとデータソースの詳細については、「Terraform で ACK を使用する」をご参照ください。 | Terraform は、3 つのタイプのプラグインを提供します。
Terraform プラグインのダウンロード方法の詳細については、「Terraform をインストールして構成する」および「Cloud Shell で Terraform を使用する」をご参照ください。 |
Alibaba Cloud は、中国で初めて Terraform とサービスを統合したクラウド サービス プロバイダーです。Alibaba Cloud プロバイダー (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 専用クラスターを管理します。 | |
Serverless Kubernetes クラスター を管理します。 | |
クラスター コンポーネントを管理します。 |
表 2. データソース
名前 | 説明 |
ACK をアクティブ化します。 | |
すべての ACK エッジクラスターを一覧表示します。 | |
すべての ACK 専用クラスターを一覧表示します。 | |
指定された RAM (Resource Access Management) ユーザーのすべての権限を一覧表示します。 | |
すべての ACK マネージドクラスターを一覧表示します。 | |
すべての Serverless Kubernetes クラスター を一覧表示します。 | |
クラスター コンポーネントのメタデータを一覧表示します。 | |
使用可能なクラスター コンポーネントを一覧表示します。 | |
使用可能な Kubernetes バージョンの情報を一覧表示します。 | |
指定されたクラスター内のノードプール情報を一覧表示します。 |
コンソールから Terraform リクエストパラメータを生成する
コンソールから、さまざまなクラスタータイプを作成するためのパラメータ構成を生成できます。
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、[クラスターテンプレート] をクリックします。
[クラスターテンプレートの選択] ダイアログボックスで、ターゲットクラスタータイプを見つけて [作成] をクリックします。[クラスター構成] ステップで、パラメータを構成します。
[確認] ステップで [API リクエストパラメータの生成] をクリックします。
[Terraform] タブをクリックして、現在のクラスター作成に必要な構成に対応するコードスニペットを取得します。