Terraform は、クラウドサービスのインフラストラクチャとリソースを安全かつ効率的にプレビュー、構成、管理するために使用できるオープンソースツールです。このトピックでは、Terraform の概要と、ApsaraMQ for Kafka で Terraform を使用する方法について説明します。
はじめに
基本機能
Terraform は、IT インフラストラクチャの自動オーケストレーションをサポートするツールです。 Terraform を使用すると、コードを使用して IT リソースを管理および保守できます。詳細については、「Terraform とは」をご参照ください。
Terraform は、使いやすい CLI を提供します。この CLI を使用すると、Alibaba Cloud サービスまたはサードパーティのクラウドサービスのワークロードに構成ファイルをデプロイし、構成ファイルのバージョンを管理できます。 Terraform を使用すると、構成ファイルでクラウドトポロジを構築するために必要なインフラストラクチャリソースを定義できます。リソースには、仮想マシン (VM)、ストレージアカウント、ネットワークインターフェースが含まれます。
Terraform は Alibaba Cloud プロバイダーと統合して、新しいインフラストラクチャをサポートできます。テンプレートを使用して Alibaba Cloud プロバイダーを構成し、Alibaba Cloud 上でクラウドインフラストラクチャを定義、プレビュー、およびデプロイできます。
Terraform を使用すると、Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、ApsaraDB RDS、Server Load Balancer (SLB) など、複数の Alibaba Cloud サービスのリソースを作成、変更、および削除できます。
Terraform を Alibaba Cloud プロバイダーと統合する方法については、「Alibaba Cloud プロバイダー」をご参照ください。
共通コマンド
Terraform でのリソース管理には、主にリソースライフサイクルの管理が含まれます。コマンドを実行して、Terraform テンプレートで定義されているリソースの作成、変更、表示、および削除を行うことができます。 Terraform で実行できる共通コマンドについては、「共通コマンド」をご参照ください。
メリット
Terraform は、一般的なシナリオで次のメリットを提供します。
Terraform は、ApsaraMQ for Kafka に次のメリットを提供します。
宣言型の Infrastructure as Code (IaC)
Terraform はアプリケーションを中心としており、インスタンスの作成とデプロイ、IP アドレスホワイトリストの構成、アクセス制御リスト (ACL) の作成を行うことができます。
Terraform を使用すると、ApsaraMQ for Kafka API を理解する必要なくコードを記述できます。
Terraform は、継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインをサポートしています。これにより、自動アプリケーション配信における ApsaraMQ for Kafka のパフォーマンスが向上します。
Terraform エコシステム
Terraform は LiveDiff 機能を提供します。この機能を使用すると、高いセキュリティで ApsaraMQ for Kafka リソースを管理できます。
Terraform は、アプリケーションを目的の状態に安定してデプロイするのに役立ちます。
Terraform はリソースオーケストレーション機能を提供します。この機能を使用すると、数回クリックするだけで ApsaraMQ for Kafka と依存リソースを効率的にデプロイできます。
リソースカテゴリ
リソース
各リソースは新しく作成されたリソースです。詳細については、「リソース」をご参照ください。
次のコードは、ApsaraMQ for Kafka インスタンスを作成する方法の例を示しています。
resource "alicloud_alikafka_instance" "default" { name = var.instance_name partition_num = 50 disk_type = 1 disk_size = 500 deploy_type = 5 io_max = 20 vswitch_id = alicloud_vswitch.default.id security_group = alicloud_security_group.default.id }データソース
データソースをクエリして、既存のリソースとその属性に関する情報を取得できます。詳細については、「データソース」をご参照ください。
次のコードは、Alibaba Cloud アカウント内のすべての ApsaraMQ for Kafka インスタンスをクエリする方法の例を示しています。
data "alicloud_alikafka_instances" "instances_ds" { name_regex = "alikafkaInstanceName" output_file = "instances.txt" } output "first_instance_name" { value = data.alicloud_alikafka_instances.instances_ds.instances.0.name }
Terraform を使用して ApsaraMQ for Kafka リソースを管理する
Terraform を使用して、次の ApsaraMQ for Kafka リソースを管理できます。
表 1. リソース
リソースタイプ | 説明 |
ApsaraMQ for Kafka インスタンスを管理するための引数を提供します。詳細については、「Terraform を使用してインスタンスを管理する」をご参照ください。 | |
ApsaraMQ for Kafka インスタンスの IP アドレスホワイトリストを管理するための引数を提供します。詳細については、「Terraform を使用して IP アドレスホワイトリストを管理する」をご参照ください。 | |
ApsaraMQ for Kafka コンシューマーグループを管理するための引数を提供します。詳細については、「Terraform を使用してコンシューマーグループを管理する」をご参照ください。 | |
ApsaraMQ for Kafka トピックを管理するための引数を提供します。詳細については、「Terraform を使用してトピックを管理する」をご参照ください。 | |
ApsaraMQ for Kafka ACL を管理するためのパラメーターを提供します。詳細については、「Terraform を使用して SASL ユーザーに権限を付与する」をご参照ください。 | |
ApsaraMQ for Kafka Simple Authentication and Security Layer (SASL) ユーザーを管理するための引数を提供します。詳細については、「Terraform を使用して SASL ユーザーを管理する」をご参照ください。 |
表 2. データソース
リソースタイプ | 説明 |
ApsaraMQ for Kafka コンシューマーグループのリストを提供します。詳細については、「Terraform を使用してコンシューマーグループを管理する」をご参照ください。 | |
ApsaraMQ for Kafka インスタンスのリストを提供します。詳細については、「Terraform を使用してインスタンスを管理する」をご参照ください。 | |
ApsaraMQ for Kafka ACL のリストを提供します。詳細については、「Terraform を使用して SASL ユーザーに権限を付与する」をご参照ください。 | |
ApsaraMQ for Kafka SASL ユーザーのリストを提供します。詳細については、「Terraform を使用して SASL ユーザーを管理する」をご参照ください。 | |
ApsaraMQ for Kafka トピックのリストを提供します。詳細については、「Terraform を使用してトピックを管理する」をご参照ください。 |