0Pricing
Terraform Infrastructure as Code · レッスン

再利用可能なモジュールの作成

入力、出力、リソースを定義して独自のTerraformモジュールを作成し、モジュール化された柔軟な設定を構築する方法を学習します。

「再利用可能なモジュールの作成」はCoddyKit上の無料Terraform Infrastructure as Codeレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTerraform Infrastructure as Code学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Terraform Infrastructure as Codeコースには全4レッスンが含まれています。

独自の Terraform モジュールを構築する

前のレッスンでは、既存の Terraform モジュールを使用する方法を学びました。ここでは、再利用可能な独自のモジュールを作成する方法を詳しく見ていきましょう。

モジュールを作成すると、一般的なインフラストラクチャパターンをカプセル化でき、構成をよりクリーンで一貫性のある、保守しやすいものにできます。

モジュールファイルを整理する

Terraform モジュールは基本的に、専用のディレクトリに保存された .tf ファイルの集合です。

最もシンプルなモジュールディレクトリには、次のファイルが含まれます。

  • variables.tf:モジュールの入力変数を定義します。
  • main.tf:実際のリソース宣言を含みます。
  • outputs.tf:モジュールからの出力値を定義します。

また、provider の要件を記述する versions.tf や、ドキュメント用の README.md を含めることもできます。

モジュールの入力:変数

モジュールを柔軟にするには、入力変数を定義します。これにより、モジュールの利用者はモジュールの中核となるコードを変更せずに、動作をカスタマイズできます。

変数は variable ブロックを使って定義し、description、type、必要に応じて default 値を指定します。

例:モジュール変数を定義する

モジュールの variables.tf ファイルで、インスタンスタイプの変数を定義する方法は次のとおりです。

# variables.tf
variable "instance_type" {
  description = "The EC2 instance type to use."
  type        = string
  default     = "t2.micro"
}

モジュールのリソース:中核となるロジック

モジュールの中心となるのは、リソース宣言です。これらは、モジュールがプロビジョニングする実際のクラウドリソースです。

AWS EC2 インスタンスや S3 バケットなどのリソースブロックを、モジュールの main.tf ファイルに配置します。

重要なのは、モジュール内のリソースで、定義した入力変数を使用することが多い点です。

入力を使ったリソース宣言

instance_type 変数を使って、main.tf に EC2 インスタンスを宣言してみましょう。

# main.tf
resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890" # Example AMI ID
  instance_type = var.instance_type
  tags = {
    Name = "MyWebServer"
  }
}

モジュールの出力:情報を共有する

モジュールは入力を受け取るだけでなく、出力値を提供することもできます。出力値は、モジュールが作成したリソースの情報をエクスポートするために役立ちます。

たとえば、EC2 インスタンスのパブリック IP アドレスや、S3 バケットの ARN を出力できます。

出力は、outputs.tf で output ブロックを使って定義します。

モジュールの出力値を定義する

outputs.tfでEC2インスタンスのパブリックIPを出力として定義する方法は次のとおりです。

# outputs.tf
output "instance_public_ip" {
  description = "The public IP address of the EC2 instance."
  value       = aws_instance.web_server.public_ip
}

新しいモジュールを呼び出す

モジュールを定義したら、他のモジュールと同じように、ルート設定(または別のモジュール)で使用できます。

source(モジュールディレクトリへのパス)を指定し、入力変数に値を渡します。

# root_config/main.tf
module "my_web_server_module" {
  source        = "../my-ec2-module" # Path to your module
  instance_type = "t3.small"         # Override default
}

output "web_server_ip" {
  value = module.my_web_server_module.instance_public_ip
}

モジュール構成要素の確認

Terraformモジュールの主要なファイルについて学びました。モジュールに渡す値を主に定義するファイルはどれでしょうか。

振り返り:再利用可能なモジュールの作成

よくできました。これで独自のTerraformモジュールを作成できるようになりました。

  • モジュールは.tfファイルを含むディレクトリです。
  • 入力にはvariables.tfを使用します。
  • リソース定義はmain.tfに配置します。
  • データを公開するには、outputs.tfで出力を定義します。

このスキルは、スケーラブルで保守しやすく、一貫性のあるInfrastructure as Codeを構築するうえで重要です。

よくある質問

「再利用可能なモジュールの作成」レッスンは無料ですか?

はい。「再利用可能なモジュールの作成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Terraform Infrastructure as Codeコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Terraform Infrastructure as Codeコースには全4レッスンが含まれています。

「再利用可能なモジュールの作成」で何を学びますか?

入力、出力、リソースを定義して独自のTerraformモジュールを作成し、モジュール化された柔軟な設定を構築する方法を学習します。 ブラウザで直接実行するハンズオンコードでTerraform Infrastructure as Codeを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Terraform Infrastructure as Codeを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTerraform Infrastructure as Codeは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「再利用可能なモジュールの作成」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTerraform Infrastructure as Codeレッスンでコードを書いて実行できますか?

はい。すべてのTerraform Infrastructure as Codeレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Terraformモジュールの概要
  2. 再利用可能なモジュールの作成
  3. 環境にワークスペースを使用する
  4. レジストリへのモジュール公開
← Terraform Infrastructure as Codeに戻る