발생 원인 

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:       이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.
  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