[Terraform] workspace
์ธํ๋ผ๋ฅผ ๊ตฌ์ฑํ๋ค๋ณด๋ฉด, ํ๊ฒฝ๋ณ๋ก ๋์ผํ ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํด์ผํ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ ๋ง๋ค.
์๋ฅผ ๋ค์ด, ์ค๋ฌด์์๋ ํ๋ก๋์
๋ฒ์ ๊ณผ ๊ฐ๋ฐ ๋ฒ์ ์ ๋์ผํ ํํ๋ก ๋ณต์ ํด์ ๋์์ ๋์๋๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ธ๋ฐ, ์ด๋ฐ๊ฒ๋ ํ๋ค๋ณด๋ฉด ๊ด๋ฆฌ์ ์์ด ๊ฝค ๋ง์ด ๊ฐ๊ฒ ๋๋ค.
๊ทธ๋ผ terraform์์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น? ๊ทธ๋ฅ prod, dev, stage๋ณ๋ก github repository ํ๋์ฉ ๋ค ํ์ ๋์์ผ ํ ๊น? ๊ทธ๋ ์ง๋ ์๋ค.
terraform์ workspace ๋จ์๋ฅผ ํตํด์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
ํ๋์ terraform ๊ตฌ์ฑ์ ์ฌ๋ฌ๊ฐ์ workspace๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ํ๋์ ์ฝ๋๋ก ์ฌ๋ฌ๊ฐ์ง ํ๊ฒฝ์ ๋ถ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
๊ธฐ๋ณธ ๋ช ๋ น์ด
workspace๋ terraform cli์ workspace ์๋ธ์ปค๋งจ๋๋ฅผ ํตํด ์ ์ดํ ์ ์๋ค.

list ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ํฌ์คํ์ด์ค ๋ชฉ๋ก์ ์กฐํํ ์ ์๋๋ฐ
๋ณ๋ค๋ฅธ ์ค์ ์ ํ์ง ์์๋ค๋ฉด ๋ํดํธ๋ง ์์ ๊ฒ์ด๋ค.
workspace ์ถ๊ฐํ๊ธฐ
prod์ dev ๋ฒ์ ์ workspace๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ๋ค.
์ด๋ ต์ง ์๋ค. workspace new ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ๋ฐ๋ก ๋ง๋ค์ด์ง๋ค.

๊ทธ๋ผ ์ค์ ๋ก ์ํ๊ฐ์ ํด๋น workspace๋ค์ ๋๋ ํฐ๋ฆฌ๊ฐ ์๊ธฐ๊ณ

list๋ก๋ ์กฐํ๊ฐ ๋ ๊ฒ์ด๋ค.

workspace ๋ฐฐํฌํ๊ธฐ
workspace๋ฅผ ๊ทธ๋ฅ ๋ง๋ ๋ค๊ณ ํด์ ๋ฐ๋ก ๋จ๋๊ฑด ์๋๋ค.
๊ทธ๋ฅ ๊ทธ ์์ฒด๋ก๋ ํน์ ์ปจํ
์คํธ์ ์ญํ ๋ฐ์ ํ์ง ์๊ธฐ ๋๋ฌธ์, dev์ ๋ฐฐํฌ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด dev๋ก ์ ํํ ๋ค์์ apply๋ฅผ ๋๋ ค์ฃผ๋ฉด ๋๋ค.

์ฝ๋๋ ์ด๋ฐ์์ผ๋ก ์งฐ๋ค.
์ํฌ์คํ์ด์ค ์ปจํ
์คํธ๋ terraform.workspace๋ผ๋ ๊ฐ์ ํตํด ์ฃผ์
๋๋ค.
๊ทธ๋ผ ๊ทธ๋ฅ ๊ทธ ๊ฐ์ผ๋ก ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ด๋ฐ์์ผ๋ก ์ํฌ์คํ์ด์ค๋ณ๋ก ๋ค๋ฅธ ์ค์ ์ ์ฃผ๋๋ก ํ ์ ์๋ค.
์๋ฌดํผ apply๋ฅผ ํด๋ณด๋ฉด

๊ธฐ๋ํ๋๋ก ์ ๋ค์ด๊ฐ ๊ฒ์ด๋ค.

prod๋ ๋ฐฐํฌํ๊ณ ์ถ๋ค๋ฉด, prod๋ก ๋ฐฐํฌํ๊ณ apply๋ฅผ ๋ ๋ฆฌ๋ฉด ๋๋ค.

์ด๋ ๊ฒ