์ค๋์ AWS์ CodeDeploy์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค.
CodeDeploy๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ์ฐ์ , CD๊ฐ ๋ญ์ง ์์์ผํ๋ค.
๋ฌผ๋ก ํด๋น ํค์๋๋ฅผ ํตํด ๊ฒ์์ผ๋ก ๋ค์ด์จ ์ฌ๋๋ค์ CD๊ฐ ๋ฌด์จ ๊ฐ๋ ์ธ์ง ์๊ณ ์๊ฒ ์ง๋ง, ๊ทธ๋๋ ๊ทธ๋ ์ง ์์ ์ฌ๋๋ค์ด ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๊น ์ง๊ณ ๋์ด๊ฐ๋ ค ํ๋ค.
CI CD๋?
CI CD ๋ผ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ ์ฝ๋์ ํ์ง์ ์ํ ํ ์คํ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ง์์ ์ผ๋ก ์ํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ์ ๋ปํ๋ค.
CI CD๋ฅผ ์๋ํ์๋ ์ฐ์ด ๊น์๋ฐ, CI CD ์์ฒด๋ก๋ง ๋ณด๋ฉด ์ง์์ ์ธ ๋ฌด์ธ๊ฐ๋ฅผ ์ํํ๋ ์ง์์ฑ๊ณผ ๊ด๋ จ์ด ์๋ค.
์๋๋ ํ๋์ ํ ์คํธ ๋ฐ ๋น๋ ๊ทธ๋ฆฌ๊ณ ๋ฐฐํฌ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์์ ๊ณผ์ ์ผ๋ก ๋๋๋ ๊ฒ์ ์ด์ผ๊ธฐ ํ๋ค.
์ข ๋ ์ธ๋ถ์ ์ผ๋ก ์ด์ผ๊ธฐ ํด๋ณด์.
Continuous Integration CI
์ฐ์ CI๊ฐ ๋ํ๋๊ฒ ๋ ๋ฐฐ๊ฒฝ์ ์๊ฐํด๋ณด์.
์์ ์ ์๋ง์กด์ด ๊ฐ๋ฐ์ ํ ๋, ๋น๋๋ฅผ ํ ๋ฒ ํ๋ฉด ํ๋์ ๊ฑฐ๋ํ ์ฝ๋๋ฅผ ๋น๋ํ๊ธฐ ๋๋ฌธ์ ๋น๋ ์๊ฐ์ด 18์๊ฐ์ด๋ ๊ฑธ๋ ธ๋ค๊ณ ํ๋ค.
๊ทธ๋์ ์ด๊ฑธ ์ค์ด๊ธฐ ์ํด ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ฅผ ๋์
ํ๋๋ฑ ๋ค์ํ ์๋๋ฅผ ํ๋ฉฐ ํจ๊ป ์๋ํ ๊ฒ์ด CI ๊ฐ๋
์ด๋ผ๊ณ ํ๋ค.
์์์ ๋ง ํ๋ฏ, ๋น๋๋ฅผ ์ฌ๋ฌ๋ฒ์ ๋๋ ์ ํ๋ค๋ ์ปจ์
์ผ๋ก ํ ๊ธฐ๋ฅ ํน์ ํน์ง์ด ๊ฐ๋ฐ๋๋ฉด ๋ฐ๋ก ๋ฐ๋ก ํตํฉ์ ์ง์์ ์ผ๋ก ์ํํ๊ณ ํตํฉ์ด ๋๊ธฐ ์ํ ํ
์คํธ๋ฅผ ํจ๊ป ์ํํด์ ์ฝ๋์ ์ ์ฒด์ ์ธ ํ์ผ์ ์ ์ง ํน์ ํฅ์์ํค๋ ๊ฒ์ด๋ค.
Continuous Deploy CD
์ํํธ์จ์ด๊ฐ ํญ์ ์ ๋ขฐ๋ ์ ์๋ ์์ค์์ ๋ฐฐํฌ๋ ์ ์๋๋ก ์ง์์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฐ๋ ์ด๋ค.
์์ CI๋ก ํ ์คํธ์ ๋น๋์ ์ํด์ ํ์ง์ด ๋ณด์ฆ๋์๊ณ , ๋ณด์ฆ๋ ์ ํ์ ์ค์ ์๋น์ค๋ก Continuousํ๊ฒ ๋ฐฐํฌํ๋ค๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
CI ํ๋ก์ธ์ค๋ฅผ ํตํด์ ์ง์์ ์ผ๋ก ๋น๋์ ํ ์คํธ ํ๊ณ , ํต๊ณผํ ์ฝ๋๋ฅผ ๋ฐฐํฌ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก CI์ ์ฐ์ฅ์ ์์ด๋ผ๊ณ ๋ ํ๋ค.
์ด ๋์ ์ ๋ฆฌํ์๋ฉด
CI = ๋น๋ ๋ฐ ํ
์คํธ ์๋ํ
CD = ๋ฐฐํฌ ์๋ํ
์ฏค์ผ๋ก ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ด์ ์ค๋์ ํต์ฌ์ธ CodeDeploy์ ๋ํด์ ์์ ๋ณด์.
CodeDeploy
Amazon EC2, AWS Fargate, AWS Lambda์ ๊ฐ์ ์๋น์ค์์ CD๋ฅผ ์ ๊ณตํ๋ AWS ์๋น์ค์ด๋ค.
์? ์ฐ๋ฆฐ ์์์ CI์ CD๋ฅผ ํจ๊ป ๋ดค๋๋ฐ, ์๋ CD๋ง ์ ๊ณตํ๋ค๊ณ ?
๋ง๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ CI ๋๊ตฌ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์๋ฐ, ์๋์ ๊ฐ์ ํด๋ค๊ณผ ํจ๊ป ์ด์ฉํ ์ ์๋ค๊ณ ํ๋ฉฐ ๊ฐ๊ฐ์ ๋งค๋ด์ผ์ด AWS ๊ณต์ ํํ์ด์ง์ ๋์์๋ค.
๊ฒฐ๊ตญ CodeDeploy๋ ๋ฐฐํฌํ ๋ ์๊ธฐ๋ ๋ถํ์ํ ๋ฐ๋ณต ์์ ๊ณผ ์ธ๊ฐ์ ์ค์๋ฅผ ์ค์ด๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค.
์ฅ์
CodeDeploy ๋ฅผ ์ฌ์ฉํ๋ฉด, ํน์ CD ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ช ๊ฐ์ง์ ์ฅ์ ์ด ์๋๋ฐ, ์๋์ ๋์จ ๊ฒ๋ค์ ๊ณต์์ ์ผ๋ก AWS์์ ๋ฐ๊ณ ์๋ ์ฅ์ ์ด๋ค.
- ๋ฐฐํฌ ์๋ํ
- ๊ฐ๋ ์ค์ง ์๊ฐ ์ต์ํ
- ์ค์ ์ง์ค์ ์ ์ด
- ์ฌ์ด ๋์
๋ฐฐํฌ ์๋ํ
CodeDeploy๋ CD ๋๊ตฌ์ด๋ฉฐ CD๋ ์์์ ๋ง ํ๋ฏ ๋ฐฐํฌ ์๋ํ๋ผ๊ณ ์๊ฐํด๋ ๋ฌด๋ฐฉํ๋ค๊ณ ํ๋ค.
์ฐ๋ฆฌ๊ฐ Travis๋ Jenkins, AWS CodePipeline ํน์ Github Action์ ์ด์ฉํด์ CI ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค๋ฉด, CI์์ ๋์ด์จ ์ฝ๋๋ ํ์ง ๊ฒ์ฆ ๋๋ ์ฝ๋๋ง ๋์ด์ฌ ๊ฒ์ด๋ค.
๊ทธ๋ผ ๋ฐฐํฌ๋ฅผ ์์ ์๋ํ ํด์ ํ ๋ฒ ์ฑ๊ณตํ๋ค๋ฉด ๊ทธ ๋ค์์ ์ฑ๊ณต์ ๋ณด์ฅํ๋ค๋ ๋ง์ด๊ณ ์ด๋ ๊ณง ์ฅ์ ์ด ๋๋ค.
๊ฐ๋ ์ค์ง ์๊ฐ ์ต์ํ
AWS ์๋น์ค๋ฅผ ์ด์ฉํ๋ค๋ฉด ๋ฐฐํฌ ํ๋ก์ธ์ค ์๊ฐ๋์ App์ ๊ฐ์ฉ์ฑ์ ์ต๋ํ ํ๋๋ก ์ง์ํ๊ณ App ์ํ๋ฅผ ์ถ์ ํ ์ ์๋ค.
๋ฐฐํฌ์ ๋ฐฉ๋ฒ์ค์๋ Rolling, Blue-Green, Canary, In-Place Upate ์ ๊ฐ์ด ๋ค์ํ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋๋ฐ, AWS CodeDeploy๋ฅผ ์ด์ฉํ๋ค
๋ฉด ์ด๋ฐ ๋ฐฐํฌ ๊ธฐ๋ฒ๋ค์ ๋ ์ฝ๊ณ ์์ ํ๊ฒ ์ด์ฉํ ์ ์๋ค๊ณ ํ๋ค.
์ค์ ์ง์ค์ ์ ์ด
AWS Management Console์ด๋ AWS CLI๋ก ์ฝ๊ฒ ๋ฐฐํฌ๋ฅผ ์ถ์ ํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฆฌ๋
์ค์ ์ค์นํ๋ค๋ฉด /var/aws/codedeploy/ ์ ๋ก๊ทธ๊ฐ ์ ์ฅ๋์ด์ error tracing์ ํ ์ ์๋ค.
์ด๋ฐ ์ฅ์ ๋ค ๋๋ถ์ ์ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ํํ ์ ์๋ค๋ ํน์ง์ด๋ค.
์ฌ์ด ๋์
์ฌ์ค ์ด๊ฑด ๋ฐฐ์ฐ๋ ์ ์ฅ์์ ์ ๋ชจ๋ฅด๊ฒ ๋ค..
CodeDeploy๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ CI CD ๊ฐ๋ ์ด ํ๋ฆฝ๋์ง ์์๋ ๋๋ผ, ์ด๋ ค์ ๋ค. ํ์ง๋ง AWS ์์ ๋ง ํ๋๊ฒ CodeDeploy๋ ํ๋ซํผ์ด๋ ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ๋ค ์ฐ๊ฒฐ ๊ฐ๋ฅํด์ ์ฝ๊ณ ๋์ผํ ๋ฐฐํฌํ๊ฒฝ์ ์ ๊ณตํ๋ค๊ณ ํ๋ค.
๋๊ธ