再利用可能なモジュールの作成
入力、出力、リソースを定義して独自の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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Terraformモジュールの概要
- 再利用可能なモジュールの作成
- 環境にワークスペースを使用する
- レジストリへのモジュール公開