아무것도 안 했는데 고장났어?Terraform 디버깅 방법

4251 단어 Terraformtech

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_LOGTF_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이 갑자기 고장나면 로그를 출력해 보세요.

좋은 웹페이지 즐겨찾기