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

Container Service for Kubernetes:Terraform の概要

最終更新日:May 29, 2025

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

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

  • データソースを使用すると、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 プラグインのダウンロード方法の詳細については、「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. リソース

名前

説明

alicloud_cs_edge_kubernetes

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

alicloud_cs_kubernetes_node_pool

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

alicloud_cs_kubernetes_permissions

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

alicloud_cs_managed_kubernetes

ACK マネージドクラスターを管理します。

alicloud_cs_kubernetes

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

alicloud_cs_serverless_kubernetes

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

alicloud_cs_kubernetes_addon

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

表 2. データソース

名前

説明

alicloud_ack_service

ACK をアクティブ化します。

alicloud_cs_edge_kubernetes_clusters

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

alicloud_cs_kubernetes_clusters

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

alicloud_cs_kubernetes_permissions

指定された RAM (Resource Access Management) ユーザーのすべての権限を一覧表示します。

alicloud_cs_managed_kubernetes_clusters

すべての ACK マネージドクラスターを一覧表示します。

alicloud_cs_serverless_kubernetes_clusters

すべての Serverless Kubernetes クラスター を一覧表示します。

alicloud_cs_kubernetes_addon_metadata

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

alicloud_cs_kubernetes_addons

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

alicloud_cs_kubernetes_version

使用可能な Kubernetes バージョンの情報を一覧表示します。

alicloud_cs_kubernetes_node_pools

指定されたクラスター内のノードプール情報を一覧表示します。

コンソールから Terraform リクエストパラメータを生成する

コンソールから、さまざまなクラスタータイプを作成するためのパラメータ構成を生成できます。

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、[クラスターテンプレート] をクリックします。

  3. [クラスターテンプレートの選択] ダイアログボックスで、ターゲットクラスタータイプを見つけて [作成] をクリックします。[クラスター構成] ステップで、パラメータを構成します。

  4. [確認] ステップで [API リクエストパラメータの生成] をクリックします。

  5. [Terraform] タブをクリックして、現在のクラスター作成に必要な構成に対応するコードスニペットを取得します。