-
[Terraform] EC2 Instance Create 보안그룹 오류(groupName)공부/Error 2025. 11. 17. 10:41

에러다!! Error: creating EC2 Instance: operation error EC2: RunInstances, https response error StatusCode: 400 api error InvalidParameterCombination: The parameter groupName cannot be used with the parameter subnet오류 내용을 보면 그룹 이름과 서브넷 파라미터는 불가능한 조합이라고 안내 나온다.
예전 같으면 그냥 수정하고 넘어갔겠지만, 이게 왜 발생했는지 알고싶어졌다.
테라폼에서 EC2 인스턴스를 만들 때 보안 그룹 지정 방식에는 크게 두 가지가 있다.
EC2-Classic vs VPC방식인데 다음과 같은 구조적 차이가 있기 때문에 수정해야한다.
방식 네트워크 구조 지정 방식 EC2-Classic 계정 전체에서 네트워크 공유 security_groups (이름 기반, groupName) VPC 사용자별 격리된 논리 네트워크 vpc_security_group_ids (ID기반) 에러가 발생한 이유는 이 두 방식을 동시에 혼용해서 사용하려고 했기에 오류가 발생했다.
두 방식을 혼용해서 사용하면 발생하는 문제점은 다음과 같다.
1. subnet_id와 SG 이름의 충돌하는 논리적 오류가 발생할 수 있다는 점
2. EC2-Classic에서는 SG이름이 전 계정에서 유일하게 식별가능한 값이지만, VPC에서는 이름이 중복이 가능해, 식별을 위해서는 ID값이 필요.
내 코드에서는 서브넷 ID를 이미 생성된 리소스를 이용하기 위해 지정했기 때문에, SG를 groupName이 아닌
id기반으로 사용해야했었다.
즉, (VPC환경)Subnet ID를 넣으면 groupId 방식을 사용해야한다.
security_groups = ["my-sg"] -> vpc_security_group_ids = [aws_security_group.instance.id]
위와 같이 수정하면 오류가 해결된다.
'공부 > Error' 카테고리의 다른 글