์ธํ๋ผ๋ฅผ ๋ฐ๋ณต ๊ฐ๋ฅํ ํ
์คํธ ํ์์ ์ฝ๋๋ก ํํํ๋ ๊ฒ์ ์ฅ๋ฅผ ์กฐ์ํ ํ์๊ฐ ์๋ ์์คํ
์ ์ํ ๊ฐ๋จํ ๋ชจ๋ฒ ์ฌ๋ก์
๋๋ค. ์ด ๊ดํ์๋ ์ด๋ฆ์ด ์์ต๋๋ค.
Terraform ๋ฐ CloudFormation ๊ฒฝํ ๋น๊ต
์ค๊ธฐ ์ ์
ํ ๋ผํผ ๋์ฐํ
๋ฒ ํ ์ํํธ์จ์ด
Terraform์ ์์ง ๋ฒ์ 1.0๋ ์ถ์ํ์ง ์์์ผ๋ฏ๋ก ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฒ์ ์ ๊ฐ ์ง์ ํด๋ดค์ ๋์ ๋ง์ด ๋ฌ๋ผ์ก๋๋ฐ, ๊ทธ๋๋ terraform apply
์ฌ๋ฌ ๋ฒ์ ์
๋ฐ์ดํธ ํ์ ๋๋ ๋ช ๋
๋์ ์ฌ์ฉํ ํ์ ๊ณ ์ฅ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ง๊ธ์ ๋ชจ๋ ๊ฒ์ด ๋ฌ๋ผ์ก๋ค๊ณ ๋งํ๊ณ ์ถ์ง๋ง... ๋ค๋ค ๊ทธ๋ ๊ฒ ๋งํ๋ ๊ฒ ๊ฐ์ฃ ? ์ ์ ํ๊ธฐ๋ ํ์ง๋ง ์ด์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉฐ ์ฌ์ง์ด ๋ฆฌ์์ค ์ ์ฅ์์ ๊ตฌ๋ฌธ๊ณผ ์ถ์ํ๊ฐ ์ด์ ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ์
๊ธฐ๊ฐ ์ ๋ง ์ข์์ง ๊ฒ ๊ฐ๊ธด ํ๋ฐ... :-0
๋ฐ๋ฉด์ AWS๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์ ์งํด ์์ต๋๋ค. ์ด๋ ์๋ง๋ ํด๋น ์๋น์ค๊ฐ ์กฐ์ง ๋ด์์ ์ฒ ์ ํ๊ฒ ํ ์คํธ๋ ๋ค์ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์ด ๊ฒ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋์ โ๊ทธ๋ค์ ์ด์ฌํ ๋ ธ๋ ฅํ๋คโ๋ ๋ง์ ์ ์ ๋ ํํ์ ๋๋ค. AWS๋งํผ ๋ค์ํ๊ณ ๋ณต์กํ ์์คํ ์์ API์์ ํ์ ํธํ์ฑ์ ์ ์งํ๋ ๊ฒ์ ์์ฒญ๋๊ฒ ์ด๋ ต์ต๋๋ค. ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ณต์ฉ API๋ฅผ ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋ ์ฌ๋์ด๋ผ๋ฉด ์ค๋ ์ธ์ ๋์ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ด์ง ์ดํดํด์ผ ํฉ๋๋ค. ํ์ง๋ง ์ ๊ธฐ์ต์ผ๋ก๋ CloudFormation์ ๋์์ ์๋ ์ด ์ง๋๋ ํ ๋ฒ๋ ๋ณํ์ง ์์์ต๋๋ค.
๋ค๋ฆฌ๋ฅผ ๋ง๋... ์ด์์ด์ผ
๋ด๊ฐ ์๋ ํ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ์ธ์. ๋ฌธ์ธํ CF ์คํ์ CloudFormation ์คํ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. Terraform์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ธฐ์กด ๋ฆฌ์์ค๋ฅผ ์คํ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ธฐ๋ฅ์ ํ๋ฅญํ๋ค๊ณ ํ ์ ์์ง๋ง ํฐ ํ์๋ ํฐ ์ฑ ์์ด ๋ฐ๋ฅธ๋ค. ์คํ์ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋๋ฉฐ, ์คํ ์์ ์ค์๋ ์ด ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ ๋ ๊ทธ๊ฒ์ ์ญํจ๊ณผ๋ฅผ ๋์ต๋๋ค. ์ด๋ ๋ Twitch์์ ๋๊ตฐ๊ฐ๊ฐ ์๋ฌด๋ฐ ์ฅ๋๋ ํ์ง ์์ ์ฑ ์ค์๋ก ๋ค๋ฅธ ์ฌ๋์ AWS ๋ณด์ ๊ทธ๋ฃน์ ์์ ์ Terraform ์คํ์ผ๋ก ๊ฐ์ ธ์์ต๋๋ค. ์ฌ๋ฌ ๋ช ๋ น์ ์ ๋ ฅํ๋๋ฐ... ๋ณด์ ๊ทธ๋ฃน(์์ ํธ๋ํฝ๊ณผ ํจ๊ป)์ด ์ฌ๋ผ์ก์ต๋๋ค.
ํ ๋ผํผ ๊ทธ๋ ์ดํธ
๋ถ์์ ํ ์ํ์์ ๋ณต๊ตฌ
๋๋๋ก CloudFormation์ด ํ ์ํ์์ ๋ค๋ฅธ ์ํ๋ก ์์ ํ ์ ํ๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๋์์ ๊ทธ๋ ์ด์ ์ํ๋ก ๋์๊ฐ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ํญ์ ๊ฐ๋ฅํ์ง๋ ์๋ค๋ ๊ฒ์ด ์ ๊ฐ์ ๋๋ค. ๋์ค์ ๋ฐ์ํ ์ผ์ ๋๋ฒ๊น ํ๋ ๊ฒ์ ์๋นํ ๋ฌด์์ธ ์ ์์ต๋๋ค. CloudFormation์ด ํดํน๋นํ๋ค๋ ์ฌ์ค์ ๊ธฐ๋ปํ ์ง ์ฌ๋ถ๋ ์ ์ ์์ต๋๋ค. ๋จ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ด์ ์ํ๋ก ๋์๊ฐ ์ ์๋์ง ์ฌ๋ถ๋ ์ค์ ๋ก ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ช ์๊ฐ ๋์ ๊ธฐ์ ์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋งค๋ฌ๋ฆฝ๋๋ค.
๋ฐ๋ฉด์ Terraform์ ์คํจํ ์ ํ์ ํจ์ฌ ๋ ์ ์ ํ๊ฒ ๋ณต๊ตฌํ๋ ๊ฒฝํฅ์ด ์์ผ๋ฉฐ ๊ณ ๊ธ ๋๋ฒ๊น ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฌธ์ ์ํ์ ๋ํ ๋ ๋ช ํํ ๋ณ๊ฒฝ ์ฌํญ
โ์ข์์, ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๋ฐ๋๊ณ ์์ด์. ๊ทธ๋ฐ๋ฐ ์ด๋ป๊ฒ์?"
โ'์๋ฝ' ๋ฒํผ์ ๋๋ฅผ ์ค๋น๊ฐ ๋ ๋ถ์ํ ์์ง๋์ด.
๋๋ก๋ ํฌํธ ๋ฒํธ ์ถ๊ฐ, ๋ณด์ ๊ทธ๋ฃน ๋ณ๊ฒฝ ๋ฑ CloudFormation ์คํ์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์กฐ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ClouFormation์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ๋๋ก ํ์ํ์ง ์์ต๋๋ค. ๋๋ ํ์ํ ๊ฒ์ ์ง์ฐ์ง ์์๋์ง ๋ถํ์ํ ๊ฒ์ ์ถ๊ฐํ์ง ์์๋์ง ํ์ธํ๊ธฐ ์ํด yaml ํ์ผ์ XNUMX๋ฒ ๋ค์ ํ์ธํฉ๋๋ค.
์ด์ ๊ด๋ จํ์ฌ Terraform์ ํจ์ฌ ๋ ํฌ๋ช ํฉ๋๋ค. ๋๋๋ก ๊ทธ๋ ๋๋ฌด ํฌ๋ช ํ๊ธฐ๋ ํฉ๋๋ค(์ฝ๊ธฐ: ์ง๋ฃจํจ). ๋คํํ ์ต์ ๋ฒ์ ์๋ ๊ฐ์ ๋ ๋ณ๊ฒฝ ์ฌํญ ํ์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ด ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ํํ ํ์ธํ ์ ์์ต๋๋ค.
์ ์ฐ์ฑ
์ํํธ์จ์ด๋ฅผ ๊ฑฐ๊พธ๋ก ์์ฑํ์ธ์.
์ง์ค์ ์ผ๋ก ๋งํ๋ฉด, ์๋ช ์ด ๊ธด ์ํํธ์จ์ด์ ๊ฐ์ฅ ์ค์ํ ํน์ง์ ๋ณํ์ ์ ์ํ๋ ๋ฅ๋ ฅ์ ๋๋ค. ์ํํธ์จ์ด๋ฅผ ๊ฑฐ๊พธ๋ก ์์ฑํ์ญ์์ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ "๊ฐ๋จํ" ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ณ ๋ชจ๋ ๊ฒ์ ๋จ์ผ CloudFormation ๋๋ Terraform ์คํ์ ์ง์ด๋ฃ๊ธฐ ์์ํ์ฌ ์ค์๋ฅผ ์ ์ง๋ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก , ๋ช ๋ฌ ํ์ ์ ๊ฐ ๋ชจ๋ ๊ฒ์ ์๋ชป ์ดํดํ๋ค๋ ์ฌ์ค์ด ๋๋ฌ๋ฌ๊ณ , ์ค์ ๋ก ์๋น์ค๋ ๊ฐ๋จํ์ง ์์์ต๋๋ค! ์ด์ ์ด๋ป๊ฒ๋ ํฐ ์คํ์ ์์ ๊ตฌ์ฑ ์์๋ก ๋๋์ด์ผ ํฉ๋๋ค. CloudFormation์ผ๋ก ์์ ํ ๋ ๋จผ์ ๊ธฐ์กด ์คํ์ ๋ค์ ์์ฑํด์ผ๋ง ์ด ์์ ์ ์ํํ ์ ์์ผ๋ฉฐ, ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ์ด ์์ ์ ์ํํ์ง ์์ต๋๋ค. ๋ฐ๋ฉด์ Terraform์ ์ฌ์ฉํ๋ฉด ์คํ์ ๋ถํดํ๊ณ ๋ ์ดํดํ๊ธฐ ์ฌ์ด ์์ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
Git์ ๋ชจ๋
์ฌ๋ฌ ์คํ์์ Terraform ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ CloudFormation ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ์ฝ์ต๋๋ค. Terraform์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ git ์ ์ฅ์์ ๋ฐฐ์นํ๊ณ ์๋ฏธ ์ฒด๊ณ ๋ฒ์ ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด ์ ์ฅ์์ ์ก์ธ์คํ ์ ์๋ ์ฌ๋์ ๋๊ตฌ๋ ๊ณต์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. CloudFormation๊ณผ ๋๋ฑํ ๊ฒ์ S3์ด์ง๋ง ๋์ผํ ์ด์ ์ด ์์ผ๋ฉฐ S3๋ฅผ ์ํด git์ ํฌ๊ธฐํด์ผ ํ ์ด์ ๊ฐ ์ ํ ์์ต๋๋ค.
์กฐ์ง์ ์ฑ์ฅํ๊ณ ๊ณตํต ์คํ์ ๊ณต์ ํ๋ ๋ฅ๋ ฅ์ ์ค์ํ ์์ค์ ๋๋ฌํ์ต๋๋ค. Terraform์ ์ฌ์ฉํ๋ฉด ์ด ๋ชจ๋ ๊ฒ์ด ์ฝ๊ณ ์์ฐ์ค๋ฌ์์ง๋ ๋ฐ๋ฉด, CloudFormation์ ์ฌ์ฉํ๋ฉด ์ด์ ๊ฐ์ ์์ ์ ์ํํ๊ธฐ ์ ์ ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค.
์ฝ๋๋ก์์ ์์
"๋๋ณธ์ ์ฐ์. ์์์ด."
โTerraform ์์ ๊ฑฐ๋ฅผ ๋ฐ๋ช ํ๊ธฐ 3๋ ์ ์์ง๋์ด์์ต๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์ด Go๋ Java ํ๋ก๊ทธ๋จ์ ๋จ์ํ ์ฝ๋๊ฐ ์๋๋๋ค.
์ฝ๋๋ก์์ ์ฝ๋
๊ทธ๊ฒ์ด ์๋ํ๋ ์ธํ๋ผ๋ ์์ต๋๋ค.
์ฝ๋๋ก์์ ์ธํ๋ผ
๊ทธ๋ฐ๋ฐ ๊ทธ ์ฌ๋์ ์ด๋์ ์๋์? ์ด๋ป๊ฒ ๋ชจ๋ํฐ๋งํ๋์? ๊ทํ์ ์ฝ๋๋ ์ด๋์ ์์ต๋๊น? ๊ฐ๋ฐ์์๊ฒ ์ ๊ทผ ๊ถํ์ด ํ์ํ๊ฐ์?
์ฝ๋๋ก์์ ์์
์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ ๋๋ค๋ ๊ฒ์ ๋จ์ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์๋ฏธํ์ง ์์ต๋๋ค.
AWS๋ง์ด ์ ์ผํ ๊ฒ์ ์๋๋๋ค. ์๋ง๋ ๋ค๋ฅธ ๊ณต๊ธ์๋ฅผ ์ด์ฉํ ์๋ ์์ต๋๋ค. SignalFx, PagerDuty ๋๋ Github. CI/CD์ฉ ๋ด๋ถ Jenkins ์๋ฒ๊ฐ ์๊ฑฐ๋ ๋ชจ๋ํฐ๋ง์ฉ ๋ด๋ถ Grafana ๋์๋ณด๋๊ฐ โโ์์ ์ ์์ต๋๋ค. Infra as Code๋ ๋ค์ํ ์ด์ ๋ก ์ ํ๋์์ผ๋ฉฐ ๊ฐ๊ฐ์ ์ํํธ์จ์ด์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ ๋๊ฐ์ด ์ค์ํฉ๋๋ค.
์ ๊ฐ Twitch์์ ์ผํ ๋ Amazon์ ํผํฉ ์๋ฒ ๋๋ ์์คํ ๊ณผ AWS ์์คํ ๋ด์์ ์๋น์ค๋ฅผ ๊ฐ์ํํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋๋ ์์ฐํ๊ณ ์ง์ํ์ฌ ์ด์ ๋น์ฉ์ ๋๋ ธ์ต๋๋ค. ํ ๋ก ์ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋์์ต๋๋ค.
- ะฏ: ์ ์ฅ, ํ๋์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ค๋ฒํด๋ญํ๋ ค๋ฉด ๋๋ฌด ๋ง์ ๋์์ด ํ์ํฉ๋๋ค. AWS ๊ณ์ ์ ๋ง๋ค๋ ค๋ฉด ์ด ์ฐ๋ ๊ธฐ๋ฅผ ์ฌ์ฉํด์ผ ํ ๊ฒ์ ๋๋ค(์ฐ๋ฆฌ๋ 2๊ฐ์ ๊ณ์ ์ผ๋ก ์ด๋ํ์ต๋๋ค) ๋ง์ดํฌ๋ก์๋น์ค), ์๋ฆผ ์ค์ ์ฉ, ์ฝ๋ ์ ์ฅ์์ฉ, ์ด๋ฉ์ผ ๋ชฉ๋ก์ฉ, ๊ทธ๋ฆฌ๊ณ โฆ
- ์ ๋: ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
- ะฏ: ์ข์ต๋๋ค. ํ์ง๋ง ์คํฌ๋ฆฝํธ ์์ฒด๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ด์ฅ๋ Amazon ์ฅ์น๊ฐ ๋ชจ๋ ์ต์ ์ํ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
- ์ ๋: ์ข์ ๊ฒ ๊ฐ์์. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค.
- ะฏ: ์์ฒญ๋! ๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฝํธ๋ ์ฌ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํด์ผ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ทธ๊ฒ์ ๋ฐ์๋ค์ผ๊น์?
- ์ ๋: ๊ทธ๊ฐ ๊ฐ๋ ๊ณณ์ผ๋ก ๋ฐ๋ ค๊ฐ๋๋ก ํด์ฃผ์ธ์!
- ะฏ: ํ๋ก์ธ์ค๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฉฐ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ์์ค๋ฉ๋๋ค. ์ผ์ข ์ ์๋ฏธ๋ก ์ ๋ฒ์ ์ ์ด๊ฐ ํ์ํฉ๋๋ค.
- ์ ๋: ์ข์ ์๊ฐ์ด์์!
- ะฏ: ๋๊ตฌ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ด์์ ์๋์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํ์ธํ๊ณ ์์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
...3๋ ํ:
- ์ ๋: ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ํ ๋ผํผ์ ์ป์์ต๋๋ค.
์ด์ผ๊ธฐ์ ๊ตํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์๋ง์กด์ ๋ชจ๋ ๊ฒ์์ ๋จธ๋ฆฌ๋ฅผ ์์ด์ธ์, ์ฌ์ ํ AWS๊ฐ ์๋ ๊ฒ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด๋ฌํ ์๋น์ค์๋ ๊ตฌ์ฑ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ํ๋ฅผ ๋๊ธฐํํ๋ ์ํ๊ฐ ์์ต๋๋ค.
CloudFormation ๋๋ค์ git ๋ชจ๋ terraform
๋๋ค๋ ์ฌ์ฉ์ ์ง์ ๋
ผ๋ฆฌ ๋ฌธ์ ์ ๋ํ CloudFormation์ ์๋ฃจ์
์
๋๋ค. ๋๋ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์์
์ ์ํํ ์ ์์ต๋๋ค.
ํด๋์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ์ฌ Elastic Beanstalk ํ๊ฒฝ์ ์ํ ์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ฅผ ์์ฑํ๊ณ ์ถ์๋ ๊ธฐ์ต์ด ๋ฉ๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ํ๋ก๋์
ํ๊ฒฝ ์์ EB์ ๋ํ ๋ ๋ฒ์งธ ๋ฐฐํฌ๋ฅผ ๋ง๋ค๊ณ ํ ๋จ๊ณ ๋ ๋์๊ฐ ์๋ ํ์ฅ ์นด๋๋ฆฌ์ ๋ฐฐํฌ ๊ทธ๋ฃน๊ณผ ๋ฐฐํฌ LB๋ฅผ ํ๋ก๋์
ํ๊ฒฝ์ ๊ฒฐํฉํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ Terraform์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
๋๋ฆฌํํธ๋ฅผ ๋ ์ ๊ฐ์งํฉ๋๋ค.
ํ์ค์ด ๊ธฐ๋์ ์ผ์นํ๋์ง ํ์ธํ์ธ์.
Terraform์ ์ฌ์ฉํ๋ฉด ๋๋ฆฌํํธ ๊ฐ์ง๋ฅผ ์ํ ํจ์ฌ ๋ ๋ฐ์ ๋ ์๋ช
์ฃผ๊ธฐ ํํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ๋ช
๋ น์ ์
๋ ฅํฉ๋๋ค.
CDK์ CloudFormation์ ๋ฏธ๋
CloudFormation์ ๋๊ท๋ชจ ์ธํ๋ผ ๊ฐ ๊ท๋ชจ์์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด๋ฌํ ์ด๋ ค์ ์ค ๋ง์ ๋ถ๋ถ์ด ์ธ์๋๊ณ ๋๊ตฌ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ด ํ์ํฉ๋๋ค.
Terraform์ด ์ค๋งํ์ง ์๋๋ก
์ด๊ฒ์ "ํ ์คํธ"๊ฐ ์๋ "์ฝ๋๋ก์์ ์ธํ๋ผ"์ ๋๋ค.
Terraform์ ๋ํ ๋์ ์ฒซ์ธ์์ ๋ค์ ๋๋นด์ต๋๋ค. ๋๋ ์ ๊ทผ ๋ฐฉ์์ ์ดํดํ์ง ๋ชปํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ์์ง๋์ด๋ ์ด๋ฅผ ์ํ๋ ์ธํ๋ผ๋ก ๋ณํํด์ผ ํ๋ ํ ์คํธ ํ์์ผ๋ก ๋ฌด์์์ ์ผ๋ก ์ธ์ํฉ๋๋ค. ์ด๋ฐ ์์ผ๋ก ํ์ง ๋ง์ญ์์ค.
์ข์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์น์ Terraform์๋ ์ ์ฉ๋ฉ๋๋ค.
์ข์ ์ฝ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฑํ๋ ๋ง์ ๊ดํ์ด Terraform์์ ๋ฌด์๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ๋น์ ์ ์ข์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ธฐ ์ํด ์๋ ๊ฐ ๊ณต๋ถํ์ต๋๋ค. ๋จ์ง Terraform์ผ๋ก ์์ ํ๊ณ ์๋ค๋ ์ด์ ๋ง์ผ๋ก ์ด ๊ฒฝํ์ ํฌ๊ธฐํ์ง ๋ง์ธ์. ์ข์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์น์ Terraform์๋ ์ ์ฉ๋ฉ๋๋ค.
์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ฌธ์ํํ ์ ์๋์?
๋ฌธ์๊ฐ ์ ํ ์๋ ๊ฑฐ๋ํ Terraform ์คํ์ ๋ณธ ์ ์ด ์์ต๋๋ค. ๋ฌธ์๊ฐ ์ ํ ์์ด ์ด๋ป๊ฒ ํ์ด์ง ๋จ์๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๊น? ์ค๋ช ํ๋ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ธ์. ์ํธ Terraform('์ฝ๋'๋ผ๋ ๋จ์ด ๊ฐ์กฐ), ์ด ์น์ ์ด ์ค์ํ ์ด์ ๋ฐ ์ํํ๋ ์์
ํ๋ ํ๋์ ํฐ main() ๊ธฐ๋ฅ์ด์๋ ์๋น์ค๋ฅผ ์ด๋ป๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๊น?
์ ๋ ๋งค์ฐ ๋ณต์กํ Terraform ์คํ์ด ๋จ์ผ ๋ชจ๋๋ก ์ ๊ณต๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ํํธ์จ์ด๋ฅผ ๋ฐฐํฌํ๋ฉด ์ด๋จ๊น์? ์ ํฐ ๊ธฐ๋ฅ์ ๋ ์์ ๊ธฐ๋ฅ์ผ๋ก ๋ถํ ํฉ๋๊น? Terraform์๋ ๋์ผํ ๋ต๋ณ์ด ์ ์ฉ๋ฉ๋๋ค. ๋ชจ๋์ด ๋๋ฌด ํฌ๋ฉด ๋ ์์ ๋ชจ๋๋ก ๋๋์ด์ผ ํฉ๋๋ค.
๋น์ ์ ํ์ฌ๋ ๋์๊ด์ ์ฌ์ฉํ์ง ์์ต๋๊น?
๋๋ ์์ง๋์ด๋ค์ด Terraform์ ์ฌ์ฉํ์ฌ ์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์ด๋ฆฌ์๊ฒ๋ ๋ค๋ฅธ ํ๋ก์ ํธ์ ๊ฑฐ๋ํ ๋ฉ์ด๋ฆฌ๋ฅผ ์์ ์ ํ๋ก์ ํธ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ ๋ฃ์ ๋ค์ ์์
์ด ์์๋ ๋๊น์ง ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์์ต๋๋ค. ๋น์ ์ ํ์ฌ์์๋ "์ ํฌ" ์ฝ๋๋ก ์ด๋ฐ ์ผ์ ํ์๊ฒ ์ต๋๊น? ์ฐ๋ฆฌ๋ ๋์๊ด๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋๋ค. ์,
PEP8์ด๋ gofmt๋ฅผ ์ฌ์ฉํ๊ณ ์์ง ์์ต๋๊น?
๋๋ถ๋ถ์ ์ธ์ด์๋ ํ์ฉ๋๋ ํ์ค ํ์ ์ฒด๊ณ๊ฐ ์์ต๋๋ค. Python์์๋ PEP8์
๋๋ค. In Go - gofmt. Terraform์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณ ์ ํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. terraform fmt
. ๊ฑด๊ฐ์ ์ํด ์ฆ๊ฒจ๋ณด์ธ์!
JavaScript๋ฅผ ๋ชจ๋ฅด๊ณ React๋ฅผ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
Terraform ๋ชจ๋์ ์์ฑํ๋ ๋ณต์กํ ์ธํ๋ผ์ ์ผ๋ถ๋ฅผ ๋จ์ํํ ์ ์์ง๋ง ์ด๊ฒ์ด ์ ํ ๋ค๋ฃฐ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๋ฆฌ์์ค๋ฅผ ์ดํดํ์ง ์๊ณ ๋ Terraform์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ณ ์ถ์ผ์ญ๋๊น? ๋น์ ์ ์ด๋ช ์ ์ ํ์ต๋๋ค. ์๊ฐ์ ํ๋ฅด๊ณ ๊ฒฐ์ฝ Terraform์ ๋ง์คํฐํ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
์ฑ๊ธํค์ด๋ ์ข ์์ฑ ์ฃผ์ ์ ์ฌ์ฉํ์ฌ ์ฝ๋ฉํ๊ณ ์๋์?
์ข ์์ฑ ์ฃผ์ ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ธ์ ๋ฐ๋ ๋ชจ๋ฒ ์ฌ๋ก์ด๋ฉฐ ์ฑ๊ธํค๋ณด๋ค ์ ํธ๋ฉ๋๋ค. ์ด๊ฒ์ด Terraform์์ ์ด๋ป๊ฒ ์ ์ฉํฉ๋๊น? ์๊ฒฉ ์ํ์ ์์กดํ๋ Terraform ๋ชจ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์๊ฒฉ ์ํ๋ฅผ ๊ฒ์ํ๋ ๋ชจ๋์ ์์ฑํ๋ ๋์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋์ ์์ฑํ์ธ์. ๊ทธ๋ฐ ๋ค์ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ๋ชจ๋์ ์ ๋ฌํฉ๋๋ค.
๊ทํ์ ๋์๊ด์ ์ด ๊ฐ์ง ์ผ์ ์ ์ํํฉ๋๊น, ์๋๋ฉด ํ ๊ฐ์ง ํ๋ฅญํ ์ผ์ ์ํํฉ๋๊น?
๊ฐ์ฅ ์ ์๋ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ ์ด ๋งค์ฐ ์ ์ํํ๋ ํ๋์ ์์ ์ ์ง์คํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ ํ ๋ฒ์ ์ํํ๋ ค๊ณ ํ๋ ๋๊ท๋ชจ Terraform ๋ชจ๋์ ์์ฑํ๋ ๋์ ํ ๊ฐ์ง ์์ ์ ์ ์ํํ๋ ๋ถ๋ถ์ ๋น๋ํ์ธ์. ๊ทธ๋ฐ ๋ค์ ํ์์ ๋ฐ๋ผ ๊ฒฐํฉํ์ญ์์ค.
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ์์ด ์ด๋ป๊ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํฉ๋๊น?
์ผ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ผ๋ฐ์ ์ธ Terraform ๋ชจ๋์ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์์ผ๋ฉด์ ์ด๋ป๊ฒ๋ ์ฌ์ฉ์์๊ฒ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋ฌํด์ผ ํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฌํ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ๋ ์ฑ๊ฐ์ ์ผ์ด๋ฉฐ, Terraform ๋ชจ๋์์ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฑ๊ฐ์ ์ผ์ ๋๋ค. Terraform ๋ชจ๋์ ์ฌ์ฉํ ๋๋ git ํ๊ทธ์ semver๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทํ์ ํ๋ก๋์ ์๋น์ค๊ฐ ๋ ธํธ๋ถ์์ ์คํ๋๊ณ ์์ต๋๊น, ์๋๋ฉด ๋ฐ์ดํฐ ์ผํฐ์์ ์คํ๋๊ณ ์์ต๋๊น?
Hashicorp์๋ ๋ค์๊ณผ ๊ฐ์ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
ํ ์คํธ๋ฅผ ์์ฑํ์ง ์์ต๋๊น?
์์ง๋์ด๋ ์ฝ๋๋ฅผ ํ ์คํธํด์ผ ํ๋ค๋ ๊ฒ์ ์ธ์ํ์ง๋ง Terraform์ผ๋ก ์์ ํ ๋ ํ ์คํธ๋ฅผ ์์ด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ธํ๋ผ์ ๊ฒฝ์ฐ ์ด๋ ์ํํ ์๊ฐ์ผ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค. ์ ๊ฐ ์กฐ์ธํ๋ ๊ฒ์ CI/CD ์ค์ ํ ์คํธ๋ฅผ ์ํด ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์๋ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์คํ์ "ํ ์คํธ"ํ๊ฑฐ๋ "์์ ์์ฑ"ํ๋ผ๋ ๊ฒ์ ๋๋ค.
Terraform ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค
๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ์ ์ ์์ฌ๋ ์๋ก์ด ๋ง์ดํฌ๋ก์๋น์ค ์ํฌ์คํ์ ์๋, ํ์ , ์ค๋จ์ ๋ฌ๋ ค ์์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ์ ๊ด๋ จ๋์ด ์ ๊ฑฐํ ์ ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ถ์ ์ ์ธ ์ธก๋ฉด์ ์ฝ๋๊ฐ ์๋ ์์
๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. Terraform์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ์ ์ธํ๋ผ ์ธก๋ฉด๋ง ์๋ํํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ง ์๊ฐํ๋ค๋ฉด ์์คํ
์ ์ง์ ํ ์ด์ ์ ๋์น๊ณ ์๋ ๊ฒ์
๋๋ค. ์ด์ ๋ ์ด๋ฏธ
์ถ์ฒ : habr.com