terraform으로 backend와 dynamodb를 지정하여 state locking을 시도했을 때 아래와 같은 에러를 만나고 그냥 시키는 대로 -lock=false를 줬을 것이다.
하지만 위의 에러에서 제일 마지막에 말했듯이 하면 위험하다는 뜻이기도 하기때문에 왜 에러가 발생하는지 어떻게 고치는지 알아보자.
사실 엄청 쉬운 문제다. 전에 내가 작성한 블로그에서 dynamodb가 lock권한을 부여할 때 key값을 보고 파일을 확인하는 절차를 따른다고 했다.
https://cksdid4993.tistory.com/64
그렇다면 만약 lock 권한을 주려고 하는데 파일이 없다면? tfstate파일이 애초에 처음에는 없을 것이다. 그렇다면 당연히 위의 에러처럼 resource not found 에러가 뜨면서 lock을 줄 수 없는 상태가 된다.
따라서 -lock=false를 주면서 lock 권한을 무시하고 처음에 table을 생성한다음 다음부터 tfstate파일을 참조할 때에는 -lock=false를 안줘도 되는 것이다.
블로그를 보면서 처음에 dynamodb를 생성하고 -lock=false로 준다음 apply하면 아래와 같이 파일이 생성된다.
그렇다면 다른 location에서 init할때 dynamo table을 같은 걸 주고 apply나 plan을 실행하면 -lock=false를 더이상 안줘도 된다.
'infra(terraform, aws, git)' 카테고리의 다른 글
github action runner erorr: not a git repository (0) | 2022.06.20 |
---|---|
terraform validation error: status code 400 in lambda creation (0) | 2022.03.08 |
(에러)ecr에 docker image push할 때 나오는 에러 2가지 해결. (0) | 2022.01.25 |
(에러)terraform dynamodb validException key error (0) | 2022.01.24 |
(에러)terraform Error: Required plugins are not installed (0) | 2021.12.23 |