๋ฐ์ํ
CodeBuild์ด๋?
- CodeBuild๋ ์์ค์ฝ๋๋ฅผ ์ปดํ์ผํ๊ณ ํ
์คํธ๋ฅผ ์คํํ์ฌ ๋ฐฐํฌ ๊ฐ๋ฅํ ํจํค์ง๋ฅผ ๋ง๋ค์ด์ฃผ๋
์์ ๊ด๋ฆฌํ ๋น๋ ์๋น์ค
๋ก ๋ํ์ ์ธCI(Continuous Integration) ์๋น์ค
์ ๋๋ค. - CodeBuild๋ ๋น๋ ์์ฒญ์ด ์์ฑ๋๋ฉด ์ฆ์ ๋น๋๊ฐ ์์๋๊ณ , ๋น๋ ๋ณผ๋ฅจ์ ๋ฐ๋ผ ์ธํ๋ผ๊ฐ ์๋์ผ๋ก ํ์ฅ/์ถ์๊ฐ ๋ฉ๋๋ค.
CodeBuild์ ํน์ง
๋น๋ ํ๋ก์ ํธ(build project)
๋ ๋น๋๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ์ด๋ฉฐ ์์ค์ฝ๋ ์์น, ๋น๋ ํ๊ฒฝ, ์คํํ ๋น๋ ๋ช ๋ น, ๋น๋ ์ถ๋ ฅ๋ฌผ์ ์ ์ฅ ์์น๋ฑ์ ํฌํจํฉ๋๋ค.๋น๋ ์ํฐํฉํธ(build artifacts)
๋ ๋น๋์ ์ํด ์์ฑ๋ ํ์ผ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐํฌ ํจํค์ง, WAR ํ์ผ, ๋ก๊ทธํ์ผ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.๋น๋ ํ๊ฒฝ(build environment)
์ ์ด์์ฒด์ , ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐํ์๊ณผ CodeBuild๊ฐ ๋น๋์ ์ฌ์ฉํ๋ tool๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.- ๋น๋ ์ํฐํฉํธ๋ AWS KMS๋ฅผ ์ด์ฉํ์ฌ ์ํธํ ํ ์ ์์ผ๋ฉฐ, IAM ์ ์ฑ ์์ resource-level permissions(๋ฆฌ์์ค ์์ค ๊ถํ)์ ํตํด ๋น๋ ํ๋ก์ ํธ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
- ๋น๋ ๊ฒฐ๊ณผ๋ ์ฝ์๊ณผ CloudWatch, API๋ฅผ ํตํด ํ์ธ ํ ์ ์์ผ๋ฉฐ, ๋๋ฒ๊น ์ ์ํด์ ๋น๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ฑฐ๋ CodeBuild Local์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ํ ์คํธํ ์ ์์ต๋๋ค.
- ์์ค ๋ฆฌํฌ์งํ ๋ฆฌ๋ก CodeCommit, S3, ECR, Github, Bitbucket๋ฅผ ์ฌ์ฉ ํ ์ ์์ต๋๋ค.
- Java, Node.js, Python๊ณผ ๊ฐ์ ์ฌ์ ๊ตฌ์ฑ๋ ๋น๋ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , Docker image๋ฅผ ์ง์ ํ์ฌ ์ ์ ๋ง์ ๋น๋ ํ๊ฒฝ๋ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- CodePipeline, Jenkins์ ๊ฐ์ ํด๊ณผ ์ฐ๋ํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉํ ์ปดํจํ ๋ฆฌ์์ค์ ๋ํด ๋ถ๋จ์ ๊ณผ๊ธ์ด ์ด๋ฃจ์ด์ง๋๋ค.
BuildSpec(๋น๋ ์ฌ์)
BuildSpec
์ CodeBuild๊ฐ ๋น๋๋ฅผ ์คํํ๋๋ฐ ์ฌ์ฉํ๋ ๋น๋ ๊ด๋ จ ๋ช ๋ น๊ณผ ์ค์ ํ์ผ์ด๋ฉฐ 1๊ฐ์ ๋น๋ ํ๋ก์ ํธ์ ๋ํด 1๊ฐ์ Build Spec๋ง์ ์ง์ ํ ์ ์์ต๋๋ค.- Build Spec์ ์์ค์ฝ๋ ์์ ํฌํจ๋๊ฑฐ๋ ๋น๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ ์ ์ ํ ์ ์์ผ๋ฉฐ YAMLํ์์ ๋๋ค.
CodeBuild์ ๋์๋ฐฉ์
- ์ฝ์, CLI, SDK, CodePipeline๋ฅผ ์ฌ์ฉํ์ฌ CodeBuild๋ฅผ ์์ฑํ๊ณ ์ ๋ ฅ์ผ๋ก ๋น๋ํ๋ก์ ํธ๋ฅผ ๋ฃ์ด์ค๋๋ค.
- CodeBuild๊ฐ ๋น๋ํ๋ก์ ํธ์ ์ ์๋ ๋๋ก ๋น๋ ํ๊ฒฝ์ ๊ตฌ์ฑํ์ฌ ์์ ์ปดํจํ ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค.
- ์์ค์ฝ๋๋ฅผ ๋น๋ํ๊ฒฝ์ผ๋ก ๋ค์ด๋ก๋ํ ๋ค์ buildspec์ ์ ์๋ ๋ช ๋ น์ ์ํํฉ๋๋ค.
- ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ด ์๋ ๊ฒฝ์ฐ S3์ ์ ๋ก๋ํฉ๋๋ค. buildspec์ ๋ฐ๋ผ SNS ์ฃผ์ ์ ๋น๋ ์๋ฆผ ๋ณด๋ด๊ธฐ ๊ฐ์ ์์ ๋ ์ํ ํ ์ ์์ต๋๋ค.
- ๋น๋๊ฐ ์คํ๋๋ ๋์ ๋น๋ ํ๊ฒฝ์ CodeBuild ๋ฐ CloudWatch Logs์ ์ ๋ณด(information)์ ๋ณด๋ ๋๋ค.
- ๋น๋๊ฐ ์คํ๋๋ ๋์ ์ฝ์, CLI, SDK๋ฅผ ์ฌ์ฉํ์ฌ CodeBuild์์ ์์ฝ๋ ๋น๋ ์ ๋ณด๋ฅผ, CloudWatchLogs์์ ์์ธํ ๋น๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- CodePipeline์ ์ฌ์ฉํ์ฌ ์คํํ๋ ๊ฒฝ์ฐ CodePipeline์์ ํ๊ณ๊ฐ ์๋ ๋น๋ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ๋น๋๊ฐ ์๋ฃ๋๋ฉด ์ํฐํฉํธ๋ฅผ S3์ ์ ๋ก๋ํ๊ณ ์ปดํจํ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํฉ๋๋ค.
๋ฐ์ํ
'๐ AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] ALB์ ACM(AWS Certificate Manager) ์ ์ฉํ๊ธฐ (0) | 2022.08.12 |
---|---|
[AWS] AWS Python SDK Boto3 ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ (0) | 2022.05.24 |
[AWS] CodeCommit (0) | 2022.04.12 |
[AWS/CLI] describe-security-groups (0) | 2021.11.15 |
[AWS/CLI] start-instances / stop-instances (0) | 2021.10.27 |