[Terraform] lifecycle
lifecycle์ terraform์์ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์กฐ๊ฑด ์คํ์ ์ฌ์ฉ๋๋ ํน์ํ ๊ตฌ๋ฌธ์ด๋ค.
์ด๋ฐ์์ผ๋ก lifecycle ๋ธ๋ญ์ ์ด๊ณ ์ค์ ํ ๊ฐ๋ค์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
๋ด๊ฐ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉํ ๊ฒ์ ignore_changes์ธ๋ฐ
์ด๊ฑด ํน์ ์์ฑ๊ฐ์ ์์ฑ์์๋ง ์ ์ฉํ๊ณ , ์ดํ์๋ ๋ฐ๋๋๋ผ๋ ์์ ํ์ง ์๊ฒ ๋ฌด์ํด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.
ํนํ ์ด๋ฐ blue-green ๊ตฌ์ฑ์ ์ฉ์ดํ๋ค.
๋ฆฌ์ค๋๊ฐ blue๋ฅผ ๊ฐ๋ฆฌํฌ์ง green์ ๊ฐ๋ฆฌํฌ์ง๋ ๋ฐฐํฌํ ๋๋ง๋ค ๋ฌ๋ผ์ง๋๋ฐ, ์ด๊ฑธ terraform ์ฝ๋์์ ๋ค ๋ฐ์์ค ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ignore_changes๋ฅผ ํตํด์ ์ด๊ธฐ๊ฐ์ผ๋ก ๊ณ ์ ๋๋๋ก ์ค์ ํ๋ค.
์ด์ธ์๋ create_before_destroy, prevent_destroy, replace_triggered_by ๋ฑ์ ๊ตฌ๋ฌธ์ด ์ ๊ณต๋๋๋ฐ, ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ ๋๊ฐ ์ด๋ ๋ค.
create_before_destroy: true/false ๊ฐ๋ง ๋ค์ด๊ฐ๋ค.
์ด๊ฑธ ํ์ฑํํ๋ฉด ์์ ํด๋ ์ญ์ ->์ฌ์์ฑ์ด ๋๋ ๋ฆฌ์์ค์ธ ๊ฒฝ์ฐ์ ์ฌ์์ฑ์ ์ญ์ ๋ณด๋ค ๋จผ์ ํ๊ฒ ํด์ค๋ค.
prevent_destroy: true/false
์ด๊ฑธ ํ์ฑํํ๋ฉด, ์ด๊ฑธ ์ญ์ ํ๋ ค๋ ์๋๊ฐ ๋ฐ์ํ ๋ ์ค๋ฅ๋ฅผ ๋์ฐ๋ฉฐ ์ค๋จํ๋ค. ๋ฏผ๊ฐํ ๋ฆฌ์์ค์ ๋ฌ๋ฉด ๋๋ค.
replace_triggered_by: ignore_changes์ ๋น์ทํ๊ฒ ์์ฑ ๋ชฉ๋ก์ ๋ฐฐ์ด๋ก ๋ฐ๋๋ค.
์ด๊ฑธ๋ก ์ฐธ์กฐ๋ ์์ฑ์ด ๋ณ๊ฒฝ๋๋ฉด, ๊ทธ๋ฅ ์์ ์ด ์๋๋ผ ๋ฆฌ์์ค ๋จ์๋ก ์ญ์ -์ฌ์์ฑ์ ํด์ ๊ต์ฒดํ๋ค.
์ฌ์ค ignore_changes ๋ง๊ณ ๋ ์ธ์ผ์ด ๋ง์ง๋ ์๋ค.
์ฐธ์กฐ
https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle