🐈

【Terraform】モジュールについて

2025/01/14に公開

はじめに

EC2にnginXを入れ、起動する動作をTerraformのモジュールを使って作っていきます。

ファイル構成

.
├── main.tf
├── modules
│   └── nginx_server
│       ├── main.tf
│       ├── outputs.tf
│       └── variables.tf
└── terraform.tfstate
/modules/nginx_server/variables.tf
variable "instance_type" {
  type = string
  default = "t2.micro"
}
/modules/nginx_server/outputs.tf
output "instance_id" {
  value = aws_instance.server.id
}
/modules/nginx_server/main.tf
resource "aws_instance" "server" {
 ami = "ami-08f52b2e87cebadd9"
 instance_type = var.instance_type
 tags = {
   Name = "TestWebServer"
 }
 user_data = <<EOF
 #!/bin/bash
 amazon-linux-extras inastall -y nginx.12
 systemctl start nginx
 EOF
}
main.tf
terraform {
  required_version = ">=0.13"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">3.0"
    }
  }
}

provider "aws" {
  profile = "udemy_terraform"
  region  = "ap-northeast-1"
}

module "webserver" {
  source        = "./modules/nginx_server"
  instance_type = "t2.micro"
}

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

Discussion