Terraform Basic ์ ๋ฆฌ
Terraform์ด๋?
Terraform์ ์ฝ๋๋ก ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ์ด๋ค. ์ ์ฌํ ๋๊ตฌ๋ก๋ AWS์ CloudFormation์ด ์๋๋ฐ, AWS์ ์น์ค๋ CloudFormation๊ณผ ๋ค๋ฅด๊ฒ Terraform์ ์คํ์์ค(?)๋ก Azure ๋ฑ ๋ค์ํ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค๋ ์ฅ์ ์ด ์๋ค.
ํ ๋ผํผ์ ์๋์ ๊ฐ์ ํน์ง์ด ์๋ค.
- immutable(๋ถ๋ณ): ์ผ๋ฐ์ ์ธ ์ํฉ์์๋ ํ๋ฒ ๋ฐฐํฌ๋ ๋ฆฌ์์ค๋ ์์ ํ ์ ์๋ค. ๋ค๋ง, ์ธ์คํด์ค ํ์
๋ฑ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์์ฑํ์ง ์๊ณ ์์ ํ ์ ์๋ค.
- ์ด์ง ์ฃผ์ ๋ฅผ ๋ฒ์ด๋ฌ์ง๋ง, EC2์ ๊ฒฝ์ฐ ์ธ์คํด์ค ํ์ ์ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ, ์คํ ๋ฆฌ์ง๋ ์ ์ง๋๋, ๋ฉ๋ชจ๋ฆฌ๋ ๋ ์๊ฐ๋ค. - ๊ทธ๋์ ๋์ผํ ์๋น์ค๋ฅผ ์งํํ๋ ๋ค์ดํ์์ด ์๊ธด๋ค.)
- declarative(์ ์ธํ): C์ธ์ด์ ๊ฐ์ด ๋ช ๋ นํ์ผ๋ก ์์ฑํ๋ ๊ฒ์ด ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ๋ฏ ๊ตฌ์ฒด์ ์ธ ํน์ฑ์ ์ ์ํจ.
- State file: ๋ฆฌ์์ค์ ๋ํ ์ํ๋ฅผ ๋ณด๊ดํ๋ ํ์ผ์ด๋ค. ID ๊ฐ์ ํตํด ์ํ๋ฅผ ๋ณด๊ดํ๋ฉฐ, state ํ์ผ์ ๊ทธ๋๋ก ์๋ ๋ฐ ์์๋ก ํด๋ผ์ฐ๋์์ ๋ฆฌ์์ค์ ๋ํ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ฆฌ์์ค๋ฅผ ์ถ์ ํ ์ ์์ด, Terraform์ด ์ ๋๋ก ์๋ํ์ง ์๋๋ค.
- Backends ๋ธ๋ญ์ ํตํด ์ํ๋ฅผ ์๊ฒฉ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค. VCS์ ์ปค๋ฐํ๊ณ Terraform ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
- modules: ์ฌ์ฌ์ฉ๊ฐ๋ฅํ ๋ชจ๋์ ์ง์ํ๋ฉฐ, Terraform Registry์ ๊ณต๊ฐ์ ์ผ๋ก ๋ชจ๋์ ์ ๋ก๋ํ ์ ์๊ณ ํ์์ฝํ๊ฐ ๊ฒ์ฆ๋ ์งํํ๋ค.
๊ตฌ์ฑ์์
Terraform์ ํฌ๊ฒ ํ ๋ผํผ ์ฝ๋๋ฅผ ์คํํ๋ Terraform Core(CLI)์ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์์ ๊ด๋ จ๋ Plugins(Provider, Provisioner)์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
์ด์ธ์๋ Terraform ๋ชจ๋์ ๊ณต์ ํ๋ ์ ์ฅ์์ธ Registry, ํ์ฌ ์ธํ๋ผ์ ์ํ๋ฅผ ๊ด๋ฆฌํ์ฌ ์ธํ๋ผ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ ํ ์ ์๋ State ํ์ผ ๋ฑ์ด ์ถ๊ฐ์ ์ผ๋ก ์กด์ฌํ๋ค.
What is IaC?
Iac(infrastructre as Code)
์ฝ๋๋ฅผ ํตํด ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๊ณ ํ๋ก๋น์ ๋(Code๋ฅผ ํตํด ์ธํ๋ผ๋ฅผ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ )ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
ํ ๋ผํผ์ IaC๋๊ตฌ๋ก ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
- HashiCorp(ํ์์ฝ๋)์์ ์ ์ํ ์คํ์์ค Iac
- Declarative(์ ์ธํ) : ์ํ๋ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์ ์.
- ๋ถ๋ณ : ์ธํ๋ผ๊ฐ ๋ฐฐํฌ๋ ํ, ์
๋ฐ์ดํธ๊ฐ ์๋ ์ฌ์์ฑ ๋ฐ ๊ต์ฒด
- ๋ช๊ฐ์ง ํน์ฑ์ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅ ex) EC2 ์ธ์คํด์ค ํ์ , ํ์ง๋ง ๋ฆฌ์์ค๋ ์ด๊ธฐํ๋๋ค.
- Golang
- API๋ก ๋ชจ๋ ํญ๋ชฉ ๊ด๋ฆฌ
์ฅ์
์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ ์ฌ๋ฌ ํด, ์ฌ์ฌ์ฉ์ฑ์ ๊ฐ์
Git ๊ณผ ๊ฐ์ ํ์ ๊ด๋ฆฌ์ ์ฐ๋ํ์ฌ(ํ์ง๋ง, ๊น์ ์ ์ฅํ์ง ์๊ณ ๋ณ๋์ registry๋ฅผ ํตํด ๊ด๋ฆฌํ๋ค.), ๋ณ๊ฒฝ ์ด๋ ฅ์ ๋จ๊ฒจ ๋ฌธ์ ์์ธ์ ํ์ ํ๊ธฐ ์ฝ๋ค.
ํ ๋ผํผ ๋ฌธ์์์๋ ์๋์ ๊ฐ์ด ์ธํ๋ผ ๋ผ์ดํ์ฌ์ดํด์ ์ ์ํ๋ค.
Day 0 : ์ด๊ธฐ ์ธํ๋ผ๋ฅผ ํ๋ก๋น์ ๋ ํ๋ค.
Day 1 : OS ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์ ์๋ฃํ๋ค.
Day 1 ~ Day N : ๊ตฌ์ฑ ๊ด๋ฆฌ๋ฅผ ์งํํ๋ค. (Chef, Ansible, Docker ์ ๊ฐ์ ๋๊ตฌ๋ฅผ Terraform์์ ์ฌ์ฉํ ์ ์๋ค.)
์ถ๊ฐ์ ์ผ๋ก, ์์ ์ฌ์ดํธ์์๋ ๋ค์๊ณผ ๊ฐ์ ์์์ ์ ๊ณตํ๋ค. ์์ด์ด๊ณ , ์ค๋ณต๋ ๋ด์ฉ์ด ๋ง์ ์ง์ ์๊ฐํ์ง ์๊ณ Summarize๋ฅผ ํตํด ์์ฝํ๋ค.
CTO๊ฐ Terraform ์๊ฐ๋ฅผ ์งํํ ์ ํ๋ธ๋ฅผ summarize๋ฅผ ํตํด ์์ฝํ ๊ฒฐ๊ณผ์ด๋ค.
> ๐ก **ํ ๋ผํผ ์๊ฐ** > Terraform์ ์ฌ์ฉ์๊ฐ ๊ฐ๋จํ๊ณ ์ฌ๋์ด ์ฝ์ ์ ์๋ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ๋ฅผ ์ ์ธ์ ์ผ๋ก ์ ์ํ ์ ์๋๋ก ํจ์ผ๋ก์จ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. Terraform์ ์ ์ฉ ๋จ๊ณ๋ ์ค์ ํ๊ฒฝ์ ๋ํด ๊ณํ์ ์คํํ์ฌ ์ฑ๊ณต์ ์ธ ์คํ์ ์ํด ์ข ์์ฑ์ด ์ฌ๋ฐ๋ฅธ ์์๋ก ์ ์๋์๋์ง ํ์ธํฉ๋๋ค. **Terraform ์ฌ์ฉ์ ์ฅ์ ์ ์ธํ๋ผ ์ํ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ์ฌ ๋์งธ ๋ ์์ ์ ์ฒซ์งธ ๋ ๊ณผ ๋์ผํ๊ฒ ์ํํ๊ฒ ์ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.** > > ์ธ๋ถ์์ ๊ด๋ฆฌ๋๋ ์๋น์ค๋ฅผ ํฌํจํ์ฌ ์ด๋ฌํ ๋ค์ํ ์์๋ค์ด ๋ชจ๋ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ์์คํ ์ ๋ค์ํ ๊ตฌ์ฑ ์์๋ฅผ ๊ด๋ฆฌํ๊ณ ํตํฉํ๋ ์ด์ฒด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ค์์ฑ์ ๊ฐ์กฐํ๋ ๊ฒ์ด Terraform ์์ฑ์์ ๊ด์ ์ ๋๋ค. > > ํ ๋ผํผ์ ์ฌ์ฉํ๋ ์ํฌํ๋ก๋ ํ ๋ผํผ ๊ตฌ์ฑ์ ์์ฑํ๊ณ , ๊ณํ์ ์คํํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ ๋ค์, ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๊ฒ์ผ๋ก ์์ํ์ฌ ์ธํ๋ผ ๊ด๋ฆฌ์ ์ง์์ ์ธ ์ฃผ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค. > > Terraform์ ์ค์ ์ง์ค์ ์ํ ๊ด๋ฆฌ๋ ๋ฆฌ์์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ก๋น์ ๋ ๋ฐ ์๋ฉธ๋๋๋ก ๋ณด์ฅํ์ฌ ์ถฉ๋๊ณผ ์ํ ํ์ผ ๋ถ์ฐ์ ๋ฐฉ์งํ๋ ๋ฐ ํ์์ ์ ๋๋ค. > > Terraform์ ๋ชจ๋์ VM, ๋๋ค ํจ์, ์ปจํ ์ด๋์ ๊ฐ์ ๋ค์ํ ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ์ฌ ๋ณต์ก์ฑ์ ์บก์ํํ๊ณ ์๋น์์๊ฒ ๊ฐ์ํ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ ๊ณตํ ์ ์์ต๋๋ค. > > Google ๋ฐ Azure์ ๊ฐ์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ ๋คํธ์ํฌ ๋ฐ ์ธํ๋ผ ํ๋ก๋น์ ๋์ ๋ํ ๊ณต์ ๊ถ์ฅ ์ฌํญ์ ๊ฒ์ํ์ฌ Terraform ๋ ์ง์คํธ๋ฆฌ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋์ ๋๋ค. Terraform์ ์ฌ์ฉ์๊ฐ ๊ฐ๋จํ๊ณ ์ฌ๋์ด ์ฝ์ ์ ์๋ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ธํ๋ผ๋ฅผ ์ ์ธ์ ์ผ๋ก ์ ์ํ ์ ์๋๋ก ํจ์ผ๋ก์จ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. Terraform์ ์ ์ฉ ๋จ๊ณ๋ ์ค์ ํ๊ฒฝ์ ๋ํด ๊ณํ์ ์คํํ์ฌ ์ฑ๊ณต์ ์ธ ์คํ์ ์ํด ์ข ์์ฑ์ด ์ฌ๋ฐ๋ฅธ ์์๋ก ์ ์๋์๋์ง ํ์ธํฉ๋๋ค. **Terraform ์ฌ์ฉ์ ์ฅ์ ์ ์ธํ๋ผ ์ํ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ์ฌ ๋์งธ ๋ ์์ ์ ์ฒซ์งธ ๋ ๊ณผ ๋์ผํ๊ฒ ์ํํ๊ฒ ์ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.** ์ธ๋ถ์์ ๊ด๋ฆฌ๋๋ ์๋น์ค๋ฅผ ํฌํจํ์ฌ ์ด๋ฌํ ๋ค์ํ ์์๋ค์ด ๋ชจ๋ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ์์คํ ์ ๋ค์ํ ๊ตฌ์ฑ ์์๋ฅผ ๊ด๋ฆฌํ๊ณ ํตํฉํ๋ ์ด์ฒด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ค์์ฑ์ ๊ฐ์กฐํ๋ ๊ฒ์ด Terraform ์์ฑ์์ ๊ด์ ์ ๋๋ค. ํ ๋ผํผ์ ์ฌ์ฉํ๋ ์ํฌํ๋ก๋ ํ ๋ผํผ ๊ตฌ์ฑ์ ์์ฑํ๊ณ , ๊ณํ์ ์คํํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ ๋ค์, ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๊ฒ์ผ๋ก ์์ํ์ฌ ์ธํ๋ผ ๊ด๋ฆฌ์ ์ง์์ ์ธ ์ฃผ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค. Terraform์ ์ค์ ์ง์ค์ ์ํ ๊ด๋ฆฌ๋ ๋ฆฌ์์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ก๋น์ ๋ ๋ฐ ์๋ฉธ๋๋๋ก ๋ณด์ฅํ์ฌ ์ถฉ๋๊ณผ ์ํ ํ์ผ ๋ถ์ฐ์ ๋ฐฉ์งํ๋ ๋ฐ ํ์์ ์ ๋๋ค. Terraform์ ๋ชจ๋์ VM, ๋๋ค ํจ์, ์ปจํ ์ด๋์ ๊ฐ์ ๋ค์ํ ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ์ฌ ๋ณต์ก์ฑ์ ์บก์ํํ๊ณ ์๋น์์๊ฒ ๊ฐ์ํ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ ๊ณตํ ์ ์์ต๋๋ค. Google ๋ฐ Azure์ ๊ฐ์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ ๋คํธ์ํฌ ๋ฐ ์ธํ๋ผ ํ๋ก๋น์ ๋์ ๋ํ ๊ณต์ ๊ถ์ฅ ์ฌํญ์ ๊ฒ์ํ์ฌ Terraform ๋ ์ง์คํธ๋ฆฌ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋์ ๋๋ค.์ํคํ ์ฒ
ํ ๋ผํผ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํฌ๊ฒ Terraform core, Terraform Plugins ์ผ๋ก ๋๋๋ค. Terraform Core๋ ์๊ฒฉ ํ๋ก์์ ํธ์ถ(RPC)์ ์ฌ์ฉํ์ฌ ํ๋ฌ๊ทธ์ธ๊ณผ ํต์ ํ๋ฉฐ, ํ๋ฌ๊ทธ์ธ(ํ๋ก๋ฐ์ด๋)๋ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ํด๋ผ์ฐ๋ API๋ฅผ ํธ์ถํ๋ค.
Terraform Core(CLI)
Terraform ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ผ๋ก, CLI ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ๋๋ ํ๋ก๊ทธ๋จ์ด๋ค. ์ด๊ฒ์ ์ฌ์ฉ์๊ฐ ์์ฑํ Terraform ์ฝ๋๋ฅผ ์ฝ๊ณ , ํด๋น ์ฝ๋์ ๊ธฐ์ ๋ ๋ฆฌ์์ค๋ฅผ ์์ฑ, ์์ , ๋๋ ์ญ์ ํด์ผ ํ๋์ง ํ๋จํ์ฌ, ํ์์ ๋ฐ๋ผ ํ๋ฌ๊ทธ์ธ์ ํตํด ํ๋ซํผ์ API๋ฅผ ํธ์ถํ๋ค.
Terraform Plugins
RPC๋ฅผ ํตํด Terraform Core์์ ํ๋ฌ๊ทธ์ธ์ ํธ์ถํ๋ค. ๊ฐ ํ๋ฌ๊ทธ์ธ์ AWS์ ๊ฐ์ ํน์ ํ๋ซํผ์ ๋ํ API ๋ฑ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, Core๊ฐ ์์ฒญํ ์์ (์์ฑ, ์ญ์ , ์์ )์ ์ํํ ์ ์๋ค. ํ๋ฌ๊ทธ์ธ์ โํ๋ก๋ฐ์ด๋โ๋ผ๋ ํํ๋ก ์ ๊ณต๋๋ค. โInit ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ํ ํ๋ฌ๊ทธ์ธ์ ๊ฒ์ํ๊ณ ๋ค์ด๋ก๋ํ๋ค.โ
์ฌ์ฉ์์
Multi-Cloud Deployment
ํ๋ฒ์ ๋ค์ํ ์ ๊ณต์(ํด๋ผ์ฐ๋)์ ๋ฐฐํฌํ ์ ์๋ค.
- ๋ค์ค ํด๋ผ์ฐ๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฐฐํฌํ๊ธฐ(eks & aks)
- consul๊ณผ mesh gateway๋ฅผ ํตํด ๋ ๋ ๋ฆฝ์ ์ธ ํด๋ฌ์คํฐ๋ฅผ ์ฐ๊ฒฐํ๋ค.? ๊ด๋ จ ๋ด์ฉ์ ๊ณต๋ถํด์ผ ํ ๊ฒ ๊ฐ๋ค.
Application Infrastructure Deployment, Scaling, and Monitoring Tools
๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ๋ํ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๊ณ , ๊ณ์ธต๊ฐ์ ์ข ์์ฑ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค. ์๋ฅผ ๋ค๋ฉด, Terraform์ DB Tier๋ฅผ ๋ฐฐํฌ ํ ์น ์๋ฒ(์ ํ๋ฆฌ์ผ์ด์ ํฐ์ด)๋ฅผ ๋ฐฐํฌํ๋ค.
- Datadog๋ฅผ ํตํ ๋ชจ๋ํฐ๋ง ์๋ํ
- ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐ ์นด๋๋ฆฌ ๋ฐฐํฌ์ ์ ํ๋ฆฌ์ผ์ด์
๋ก๋๋ฐธ๋ฐ์ ์ฌ์ฉํ๊ธฐ
- ๋คํธ์ํน ๋ฆฌ์์ค(VPC, ๋ณด์ ๊ทธ๋ฃน, ๋ก๋ ๋ฐธ๋ฐ์)์ ์น ์๋ฒ๋ฅผ Blue ํ๊ฒฝ์ผ๋ก ํ๋ก๋น์ ๋ํฉ๋๋ค.
- Green ํ๊ฒฝ์ผ๋ก ์ฌ์ฉํ ๋ ๋ฒ์งธ ์น ์๋ฒ ์ธํธ๋ฅผ ํ๋ก๋น์ ๋ํฉ๋๋ค.
- Terraform ๊ตฌ์ฑ์ ๊ธฐ๋ฅ ํ ๊ธ์ ์ถ๊ฐํ์ฌ ์ ์ฌ์ ์ธ ๋ฐฐํฌ ์ ๋ต์ ์ ์ํ๊ณ , ๊ธฐ๋ฅ ํ ๊ธ์ ์ฌ์ฉํ์ฌ ์นด๋๋ฆฌ์ ํ ์คํธ๋ฅผ ์ํํ๊ณ Green ํ๊ฒฝ์ผ๋ก ์ ์ง์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
Self-Service Clusters
๋๊ท๋ชจ์ ์กฐ์ง์์๋ ๋ฐ๋ณต์ ์ธ ์ธํ๋ผ ์์ฒญ์ ๋ฐ์ ์ ์๋ค. ๊ทธ๋ ๊ธฐ์ ํ ๋ผํผ์์ โself-serveโ ๋ชจ๋ธ์ ๊ตฌ์ถํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ด๋ Terraform ๋ชจ๋์ ํตํด ๋ง๋ค ์ ์๋ค. ๋ํ, Terraform Cloud๋ฅผ ์ฌ์ฉํ์ฌ ServiceNow์ ๊ฐ์ ํฐ์ผ ์์คํ ๊ณผ ์ฐ๋ํ ์ ์๋ค.
Policy Compliance and Management
๋ฆฌ์์ค์ ๋ํ ์ ์ฑ ์ ํ ๋ผํผ์ ํตํด ๊ด๋ฆฌํ ์ ์๋ค. Sentienl์ ์ฌ์ฉํ์ฌ ํ ๋ผํผ์ด ์ธํ๋ผ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ ๊ท์ ์ค์ ๋ฐ ๊ฑฐ๋ฒ๋์ค ์ ์ฑ ์ ์๋์ผ๋ก ์คํํ ์ ์๋ค. Sentinel์ ์ ๋ฃ์ด๋ค.(Terraform Cloud or ๊ฑฐ๋ฒ๋์ค ํฐ์ด๋ง ๊ฐ๋ฅ)
Software Defined Networking
ํ ๋ผํผ์ ํตํด Network ์๋ํ๋ฅผ ์งํํ ์ ์๋ค. Consul์ ์ฐ๊ฒฐํ์ฌ ์๋น์ค ์ํ ๋ฐ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ธ Consul-Terraform-Sync์ ์ํด ์ํ๋๋ค.
์๋์ ๊ฐ์ ์ํคํ ์ฒ๋ก Consul์์ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ์ ์ํ๋ฉด ํ ๋ผํผ์ด ์๋์ ์ผ๋ก ์ธ์ํ๊ณ , ์ธํ๋ผ ์ ๊ณต์(Route 53๋ฑ๋ฑ)์ ํ๋ก๋น์ ๋ํ๋ ๊ตฌ์กฐ์ธ ๊ฒ ๊ฐ๋ค.
Kubernetes
ํ ๋ผํผ์์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๊ณ , ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค. ์๋น์ค, ํ๋ ๋ฑ ๋ฆฌ์์ค๋ฅผ ๋ฐฐํฌํ ์ ์๋ ๊ฒ์ ์ฒ์ ์์๋ค.
Parallel Environments
์ด๋์ ๋ ๊ท๋ชจ๊ฐ ์๋ ์กฐ์ง์์๋ Dev, Staging, Prod ๋ฑ ๊ฐ์ ํ๊ฒฝ์ด์ง๋ง, ๋ณ๋๋ก ๊ตฌ์ฑํด์ผ ํ๋ค. ์ด๋ฐ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๊ณ ์ ์งํ๋ ๊ฒ์ ์ ์ ๋ ์ด๋ ค์์ง๋ฉฐ ํ ๋ผํผ์ ํตํด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ํนํ Workspace๊ธฐ๋ฅ์ ํตํด ๊ฐ์ ์ฝ๋๋ฅผ ๊ฐ ์ํฌ์คํ์ด์ค๋ง๋ค ๋ถ๋ฆฌํ์ฌ ๊ตฌ์ฑ๊ฐ๋ฅํ๋ค.