'DevOps : Infrastructure as Code with ํ ๋ผํผ(Terraform) and AWS ์ด๊ธ, ์ ๋ฌธํธ'์ ๋ณด๊ณ ์์ฑํ์ต๋๋ค.
1. DevOps์ ์ดํด
๊ฐ๋
๋ฐ๋ธ์ต์ค๋ ํฉ์ฑ์ด : ์ํํธ์จ์ด ๊ฐ๋ฐ(Development) + ์ด์(Operations)
ํ์ฌ๋ ๋จ์ํ ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉ์ ์๋๊ณ , ๊ฐ๋ฐํ๊ณผ ์ด์ํ์ ๊ฐ๊ทน์ ์ค์ฌ๋๊ฐ๊ณ ์ ํ๋ ๊ฒ์ด ๋ฐ์ ํ์ฌ ์ํํธ์จ์ด ๊ฐ๋ฐ๊ณผ ์ฐ๋ฆฌ์ ์ผ์ ๊ดํ ํฌ๊ด์ ์ธ ์ฒ ํ๊ณผ ๋ฐฉ๋ฒ๋ก ์ด ๋์๋ค.
5๊ฐ์ง ์ฒ ํ
- ๋ฌธํ(Culture) : DevOps๋ฅผ ํตํด ํ๋์ ๋ฌธํ๋ฅผ ๋ง๋ค์ด ๋๊ฐ
ex) ์ฌ๋, ์ผ, ์๋น์ค, ์์, ์๊ฐ - ์๋ํ(Automation) : ์๋ํ๋ฅผ ํตํด ํจ์จ์ฑ๊ณผ ๋น ๋ฅธ ์๋๋ฅผ ์งํฅ
ex) ์ธํ๋ผ ๋ฐ ๋ณด์, ์ธ์ด ๋ฐ ๋๊ตฌ, ์ง์์ ํตํฉ / ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง - ์ธก์ (Measurement) : ์งํ๋ฅผ ์ธก์ ํ์ฌ ์ง์์ ์ผ๋ก ๊ฐ์
ex) ๋ณ๊ฒฝ์ฌํญ ๋ฐ์ ์ ํญ์ ์ธก์ , ์ฑ๋ฅ, ๊ฐ๋ฐ ์๋ ๋ชจ๋ํฐ๋ง, ๋์์ง๊ณ ์๋์ง ์๋์ง ์ธก์ , ์์ฌ๊ฒฐ์ฑ์ ์ถ์ธก์ด ์๋ ์์ธก๊ณผ ํ์ ์ผ๋ก ๋ง๋ฆ - ๊ณต์ (Sharing) : ๊ณต์ ๋ฅผ ํตํด ํจ๊ป ๋ฐ์
ex) ๊ตฌ์ฑ์ ๋ชจ๋๊ฐ ์ธ์ ๋ ์ ๊ทผ ๊ฐ๋ฅํ ํฌ๋ช ํ ๋ฐ์ดํฐ, ์ง์์ ๊ณต์ , ์ฐ๋ฆฌ์ ๋ฌธ์ - ํจ๊ป ํด๊ฒฐ, ์ผ์ ๊ฐ์๋ - ์ถ์ (File up & Pile up) : ๊ธฐ๋ก์ ์ถ์ ํ์ฌ ์์ฐ์ ๋ง๋ฆ
๋ฐ๋ผ์
๋ฐ๋ธ์ต์ค๋ ์ด๋ค ์๊ตฌ์ฌํญ์ ํจ์จ์ ์ผ๋ก ๋ง์กฑ์ํค๊ธฐ ์ํด ์ผ์ ์๋ํํ๋ฉฐ ๋ณ๊ฒฝ์ฌํญ ์งํ๋ค์ ์ธก์ ํ๊ณ , ๊ณต์ ํ๊ณ , ์ด ๋ชจ๋ ๊ฒฐ๊ณผ๋ฌผ๋ค์ ์ง์์ ์ผ๋ก ์ถ์ ํด ๋์๊ฐ๋ ๋ฌธํ๋ฅผ ๋ง๋ค์ด๊ฐ๋ ์ฒ ํ, ๋ฐฉ๋ฒ๋ก , ๊ธฐ์ ์ด๋ค.
ํ๋ ์๋น์ค๋ ๋๋ฌด๋๋ ๋ณต์กํ๊ณ ์๋ง์ ๋ณต์กํ ๋ฌธ์ ๋ค์ DevOps ์ฒ ํ๊ณผ ๋ฐฉ๋ฒ๋ก ์ผ๋ก ํ์ด๋๊ฐ ์ ์๋ค. → ์๋์ ํจ์จํ
2. DevOps ์์ง๋์ด์ ์ญํ
DevOps ์์ง๋์ด
์ฌ๋ฐ๋ฅธ DevOps ๋ฌธํ๋ฅผ ์ํด ์๋น์ค ํน์ S/W LifeCycle ์์ ๋ฐ๋ณต์ ์ธ ์ผ์ ์๋ํํ๊ณ , ๊ธฐ์ ์ ๋ฌธ์ ํน์ ํ์ ์ฐจ์ด๋ฅผ ๊ธฐ์ ์ ์ผ๋ก ์๋ฐฉํ๊ณ ํด์์ํค๋ ์ฌ๋
๊ฐ์ถฐ์ผํ ๊ธฐ์
- ์ํํธ ์คํฌ
์ฌํ ๊ธฐ์ , ์์ฌ ์ํต ๊ธฐ์ , ์ฑ๊ฒฉ ๋๋ ์ฑ๊ฒฉ ํน์ฑ, ์ง์ ์์ฑ, ์์ ์ธํ ๋ฆฌ์ ์ค ๋ฐ ๊ฐ์ฑ ์ธํ ๋ฆฌ์ ์ค ์ง์ ๋ฑ์ ์กฐํฉ์ผ๋ก ์ฌ๋๋ค์ด ํ๊ฒฝ์ ํ์ํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์ ์ผํ๋ ๋ฅ๋ ฅ์ ๋งํจ
ex) ๋ฌธ์ ๋ฅผ ์ธ์ํ๋ ๋ฅ๋ ฅ, ์ ํํ๊ฒ ์ ํ๊ณผ ์ง์ค์ ๊ตฌ๋ณํ๋ ๋ฅ๋ ฅ, ๊ฒฐ์ ๋ฐ ํ๋จ ๋ฅ๋ ฅ - ํ
ํฌ๋์ปฌ ์คํฌ
๊ธฐ์ ์ ์คํฌ์ ํน์ ํ ์ผ์ ํจ๊ณผ์ ์ผ๋ก ์ํํ๋ ์ง์๊ณผ ๋ฅ๋ ฅ์ ๋งํจ
ex) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์์ฑ ๋ฅ๋ ฅ, S/W ๋์์ธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์๋ฒ๊ด๋ฆฌ ๋ฑ ํน์ ํ ๊ธฐ์ ์ ์ง์๊ณผ ์ํ๋ฅ๋ ฅ
IaC(Infrastructure as Code, ์ฝ๋๋ก์จ์ ์ธํ๋ผ)
์ธํ๋ผ๋ฅผ ์ด๋ฃจ๋ ์๋ฒ, ๋ฏธ๋ค์จ์ด ๊ทธ๋ฆฌ๊ณ ์๋น์ค ๋ฑ, ์ธํ๋ผ ๊ตฌ์ฑ์์๋ค์ ์ฝ๋๋ก ํตํด ๊ตฌ์ถํ๋ ๊ฒ.
IaC๋ ์ฝ๋๋ก์จ์ ์ฅ์ , ์ฆ ์์ฑ์ฉ์ด์ฑ, ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด์ ๋ฑ์ ์ฅ์ ์ ๊ฐ์ง๋ค.
ํ ๋ผํผ
ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ IaC ๋๊ตฌ
ํ
๋ผํผ์ ์ธํ๋ผ๋ฅผ ๋ง๋ค๊ณ , ๋ณ๊ฒฝํ๊ณ , ๊ธฐ๋กํ๋ IaC๋ฅผ ์ํด ๋ง๋ค์ด์ง ๋๊ตฌ๋ก์จ, ๋ฌธ๋ฒ์ด ์ฌ์ ๋น๊ต์ ๋ค๋ฃจ๊ธฐ ์ฝ๊ณ ์ฌ์ฉ์๊ฐ ๋ง์ ์ฐธ๊ณ ํ ์ ์๋ ์์ ๊ฐ ๋ง๋ค.
.tf ํ์์ ํ์ผ ํ์์ ๊ฐ์ง๋ค.
AWS, Azure, GCP ๊ฐ์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ๋ฟ๋ง์๋๋ผ ๋ค์ํ ์๋น์ค๋ ์ง์ํ๋ค.
DevOps ๋ก๋๋งต
3. Terraform ๊ธฐ๋ณธ
๊ตฌ์ฑ์์
- provider : ํ ๋ผํผ์ผ๋ก ์์ฑํ ์ธํ๋ผ์ ์ข ๋ฅ
- resource : ํ ๋ผํผ์ผ๋ก ์ค์ ๋ก ์์ฑํ ์ธํ๋ผ ์์
- state : ํ
๋ผํผ์ ํตํด ์์ฑํ ์์์ ์ํ. ํ์ผ ํํ๋ก ๋จ๊ฒ ๋จ(ํ
๋ผํผ ์ฝ๋๋ฅผ ์คํํ ๊ฒฐ๊ณผ๋ฌผ .tfstate)
โ ์คํ ์ดํธ ํ์ผ๊ณผ ํ์ฌ ์ธํ๋ผ์ ์ํ๋ฅผ ๋๊ฐ์ด ์ ์งํ๋ ๊ฒ์ด ํคํฌ์ธํธ โ
ํ ๋ผํผ ์ฝ๋๋ฅผ ์์ฑํ ๋ฆฌ์์ค์ ๊ฒฐ๊ณผ๊ฐ์ผ ๋ฟ ์ธํ๋ผ์ ์ค์ ์ํ๋ ์๋ - output : ํ ๋ผํผ์ผ๋ก ๋ง๋ ์์์ ๋ณ์ ํํ๋ก state์ ์ ์ฅํ๋ ๊ฒ์ ์๋ฏธ
- module : ๊ณตํต์ ์ผ๋ก ํ์ฉํ ์ ์๋ ์ฝ๋๋ฅผ ๋ฌธ์ ๊ทธ๋๋ก ๋ชจ๋ ํํ๋ก ์ ์. ์ฌ์ฌ์ฉ์ ๊ฐ์ !!
ํ ๋ฒ ๋ง๋ค์ด์ง ํ ๋ผํผ ์ฝ๋๋ก ๊ฐ์ ํํ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋ง๋ค์ด๋ผ๋ ์ฃผ๋ก ์ฌ์ฉ๋จ - remote : ๋ค๋ฅธ ๊ฒฝ๋ก์ state๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ ๋งํจ. output ๋ณ์๋ฅผ ๋ถ๋ฌ์ฌ๋ ์ฃผ๋ก ์ฌ์ฉ
์๊ฒฉ ์ฐธ์กฐ ๊ฐ๋ ์ผ๋ก ์ดํดํ๋ฉด ์ข๋ค.
๊ธฐ๋ณธ ๋ช ๋ น์ด
- init : ํ
๋ผํผ ๋ช
๋ น์ด ์ฌ์ฉ์ ์ํด ๊ฐ์ข
์ค์ ์ ์งํ
์ต์ด์ ํ ๋ผํผ ๋ช ๋ น์ด๋ฅผ ์คํํ ๋ ํด์ผํจ - plan : ํ
๋ผํผ์ผ๋ก ์์ฑํ ์ฝ๋๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ๋ง๋ค์ด์ง์ง์ ๋ํ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค
์ค์ ๋ก ๊ฐ์ฅ ๋ง์ด ์ฐ์ - apply : ํ
๋ผํผ ์ฝ๋๋ก ์ค์ ์ธํ๋ผ๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด
์ค์ ์ธํ๋ผ์ ์ํฅ์ ๋ผ์น๋ ๋ช ๋ น์ด์ด๋ฏ๋ก ์ฃผ์๊น๊ฒ ์คํํด์ผ ํ๋ค.
apply ํ๊ธฐ ์ ์ plan ํ๋ ๊ฒ์ ์ต๊ดํ ํ๊ธธ ๋ฐ๋! - import : ์ด๋ฏธ ๋ง๋ค์ด์ง ์์์ ํ
๋ผํผ state ํ์ผ๋ก ์ฎ๊ฒจ์ฃผ๋ ๋ช
๋ น์ด
= ์ด๋ฏธ ๋ง๋ค์ด์ง ์์์ ์ฝ๋๋ก ๋ง๋ค๊ณ ์ถ์ ๋ ์ฌ์ฉํจ - state : ํ ๋ผํผ state๋ฅผ ๋ค๋ฃจ๋ ๋ช ๋ น์ด. ํ์ ๋ช ๋ น์ด๋ก mv, push์ ๊ฐ์ ๋ช ๋ น์ด๊ฐ ์๋ค.
- destroy : ์์ฑ๋ ์์๋ค์ state ํ์ผ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ์ญ์ ํ๋ ๋ช
๋ น์ด
= ๋ค์ ๋ง๋ค์ด์ผ์ง! ํ ๋ ์ฐ์
์ด๋ฐ์ ๋ง์ ๋ช ๋ น์ด๊ฐ ๋ง์ง๋ง ๊ธฐ๋ณธ ๋ช ๋ น์ด ์ต๋ ์ดํ์ ์์ํด๋ ๊ด์ฐฎ๋ค. ์ค์ ๋ก ๊ธฐ๋ณธ ๋ช ๋ น์ด์ ์ฌ์ฉ ๋น๋๊ฐ 90% ์ด์ ์ฐจ์งํจ
'๐ > DevOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด๋ผ์ฐ๋๋ฅผ ์ ์ดํ๋ API์ ๋์ ๋ฐฉ์ (0) | 2021.08.26 |
---|---|
[DevOps] ์ปจํ ์ด๋์ ์ดํด : ์ ์ปจํ ์ด๋๊ฐ ์ค์ํด์ก์๊น? (0) | 2021.08.03 |
๋๊ธ