すべてのプロダクト
Search
ドキュメントセンター

:Terraform概要

最終更新日:Nov 14, 2024

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つのタイプがあります。

  • リソースは新しく作成されたリソースオブジェクトです。

  • データソースにより、Terraformは既存のリソース情報を照会し、リソース属性を取得できます。

次の例は、リソースとデータソースの使用方法を示しています。

### Data Sources
# List the instance types that have 2 cores and 4 GB of memory. 
# Reference: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types
data "alicloud_instance_types" "c2g4" {
  cpu_core_count = 2
  memory_size    = 4
}

## Resources
# Create an SLB instance. 
# Reference: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance
resource "alicloud_slb" "default" {
  name          = var.name
  specification = "slb.s2.small"
  vswitch_id    = alicloud_vswitch.default.id
}

Container Service For Kubernetes (ACK) のリソースとデータソースの詳細については、「TerraformでのACKの使用」をご参照ください。

Terraformには3種類のプラグインがあります。

  • Terraform CLI: Terraformのコマンドラインインターフェイス。

  • Terraformプロバイダー: クラウドリソースをTerraformとインターフェースするために使用されます。 プロバイダーは、クラウドサービスプロバイダーによって開発および提供されます。 Terraformプロバイダーの詳細については、「プロバイダー」をご参照ください。

  • Resource Orchestration Service (ROS) はTerraformベースの管理を提供し、ROSコンソールでTerraformテンプレートを使用してリソースを自動的にデプロイおよび管理できます。 詳細については、「Terraformスタックの作成」をご参照ください。

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 リソース

名前

説明

alicloud_cs_edge_kubernetes

ACKエッジクラスタを管理します。

alicloud_cs_kubernetes_node_pool

ノードプールを管理します。

alicloud_cs_kubernetes_権限

ロールベースのアクセス制御 (RBAC) 権限を管理します。

alicloud_cs_managed_kubernetes

ACK管理クラスターを管理します。

alicloud_cs_kubernetes

ACK専用クラスターを管理します。

alicloud_cs_serverless_kubernetes

ACKサーバーレスクラスターを管理します。

alicloud_cs_kubernetes_addon

クラスターコンポーネントを管理します。

表 2. データソース

名前

説明

alicloud_ack_service

ACKを有効にします。

alicloud_cs_edge_kubernetes_clusters

すべてのACKエッジクラスタを一覧表示します。

alicloud_cs_kubernetes_clusters

すべてのACK専用クラスターを一覧表示します。

alicloud_cs_kubernetes_権限

指定された (リソースアクセス管理) RAMユーザーのすべての権限を一覧表示します。

alicloud_cs_managed_kubernetes_clusters

すべてのACK管理クラスターを一覧表示します。

alicloud_cs_serverless_kubernetes_clusters

すべてのACKサーバーレスクラスターを一覧表示します。

alicloud_cs_kubernetes_addon_metadata

クラスターコンポーネントのメタデータを一覧表示します。

alicloud_cs_kubernetes_アドオン

使用可能なクラスターコンポーネントを一覧表示します。

alicloud_cs_kubernetes_version

利用可能なKubernetesバージョンに関する情報を一覧表示します。