[root@ip-172-31-61-209 learn-terraform-modules-use]# more *.tf :::::::::::::: main.tf :::::::::::::: provider "aws" { region = "ap-northeast-2" default_tags { tags = { hashicorp-learn = "module-use" } } } module "vpc" { source = "terraform-aws-modules/vpc/aws" version = "3.14.0" name = var.vpc_name cidr = var.vpc_cidr azs = var.vpc_azs private_subnets = var.vpc_private_subnets public_subnets = var.vpc_public_subnets enable_nat_gateway = var.vpc_enable_nat_gateway tags = var.vpc_tags } module "ec2_instances" { source = "terraform-aws-modules/ec2-instance/aws" version = "3.5.0" count = 2 name = "my-ec2-cluster" ami = "ami-09cf633fe86e51bf0" instance_type = "t2.micro" vpc_security_group_ids = [module.vpc.default_security_group_id] subnet_id = module.vpc.public_subnets[0] tags = { Terraform = "true" Environment = "dev" } } :::::::::::::: outputs.tf :::::::::::::: output "vpc_public_subnets" { description = "IDs of the VPC's public subnets" value = module.vpc.public_subnets } output "ec2_instance_public_ips" { description = "Public IP addresses of EC2 instances" value = module.ec2_instances[*].public_ip } :::::::::::::: terraform.tf :::::::::::::: terraform { /* Uncomment this block to use Terraform Cloud for this tutorial cloud { organization = "organization-name" workspaces { name = "learn-terraform-module-use" } } */ required_providers { aws = { source = "hashicorp/aws" version = "~> 4.4.0" } } required_version = ">= 1.1.0" } :::::::::::::: variables.tf :::::::::::::: variable "vpc_name" { description = "Name of VPC" type = string default = "example-vpc" } variable "vpc_cidr" { description = "CIDR block for VPC" type = string default = "10.0.0.0/16" } variable "vpc_azs" { description = "Availability zones for VPC" type = list(string) default = ["ap-northeast-2a", "ap-northeast-2c"] } variable "vpc_private_subnets" { description = "Private subnets for VPC" type = list(string) default = ["10.0.1.0/24", "10.0.2.0/24"] } variable "vpc_public_subnets" { description = "Public subnets for VPC" type = list(string) default = ["10.0.101.0/24", "10.0.102.0/24"] } variable "vpc_enable_nat_gateway" { description = "Enable NAT gateway for VPC" type = bool default = true } variable "vpc_tags" { description = "Tags to apply to resources created by VPC module" type = map(string) default = { Terraform = "true" Environment = "dev" } } [root@ip-172-31-61-209 learn-terraform-modules-use]#