💡프로젝트를 진행하며 만난 테라폼 에러 뽀개기 - 1
프로젝트를 진행하면서 ECS와 RDS를 같은 서브넷에 올리는 아키텍쳐를 그렸다
plan 까지 별 문제가 없었는데 apply를 하면서 에러가 터졌다
creating RDS DB Instance (terraform-20240514042409173100000006):
InvalidParameterCombination:
The DB instance and EC2 security group are in different VPCs.
The DB instance is in vpc-08dd7842a0853cb4a and the
EC2 security group is in vpc-0f783987894a09240
RDS DB 인스턴스 생성(terraform-20240514042409173100000006):
InvalidParameterCombination:
DB 인스턴스와 EC2 보안 그룹이 서로 다른 VPC에 있습니다.
DB 인스턴스는 vpc-08dd7842a0853cb4a에 있고
EC2 보안 그룹은 vpc-0f783987894a09240에 있습니다.
내 코드는 아래와 같다
#database instance#
resource "aws_db_instance" "dev-database" {
allocated_storage = 10
db_name = var.dev_db_name
engine = "mysql"
engine_version = "5.7"
instance_class = var.instance-type-db
username = var.dev_db_username
password = var.dev_db_password
parameter_group_name = "default.mysql5.7"
skip_final_snapshot = true
vpc_security_group_ids = [aws_security_group.dev-db-sg.id]
}
#database security group#
resource "aws_security_group" "dev-db-sg" {
name = var.dev_db_sg_name
description = "DataBase Security Group"
vpc_id = aws_vpc.dev-vpc.id
ingress {
from_port = 3306
to_port = 3306
protocol = "tcp"
cidr_blocks = ["10.0.0.0/16"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = var.dev_db_sg_name
}
}
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance
공식문서에 이렇게 적혀있다.
내 에러는 RDS VPC와 보안그룹의 VPC가 일치하지 않아서 발생한 문제인데,
따로 지정해주지 않아서 RDS의 VPC가 기본 VPC에 만들어지려해서 발생하는 문제였다..!
참고로 EC2 VPC라고 나오는 이유는 보안그룹 풀네임이 ec2 보안그룹 인거라서 그런거라는 답변을 받았다.
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_subnet_group
resource "aws_db_subnet_group" "default" {
name = "main"
subnet_ids = [aws_subnet.frontend.id, aws_subnet.backend.id]
tags = {
Name = "My DB subnet group"
}
}
이 내용을 db_instance에 추가했다.
성공적으로 Terraform이 실행완료 되어서 RDS가 생성되었다!
😁😁😁