Understanding terraform module
- kkumtree
2023-10-04T11:24:13+09:00
This week is last week of CloudNet@ group study about terraform.
In this study, my personal goal is making AWS architecture only with terraform and one tfstate file.
- Basic knowledge about AWS resources is required.
1. Terraform without Module
Before, I already met terraform for maintaining AWS in production level.
But at that time, our team maintain them as folder structure which is used by terraformer
# example structure
$ tree
.
├── alb
│ ├── lb.tf
│ ├── lb_listener.tf
│ ├── lb_target_group.tf
│ ├── lb_target_group_attachment.tf
│ ├── outputs.tf
│ ├── provider.tf
│ └── variables.tf
├── auto_scaling
│ ├── autoscaling_group.tf
│ ├── launch_template.tf
│ ├── outputs.tf
│ ├── provider.tf
│ └── variables.tf
├── ec2_instance
│ ├── instance.tf
│ ├── outputs.tf
│ ├── provider.tf
│ └── variables.tf
├── eni
│ ├── network_interface.tf
│ ├── outputs.tf
│ └── provider.tf
├── igw
│ ├── internet_gateway.tf
│ ├── outputs.tf
│ ├── provider.tf
│ └── variables.tf
├── nacl
│ ├── default_network_acl.tf
│ ├── outputs.tf
│ ├── provider.tf
│ └── variables.tf
├── route_table
│ ├── main_route_table_association.tf
│ ├── outputs.tf
│ ├── provider.tf
│ ├── route_table.tf
│ ├── route_table_association.tf
│ └── variables.tf
├── s3
│ ├── outputs.tf
│ ├── provider.tf
│ └── s3_bucket.tf
├── sg
│ ├── outputs.tf
│ ├── provider.tf
│ ├── security_group.tf
│ └── variables.tf
├── subnet
│ ├── outputs.tf
│ ├── provider.tf
│ ├── subnet.tf
│ └── variables.tf
└── vpc
├── outputs.tf
├── provider.tf
└── vpc.tf
At glance, this solution looks like cool.
But, problems were enough critical to think ‘why we have to use terraform?’.