State 잠금

State 잠금 (State Locking)

백엔드가 지원한다면, 테라폼은 state를 쓸 수 있는 모든 작업에 대해 state를 잠가요. 이는 다른 사람이 잠금을 획득해서 state를 잠재적으로 손상시키는 것을 막아줘요.

출처: 문서

본문

State 잠금은 state를 쓸 수 있는 모든 작업에서 자동으로 일어나요. 잠금이 일어난다는 메시지를 볼 수는 없어요. state 잠금이 실패하면 테라폼은 계속 진행하지 않아요. 대부분의 명령에서 -lock=false 플래그로 state 잠금을 비활성화할 수 있지만, 권장하지는 않아요.

잠금 획득이 예상보다 오래 걸리면 테라폼이 상태 메시지를 출력해요. 테라폼이 메시지를 출력하지 않더라도, 백엔드가 잠금을 지원한다면 state 잠금은 여전히 일어나고 있어요.

모든 백엔드가 잠금을 지원하는 것은 아니에요. 각 백엔드의 문서에 잠금을 지원하는지 여부에 대한 세부 사항이 포함돼 있어요.

강제 잠금 해제 (Force Unlock)

테라폼에는 잠금 해제(unlock)가 실패했을 때 state를 수동으로 잠금 해제하는 force-unlock 명령이 있어요.

이 명령은 아주 조심해서 사용해야 해요. 다른 사람이 잠금을 쥐고 있을 때 state를 잠금 해제하면 여러 작성자(multiple writers)가 생길 수 있어요. Force unlock은 오직 자동 잠금 해제가 실패한 상황에서 자신의 잠금만 풀 때 사용해야 해요.

사용자를 보호하기 위해 force-unlock 명령은 고유한 잠금 ID를 요구해요. 잠금 해제가 실패하면 테라폼이 이 잠금 ID를 출력해요. 이 잠금 ID는 nonce 역할을 해서, 잠금과 잠금 해제가 올바른 잠금을 대상으로 하도록 보장해요.

더 알아보기 (Learn more)