일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Cloud Architect
- CICD
- 데이터 엔지니어링
- 쿠버네티스
- ou
- 신뢰정책
- CloudWatch
- AWS
- 클라우드 아키텍트
- 로드밸런서
- IAM
- 배포자동화
- Appconfig
- gitlab-runner
- 데이터브릭스
- 한국데이터산업진흥원
- personlize
- 자격증
- controltower
- cloudtrail
- 권한정책
- 컨텍스트스위칭
- CodeDeploy
- ci/cd
- Kubernetes
- CNS
- CodePipeline
- CodeBuild
- 데이터분석준전문가
- CKA
- Today
- Total
개발일기
[AWS] CodePipeline으로 배포 자동화(CI/CD)하기 본문
CodePipeline 프로세스는 Source→Build→Test→Deploy 4단계의 Stage로 구성되며 Build와 Test는 CodeBuild로 구성 할 수 있습니다. 소스코드를 업로드하고→빌드하여→테스트 해보고→실제로 배포하기 까지 일련의 과정은 스테이지 간에 산출물(Artifact)이 공유되며 순차적으로 이루어집니다. 오늘은 그 구성에 대해 설명드리겠습니다.
1. Source 스테이지 설정
S3 또는 git 저장소가 선택될 수 있습니다. git 저장소의 경우 push로 배포를 트리거 할 수 있으며, S3의 경우 CodePipeline의 S3 모니터링 기능으로 자동 배포를 가능하게 합니다.
2. Build 및 Test 스테이지 설정 (CodeBuild)
Dockerfile, buildspec.yml이 포함된 소스코드의 압축본을 S3에 저장하고, CodeBuild Template을 활용하여 빌드합니다. 빌드 작업의 종속성 여부에 따라 순차적으로 실행할 수도 있고, 병렬 작업으로 실행할 수도 있습니다. Docker를 사용하여 Build 하는 경우 별도의 도커 저장소(ecr, docker hub 등)를 사용하기 때문에 S3에 아티팩트를 물리적으로 저장해 둘 필요가 없습니다.
3. Deploy 스테이지 설정 (CodeDeploy)
CodeDeploy에서 정의해둔 Application 또는 배포 그룹을 선택합니다. 배포 대상의 EC2/온프레미스 서버에는 CodeDeploy Agent 가 설치돼 있어야 합니다. Agent는 소스코드 루트 디렉토리에 위치한 appspec.yml 파일을 참고하여 배포를 진행합니다. appspec.yml에 배포 과정에서 설치·트래픽 허용 전후로 실행할 쉘 스크립트(.sh) 경로를 hook으로 설정 할 수 있습니다. 쉘 스크립트는 CodeDeploy와 서버(Agent)의 443번 포트가 Outbond 통신하며 실행됩니다. (Lambda 함수 배포에는 Agent가 필요하지 않습니다.)
🐾 요약
CodePipeline은 4단계 스테이지로 진행되며, CodeBuild와 CodeDeploy가 스테이지로써 역할 할 수 있습니다. 스테이지 간 산출물은 아티팩트로 공유 됩니다.
'클라우드 > AWS' 카테고리의 다른 글
[AWS] IAM 신뢰정책과 권한정책 알아보기 (1) | 2024.07.29 |
---|---|
[AWS] CodeBuild로 코드 빌드하기 (1) | 2024.07.22 |
[AWS] Control Tower으로 조직 관리 자동화하기 (0) | 2024.07.21 |
[AWS] CloudWatch, AppConfig, CloudTrail으로 AWS 로그 모니터링 하기 (1) | 2024.07.20 |
[AWS] ec2로 nginx서버 호스팅하기 (4) | 2024.07.20 |