Skip to content

Conversation

@2ghrms
Copy link
Member

@2ghrms 2ghrms commented Dec 24, 2025

🌱 PR 요약

  • terraform 실행을 위한 PR

2ghrms added 30 commits August 24, 2025 20:57
- terraform fmt -recursive & terraform validate 실행
- 배포 관련 브랜치 설명 코드와 일치화
- secret.tfvars 이외에 제외
- tfvars 관련 ignore 파일명 수정
- S3 모듈 추가 정의
- vars에 environment  추가
- S3 모듈 사용법 README 추가
- tfvars 관련 ignore 파일명 수정 후 terraform.tfvars 반영됨
- tfvars 관련 ignore 파일명 수정 후 terraform.tfvars 반영됨
- 각 모듈 variable.tf에 purpose와 environment, tags 추가
- 각 모듈 main.tf에 tags 정의
- compute, database 등에 적용
- volume size 입력받음
- volume type 입력받음
- public IP 사용 여부 입력받음
- SSH 키 주입
- was-userdata.sh로 wsa용 userdata 예시 추가
- volume size 입력받음
- volume type 입력받음
- public IP 사용 여부 입력받음
- SSH 키 주입
- was-userdata.sh로 wsa용 userdata 예시 추가
- engine_version, instance_class, publicly_accessible, backup_retention_period, parameter_group_name 추가
- variables.tf에 description 추가
- output.tf에 description 추가
- VPC, IGW, Route Tables -> 공유 리소스에 environment 태그 삭제
- compute.tf -> api 서버 명시
- 가용영역, 서브넷 부분 하드코딩으로 수정
- EC2와 RDS의 보안그룹 분리
- RDS 보안그룹에 3306 포트 열어둠
- 파라미터 그룹 적용
- ACM 모듈 추가 (SSL 인증서 관리)
- ALB 모듈 추가 (Application Load Balancer)
- dev/prod 환경에 ACM과 ALB 적용
- CI 워크플로우 최적화 (terraform plan 변수 최소화)
- DB ID 통일 ('clokey_db'로 설정)
- Route53 모듈 개선 (ALB alias 레코드 지원)
- 보안 강화 (EC2는 ALB를 통해서만 접근 가능)
- CI에서 user_data 변수를 tfvars 파일로 분리하여 'Too many command line arguments' 오류 해결
- Route53 모듈의 count 조건을 개선하여 ALB 의존성 문제 해결
- Route53 hosted zone과 record 생성을 분리하여 의존성 명확화
- terraform fmt로 코드 포맷팅 정리

Changes:
- .github/workflows/ci_dev.yml: user_data를 별도 파일로 분리
- terraform/env/dev/network.tf: Route53 모듈 분리 및 의존성 추가
- terraform/modules/network/route53/main.tf: count 조건 개선
- terraform/modules/network/route53/output.tf: 안전한 리소스 접근으로 수정
- record_name 변수에 default = null 추가
- route53_zone 모듈에서 레코드 생성하지 않을 때 record_name 불필요
- 'Missing required argument' 오류 해결
- EC2 KeyPair 이름 문제 해결
- MySQL 버전을 8.0.35 → 8.0.34로 변경
- 인증서 검증 타임아웃을 10분 → 20분으로 증가
- Route53 레코드 의존성 명시적 추가
- S3 버킷 중복 문제
- website_endpoint → website_domain으로 변경
- EC2 KeyPair, RDS MySQL 버전, S3 버킷 충돌 문제 해결
- ACM 인증서 검증 및 UserData 로깅 개선
- deprecated 속성 수정
[feat/init] Add terraform project files
@github-actions
Copy link

📝 Terraform Plan Result (Prod)

data.aws_availability_zones.available: Reading...
data.aws_ami.ubuntu_latest: Reading...
data.aws_caller_identity.current: Reading...
data.aws_region.current: Reading...
data.aws_region.current: Read complete after 0s [id=ap-northeast-2]
data.aws_caller_identity.current: Read complete after 0s [id=801541931915]
data.aws_availability_zones.available: Read complete after 1s [id=ap-northeast-2]
data.aws_ami.ubuntu_latest: Read complete after 1s [id=ami-08a4fd517a4872931]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.ec2.aws_instance.this will be created
  + resource "aws_instance" "this" {
      + ami                                  = "ami-08a4fd517a4872931"
      + arn                                  = (known after apply)
      + associate_public_ip_address          = true
      + availability_zone                    = (known after apply)
      + cpu_core_count                       = (known after apply)
      + cpu_threads_per_core                 = (known after apply)
      + disable_api_stop                     = (known after apply)
      + disable_api_termination              = false
      + ebs_optimized                        = (known after apply)
      + enable_primary_ipv6                  = (known after apply)
      + get_password_data                    = false
      + host_id                              = (known after apply)
      + host_resource_group_arn              = (known after apply)
      + iam_instance_profile                 = (known after apply)
      + id                                   = (known after apply)
      + instance_initiated_shutdown_behavior = "stop"
      + instance_lifecycle                   = (known after apply)
      + instance_state                       = (known after apply)
      + instance_type                        = "t3.micro"
      + ipv6_address_count                   = (known after apply)
      + ipv6_addresses                       = (known after apply)
      + key_name                             = "clokey-prod-server-key"
      + monitoring                           = false
      + outpost_arn                          = (known after apply)
      + password_data                        = (known after apply)
      + placement_group                      = (known after apply)
      + placement_partition_number           = (known after apply)
      + primary_network_interface_id         = (known after apply)
      + private_dns                          = (known after apply)
      + private_ip                           = (known after apply)
      + public_dns                           = (known after apply)
      + public_ip                            = (known after apply)
      + secondary_private_ips                = (known after apply)
      + security_groups                      = (known after apply)
      + source_dest_check                    = true
      + spot_instance_request_id             = (known after apply)
      + subnet_id                            = (known after apply)
      + tags                                 = {
          + "Name" = "prod-clokey-api"
        }
      + tags_all                             = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-api"
          + "Project"     = "clokey"
        }
      + tenancy                              = (known after apply)
      + user_data                            = (known after apply)
      + user_data_base64                     = (sensitive value)
      + user_data_replace_on_change          = false
      + vpc_security_group_ids               = (known after apply)

      + capacity_reservation_specification (known after apply)

      + cpu_options (known after apply)

      + ebs_block_device (known after apply)

      + enclave_options (known after apply)

      + ephemeral_block_device (known after apply)

      + instance_market_options (known after apply)

      + maintenance_options (known after apply)

      + metadata_options (known after apply)

      + network_interface (known after apply)

      + private_dns_name_options (known after apply)

      + root_block_device {
          + delete_on_termination = true
          + device_name           = (known after apply)
          + encrypted             = true
          + iops                  = (known after apply)
          + kms_key_id            = (known after apply)
          + tags_all              = (known after apply)
          + throughput            = (known after apply)
          + volume_id             = (known after apply)
          + volume_size           = 30
          + volume_type           = "gp3"
        }
    }

  # module.igw.aws_internet_gateway.this will be created
  + resource "aws_internet_gateway" "this" {
      + arn      = (known after apply)
      + id       = (known after apply)
      + owner_id = (known after apply)
      + tags     = {
          + "Name" = "prod-clokey-igw"
        }
      + tags_all = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-igw"
          + "Project"     = "clokey"
        }
      + vpc_id   = (known after apply)
    }

  # module.rds.aws_db_instance.this will be created
  + resource "aws_db_instance" "this" {
      + address                               = (known after apply)
      + allocated_storage                     = 30
      + apply_immediately                     = false
      + arn                                   = (known after apply)
      + auto_minor_version_upgrade            = true
      + availability_zone                     = (known after apply)
      + backup_retention_period               = 7
      + backup_target                         = (known after apply)
      + backup_window                         = "03:00-04:00"
      + ca_cert_identifier                    = (known after apply)
      + character_set_name                    = (known after apply)
      + copy_tags_to_snapshot                 = false
      + database_insights_mode                = (known after apply)
      + db_name                               = "clokey_db"
      + db_subnet_group_name                  = "prod-clokey-rds"
      + dedicated_log_volume                  = false
      + delete_automated_backups              = true
      + deletion_protection                   = false
      + domain_fqdn                           = (known after apply)
      + endpoint                              = (known after apply)
      + engine                                = "mysql"
      + engine_lifecycle_support              = (known after apply)
      + engine_version                        = "8.0.42"
      + engine_version_actual                 = (known after apply)
      + hosted_zone_id                        = (known after apply)
      + id                                    = (known after apply)
      + identifier                            = "prod-clokey-rds"
      + identifier_prefix                     = (known after apply)
      + instance_class                        = "db.t3.micro"
      + iops                                  = (known after apply)
      + kms_key_id                            = (known after apply)
      + latest_restorable_time                = (known after apply)
      + license_model                         = (known after apply)
      + listener_endpoint                     = (known after apply)
      + maintenance_window                    = "sun:04:00-sun:05:00"
      + master_user_secret                    = (known after apply)
      + master_user_secret_kms_key_id         = (known after apply)
      + monitoring_interval                   = 0
      + monitoring_role_arn                   = (known after apply)
      + multi_az                              = false
      + nchar_character_set_name              = (known after apply)
      + network_type                          = (known after apply)
      + option_group_name                     = (known after apply)
      + parameter_group_name                  = "prod-clokey-rds-parameter-group"
      + password                              = (sensitive value)
      + password_wo                           = (write-only attribute)
      + performance_insights_enabled          = false
      + performance_insights_kms_key_id       = (known after apply)
      + performance_insights_retention_period = (known after apply)
      + port                                  = (known after apply)
      + publicly_accessible                   = false
      + replica_mode                          = (known after apply)
      + replicas                              = (known after apply)
      + resource_id                           = (known after apply)
      + skip_final_snapshot                   = true
      + snapshot_identifier                   = (known after apply)
      + status                                = (known after apply)
      + storage_encrypted                     = true
      + storage_throughput                    = (known after apply)
      + storage_type                          = "gp3"
      + tags                                  = {
          + "Name" = "prod-clokey-rds"
        }
      + tags_all                              = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-rds"
          + "Project"     = "clokey"
        }
      + timezone                              = (known after apply)
      + username                              = (sensitive value)
      + vpc_security_group_ids                = (known after apply)
    }

  # module.rds.aws_db_parameter_group.main[0] will be created
  + resource "aws_db_parameter_group" "main" {
      + arn          = (known after apply)
      + description  = "Managed by Terraform"
      + family       = "mysql8.0"
      + id           = (known after apply)
      + name         = "prod-clokey-rds-parameter-group"
      + name_prefix  = (known after apply)
      + skip_destroy = false
      + tags         = {
          + "Name" = "prod-clokey-rds-parameter-group"
        }
      + tags_all     = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-rds-parameter-group"
          + "Project"     = "clokey"
        }

      + parameter {
          + apply_method = "immediate"
          + name         = "innodb_buffer_pool_size"
          + value        = "{DBInstanceClassMemory*3/4}"
        }
      + parameter {
          + apply_method = "immediate"
          + name         = "max_connections"
          + value        = "100"
        }
    }

  # module.rds.aws_db_subnet_group.this will be created
  + resource "aws_db_subnet_group" "this" {
      + arn                     = (known after apply)
      + description             = "Managed by Terraform"
      + id                      = (known after apply)
      + name                    = "prod-clokey-rds"
      + name_prefix             = (known after apply)
      + subnet_ids              = (known after apply)
      + supported_network_types = (known after apply)
      + tags                    = {
          + "Name" = "prod-clokey-rds"
        }
      + tags_all                = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-rds"
          + "Project"     = "clokey"
        }
      + vpc_id                  = (known after apply)
    }

  # module.route_table_private.aws_route_table.this will be created
  + resource "aws_route_table" "this" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = (known after apply)
      + tags             = {
          + "Name" = "prod-clokey-private-rt"
        }
      + tags_all         = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-private-rt"
          + "Project"     = "clokey"
        }
      + vpc_id           = (known after apply)
    }

  # module.route_table_public.aws_route.igw[0] will be created
  + resource "aws_route" "igw" {
      + destination_cidr_block = "0.0.0.0/0"
      + gateway_id             = (known after apply)
      + id                     = (known after apply)
      + instance_id            = (known after apply)
      + instance_owner_id      = (known after apply)
      + network_interface_id   = (known after apply)
      + origin                 = (known after apply)
      + route_table_id         = (known after apply)
      + state                  = (known after apply)
    }

  # module.route_table_public.aws_route_table.this will be created
  + resource "aws_route_table" "this" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = (known after apply)
      + tags             = {
          + "Name" = "prod-clokey-public-rt"
        }
      + tags_all         = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-public-rt"
          + "Project"     = "clokey"
        }
      + vpc_id           = (known after apply)
    }

  # module.s3.aws_s3_bucket.this will be created
  + resource "aws_s3_bucket" "this" {
      + acceleration_status         = (known after apply)
      + acl                         = (known after apply)
      + arn                         = (known after apply)
      + bucket                      = "prod-clokey-storage-bucket"
      + bucket_domain_name          = (known after apply)
      + bucket_prefix               = (known after apply)
      + bucket_regional_domain_name = (known after apply)
      + force_destroy               = false
      + hosted_zone_id              = (known after apply)
      + id                          = (known after apply)
      + object_lock_enabled         = (known after apply)
      + policy                      = (known after apply)
      + region                      = (known after apply)
      + request_payer               = (known after apply)
      + tags                        = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-storage-bucket"
          + "Project"     = "clokey"
        }
      + tags_all                    = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-storage-bucket"
          + "Project"     = "clokey"
        }
      + website_domain              = (known after apply)
      + website_endpoint            = (known after apply)

      + cors_rule (known after apply)

      + grant (known after apply)

      + lifecycle_rule (known after apply)

      + logging (known after apply)

      + object_lock_configuration (known after apply)

      + replication_configuration (known after apply)

      + server_side_encryption_configuration (known after apply)

      + versioning (known after apply)

      + website (known after apply)
    }

  # module.s3.aws_s3_bucket_policy.public_read[0] will be created
  + resource "aws_s3_bucket_policy" "public_read" {
      + bucket = (known after apply)
      + id     = (known after apply)
      + policy = (known after apply)
    }

  # module.s3.aws_s3_bucket_server_side_encryption_configuration.this[0] will be created
  + resource "aws_s3_bucket_server_side_encryption_configuration" "this" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + rule {
          + apply_server_side_encryption_by_default {
              + sse_algorithm     = "AES256"
                # (1 unchanged attribute hidden)
            }
        }
    }

  # module.s3.aws_s3_bucket_versioning.this[0] will be created
  + resource "aws_s3_bucket_versioning" "this" {
      + bucket = (known after apply)
      + id     = (known after apply)

      + versioning_configuration {
          + mfa_delete = (known after apply)
          + status     = "Enabled"
        }
    }

  # module.sg_ec2.aws_security_group.this will be created
  + resource "aws_security_group" "this" {
      + arn                    = (known after apply)
      + description            = "Managed by Terraform"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
                # (1 unchanged attribute hidden)
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 22
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 22
                # (1 unchanged attribute hidden)
            },
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 443
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 443
                # (1 unchanged attribute hidden)
            },
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 80
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 80
                # (1 unchanged attribute hidden)
            },
        ]
      + name                   = "prod-clokey-sg-ec2"
      + name_prefix            = (known after apply)
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Name" = "prod-clokey-sg-ec2"
        }
      + tags_all               = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-sg-ec2"
          + "Project"     = "clokey"
        }
      + vpc_id                 = (known after apply)
    }

  # module.sg_rds.aws_security_group.this will be created
  + resource "aws_security_group" "this" {
      + arn                    = (known after apply)
      + description            = "Managed by Terraform"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
                # (1 unchanged attribute hidden)
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = []
              + from_port        = 3306
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = (known after apply)
              + self             = false
              + to_port          = 3306
                # (1 unchanged attribute hidden)
            },
        ]
      + name                   = "prod-clokey-sg-rds"
      + name_prefix            = (known after apply)
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Name" = "prod-clokey-sg-rds"
        }
      + tags_all               = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-sg-rds"
          + "Project"     = "clokey"
        }
      + vpc_id                 = (known after apply)
    }

  # module.subnet_private_a.aws_route_table_association.this will be created
  + resource "aws_route_table_association" "this" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.subnet_private_a.aws_subnet.this will be created
  + resource "aws_subnet" "this" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "ap-northeast-2a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "10.0.11.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Name" = "prod-clokey-subnet-private-a"
        }
      + tags_all                                       = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-subnet-private-a"
          + "Project"     = "clokey"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.subnet_private_c.aws_route_table_association.this will be created
  + resource "aws_route_table_association" "this" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.subnet_private_c.aws_subnet.this will be created
  + resource "aws_subnet" "this" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "ap-northeast-2c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "10.0.12.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Name" = "prod-clokey-subnet-private-c"
        }
      + tags_all                                       = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-subnet-private-c"
          + "Project"     = "clokey"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.subnet_public_a.aws_route_table_association.this will be created
  + resource "aws_route_table_association" "this" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.subnet_public_a.aws_subnet.this will be created
  + resource "aws_subnet" "this" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "ap-northeast-2a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "10.0.1.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = true
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Name" = "prod-clokey-subnet-public-a"
        }
      + tags_all                                       = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-subnet-public-a"
          + "Project"     = "clokey"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.subnet_public_c.aws_route_table_association.this will be created
  + resource "aws_route_table_association" "this" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.subnet_public_c.aws_subnet.this will be created
  + resource "aws_subnet" "this" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "ap-northeast-2c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "10.0.2.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = true
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Name" = "prod-clokey-subnet-public-c"
        }
      + tags_all                                       = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-subnet-public-c"
          + "Project"     = "clokey"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.vpc.aws_vpc.this will be created
  + resource "aws_vpc" "this" {
      + arn                                  = (known after apply)
      + cidr_block                           = "10.0.0.0/16"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_dns_hostnames                 = true
      + enable_dns_support                   = true
      + enable_network_address_usage_metrics = (known after apply)
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + tags                                 = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-vpc"
          + "Project"     = "clokey"
        }
      + tags_all                             = {
          + "Environment" = "prod"
          + "ManagedBy"   = "terraform"
          + "Name"        = "prod-clokey-vpc"
          + "Project"     = "clokey"
        }
    }

Plan: 23 to add, 0 to change, 0 to destroy.

Warning: Value for undeclared variable

The root module does not declare a variable named "aws_region" but a value
was found in file "terraform.tfvars". If you meant to use this value, add a
"variable" block to the configuration.

To silence these warnings, use TF_VAR_... environment variables to provide
certain "global" settings to all configurations in your organization. To
reduce the verbosity of these warnings, use the -compact-warnings option.

Warning: Value for undeclared variable

The root module does not declare a variable named "environment" but a value
was found in file "terraform.tfvars". If you meant to use this value, add a
"variable" block to the configuration.

To silence these warnings, use TF_VAR_... environment variables to provide
certain "global" settings to all configurations in your organization. To
reduce the verbosity of these warnings, use the -compact-warnings option.

Warning: Values for undeclared variables

In addition to the other similar warnings shown, 3 other variable(s) defined
without being declared.

Warning: Deprecated attribute

  on ../../modules/storage/s3/output.tf line 33, in output "bucket_website_endpoint":
  33:   value       = aws_s3_bucket.this.website_domain

The attribute "website_domain" is deprecated. Refer to the provider
documentation for details.

─────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.

@2ghrms 2ghrms merged commit ba7202e into prod Dec 24, 2025
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants