아무것도 안 했는데 고장났어?Terraform 디버깅 방법
Terraform이 갑자기 고장났어요?
인프라Terraform을 사용하고 사용하지 않을 때destroy로 사용합니다.
어느 날, 나는 환경을 만들고 싶어서 apply가 왜 잘못되어 일어서지 못할지 모르겠다.
제출 기록을 봐도 별다른 변화가 없고 테라form 버전도 향상되지 않았다.
다음은 코드의 발췌문과 오류 정보입니다.
resource "aws_instance" "web" {
count = 1
instance_type = "m5.large"
ami = data.aws_ami.web.id
associate_public_ip_address = true
subnet_id = aws_subnet.public.id
vpc_security_group_ids = [aws_security_group.web.id]
iam_instance_profile = aws_iam_instance_profile.ec2.id
}
resource "aws_instance" "batch" {
count = 1
instance_type = "t2.small"
ami = data.aws_ami.batch.id
associate_public_ip_address = true
subnet_id = aws_subnet.public.id
vpc_security_group_ids = [aws_security_group.batch.id]
iam_instance_profile = aws_iam_instance_profile.ec2.id
}
Error: Error launching source instance: InvalidParameterValue: Value (ec2) for parameter iamInstanceProfile.name is invalid. Invalid IAM Instance Profile name
status code: 400, request id: xxxx-xxxxxx
이런 느낌이에요.instance_프로필을 사용해 서로 다른 EC2를 만들었지만 이상하게도 한쪽만 EC2가 작동하지 않는 현상이 나타났다.특히instance_프로필을 바꾸지 않았어요. 아무것도 안 했는데 고장났어요.
Google에 물어봐도 다시 실행하면 된다거나 시간이 있으면 된다고 적혀 있지만 도저히 고칠 수가 없습니다.
Terraform 디버그
Terraform의 실행 로그를 토해 보겠습니다.
TF_LOG
와 TF_LOG_PATH
의 환경 변수에 값을 설정하면 로그를 볼 수 있습니다.Debugging - Terraform by HashiCorp
(이하 fish)
set -x TF_LOG TRACE
set -x TF_LOG_PATH hoge.txt
환경 변수를 설정하여 apply를 실행하고 로그를 조회할 때 오류가 발생했습니다.<Response><Errors><Error><Code>InsufficientInstanceCapacity</Code><Message>Insufficient capacity for instance type m5.large</Message></Error></Errors><RequestID>00eac3ec-cb1e-4fd3-9149-0ece31a4f625</RequestID></Response>
AZ의 특정 인스턴스 유형인 AWS 측의 용량이 부족하여 오류가 발생했습니다.이렇게 되면 오류 하나만 발생하든 구글에 물어본 후 시간 안에 해결하든 이해할 수 있다.
우선 AZ를 변경해 무사히 처리했습니다.
Terraform이 갑자기 고장나면 로그를 출력해 보세요.
Reference
이 문제에 관하여(아무것도 안 했는데 고장났어?Terraform 디버깅 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/wim/articles/terraform_ga_katteni_kowareta텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)