AWS CodeDeploy

TopOfTheHead·2026년 1월 8일

클라우드 / AWS

목록 보기
19/38

AWS CodeDeploy
Amazon EC2, AWS Lambda 등 다양한 복수의 VM에서 어플리케이션 배포자동화무중단 배포를 가능하게하는 서비스
▶ 수동으로 EC2 인스턴스서버에 접속해서 배포를 할 필요 없이 AWS CodeDeploy를 통해 CD를 구현하여 배포자동화무중단 배포

CodeDeploy Agent를 활용
▶ 사전에 Outbound 443이 열려있어야하며, CodeDeploy 서비스로 접근이 가능해야함.

S3, Github, Bitbucket 등의 Source로부터 배포를 받아서 EC2 인스턴스배포를 대리로 수행
Github Actions를 통한 CI/CD 구현시에서 주로 활용

  • CodeDeploy 구성

    Application :
    CodeDeploy의 구분단위
    EC2 / On-Premise, Lmabda, ECS 등의 플랫폼을 지원

    배포 그룹 :
    배포 대상을 묶은 그룹
    Application( ex. EC2 / On-Premise 어플리케이션 )의 종류에 따라 다른 구성을 적용하는 용도

    그룹 별로 별도로 트리거, 롤백 등의 설정가능

  • CodeDeploy의 롤백
    배포에 실패하거나 사용자에 의한 롤백 기능 존재

    자동 롤백 : CloudWatch Alarm으로 트리거되어 특정 임계치가 넘는 경우 이전 버전으로 롤백

    수동 롤백 : 수동으로 롤백

AppSpec.yml
CodeDeploy에서 수행할 내용을 정의하는 yml문서
배포 방식, 각 Stage 별 수행내용 정의

AWS CodeDeploy무중단 배포 전략
무중단배포 : downtime이 없음.

In-Place, Rolling, Blue/Green, Canary

EC2 인스턴스 / On-Premise 방식 :
In-Place, Blue Green

ECS / Lambda :
Canary, Blue Green

  • In-Place , Rolling 배포방식
    컴퓨팅 자원의 업데이트 비율에 따라 All-At-Once, Half-At-A-Time, One-At-A-Time가 존재.
    • In-Place 배포방식 :

      인프라 교체없이 기존 인프라배포SW업데이트하여 프로비저닝
      ▶ 기존 배포중인 EC2에 새로운 SW를 업데이트하여 다시 배포

      。기존의 인프라를 그대로 재활용하므로 빠른 특징이 존재

    • Rolling 배포방식

      。점진적으로 기존 인프라를 제거 및 새로운 인프라로 업데이트된 SW를 추가하여 교체하면서 프로비저닝하는 방식
      ▶ 배포중인 기존 EC2를 삭제 및 새로운 EC2SW를 업데이트하여 배포


  • Blue / Green 배포 방식


    。기존 단위 클러스터( = Blue ) 내 컴퓨팅자원들을 완전히 별도의 새로운 클러스터 ( Green )로 한번에 프로비전트래픽을 교체하는 방식

    Green을 충분히 테스트할 수 있으며 Green에 문제 발생 시 BlueRollback도 안정적으로 수행가능

    트래픽 중단을 최소화 할 수 있음.

    。동시에 BlueGreen인프라를 모두 유지하므로 비용이 많이 발생하는 단점이 존재

  • Canary 배포 방식
    Blue/Green 배포에서 일정비율로 트래픽 전환을 수행하면서 클러스터를 점진적으로 교체하는 방식
    ▶ 일정 비율의 트래픽을 점진적으로 전환하면서 에러 발생 시 다시 초기상태로 Rollback하여 안정성 향상

    X-Percent-Every-N-Minute : 분당 몇퍼센트 비율로 교체

    Green으로 한번에 트래픽을 전환하는 Blue/Green 배포 방식보다 안정적이나 배포에 오랜 시간이 소요되는 단점이 존재
     
profile
공부기록 블로그

0개의 댓글