Cloud Computing & MSA

terraform lock 해결방안

lleez5367·2020년 11월 18일·조회 13,521

발생 원인 

Terraform에서는 여러 사용자가 동시에 인프라를 수정하는 것을 방지하기 위해 lock을 걸 수 있다.

terraform을 수행하다가 사용자 혹은 특정 이유로 lock이 걸린 상태에서 terraform 수행이 실패하게되면 lock 해제가 안된 채로 끝나 있는 경우가 있다. 

그럼 다음 terraform 수행시 아래와 같은 에러를 만날 수 있다. 

Error: Error locking state: Error acquiring the state lock: ConditionalCheckFailedException: The conditional request failed
    status code: 400, request id: CC008DNO1QQ3C7V433N8CFUJTFVV4KQNSO5AEMVJF66Q9ASUAAJG
Lock Info:
  ID:        b653c0c4-e200-fbf9-2402-fb024894a5eb
  Path:      resource-path/terraform.state
  Operation: OperationTypeApply
  Who:       yunseop@ip-x-x-x-x.ap-northeast-1.compute.internal
  Version:   0.12.3
  Created:   2019-07-08 01:30:12.693711 +0000 UTC
  Info:

Terraform acquires a state lock to protect the state from being written
by multiple users at the same time. Please resolve the issue above and try
again. For most commands, you can disable locking with the "-lock=false"
flag, but this is not recommended.

해결 방안

1. -lock=false : lock을 무시하고 명령을 계속해서 수행하는 방안으로 Terraform에서 권장하지는 않는 방법이다.

2. terraform force-unlock <Lock ID> : lock을 수동으로 풀어주는 방법이다. 이 방법을 통해 lock을 해제한 후 명령어를 수행하도록 한다. 

(참고) https://www.terraform.io/docs/commands/force-unlock.html

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.