3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Terraform】Terraformのモジュールを作ってみよう

Posted at

はじめに

udemyを使ってTerraformの勉強をしたので、Terraformのモジュールについての学習備忘録です。

Terraformのモジュールとは

リソース生成処理を1つの塊にして呼び出せるようにしたもの → 関数のようなもの

Terraformのモジュールを作成してみよう

試しにserverというモジュールを作成してみたいと思います。

modulesフォルダを作成し、serverフォルダを作成します。
その配下にモジュール作成に下記の空のファイルを用意します。

  • variables.tf : 引数
  • main.tf : 処理
  • outputs.tf : 戻り値
  • README.md : 説明

スクリーンショット 2022-10-17 23.33.42.png

serverフォルダ内のファイルにEC2起動のTerraformを書きます。

/modules/server/main.tf
resource "aws_instance" "server" {
  ami           = "ami-078296f82eb463377"  # Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
  instance_type = var.instance_type
  tags = {
    Name = "hogeServer"
  }
}
/modules/server/outputs.tf
output "instance_id" {
  value = aws_instance.server.id
}
/modules/server/variables.tf
variable "instance_type" {
  type    = string
  default = "t2.micro"
}

これで、モジュールの完成です。

作成したモジュールを呼んでみよう

作成したモジュールを呼び出して使って見たいと思います。

main.tf
terraform {
  required_version = ">=0.13"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
}

# モジュールの呼び出し
module "webserver" {
  # モジュールのパスを記載する
  source = "./modules/server/"
  instance_type = "t2.micro"
}

output "web_server_id" {
  value = module.webserver.instance_id
}

実行します。

$ terraform init
$ terraform plan
$ terraform apply

モジュールで記載した内容がデプロイできてればOKです。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?