AWS CodeDeploy 기능

CodeDeploy를 선택해야 하는 이유

AWS CodeDeploy는 Amazon Elastic Compute Cloud(Amazon EC2), AWS Fargate, AWS Lambda 및 온프레미스 인스턴스를 비롯하여 다양한 컴퓨팅 서비스에 대한 애플리케이션 배포를 자동화하는 서비스입니다. CodeDeploy에서 애플리케이션 배포를 완전히 자동화하므로 수동 작업이 필요하지 않습니다. CodeDeploy는 단계적 업데이트와 배포 상태 추적을 통해 배포하는 동안 애플리케이션 가동이 중지되지 않도록 합니다. CodeDeploy는 AWS Management Console, AWS Command Line Interface(AWS CLI), SDK 또는 API를 통한 중앙 집중식 배포 제어를 제공하여 배포를 시작, 제어 및 모니터링할 수 있게 해줍니다. 개별 설치 이벤트에 대한 배포 진행 상태를 볼 수 있습니다. CodeDeploy는 최신 배포 기록을 추적하고 저장하므로 이전 배포 변경 기록 및 타임라인을 조사할 수 있습니다.

CodeDeploy는 플랫폼과 언어에 구애받지 않으며 모든 애플리케이션과 연동하므로 기존 설치 코드를 재사용할 수 있습니다. 또한, CodeDeploy API를 사용하여 기존 소프트웨어 전송 프로세스나 지속적인 전송 도구 체인과 애플리케이션 배포를 손쉽게 통합할 수 있습니다.

자동화된 배포

CodeDeploy를 사용하면 서로 다른 인스턴스 그룹 전체에 애플리케이션 배포를 쉽게 반복할 수 있습니다. CodeDeploy는 파일 및 명령 기반 설치 모델을 사용하여 어떤 애플리케이션이든 배포할 수 있으며 기존 설치 코드를 재사용할 수 있습니다. 동일한 설치 코드를 사용하여 Amazon EC2 인스턴스에 대한 배포, 테스트 및 프로덕션 릴리스 단계 전반에 걸쳐 지속적으로 업데이트를 배포하고 테스트할 수 있습니다. 배포에서 수동 단계를 제거하여 소프트웨어 전송 프로세스의 속도와 신뢰성이 모두 향상되었습니다.

CodeDeploy는 소프트웨어 배포 및 조정 활동을 통합하여 역동적인 프로덕션 환경에서 애플리케이션을 최신 상태로 유지할 수 있게 해 줍니다. Amazon EC2 인스턴스의 경우, CodeDeploy는 Auto Scaling과 통합됩니다. Auto Scaling을 사용하면 트래픽 급증 등 사용자가 정의하는 조건에 따라 Amazon EC2 용량을 자동으로 조정할 수 있습니다. CodeDeploy는 Auto Scaling 그룹에 새 인스턴스가 시작될 때마다 알림을 받아 새 인스턴스에 자동으로 애플리케이션을 배포한 다음 Elastic Load Balancing(ELB) 로드 밸런서에 새 인스턴스를 추가합니다.

CodeDeploy를 사용하면 자체 데이터 센터에 있는 인스턴스를 비롯한 모든 실행 중인 인스턴스의 개발, 테스트 및 프로덕션 환경에서 소프트웨어 배포를 자동화할 수 있습니다(인스턴스를 AWS 퍼블릭 엔드포인트에 연결할 수 있어야 함). 이 서비스를 사용하면 단일 서비스로 하이브리드 아키텍처에 애플리케이션을 지속적으로 배포할 수 있습니다.

가동 중지 시간 최소화

CodeDeploy를 사용하면 새 수정 버전으로 업그레이드되는 동안 애플리케이션 가동 중지 시간이 없습니다. AWS CodeDeploy는 Amazon EC2 인스턴스, Amazon Elastic Container Service(Amazon ECS) 서비스(Amazon EC2 및 Fargate 시작 유형 모두) 또는 Lambda 함수에 대해 블루/그린 배포를 수행할 수 있습니다. 블루/그린 배포를 통해 이전 버전과 함께 새 버전의 애플리케이션이 시작됩니다. 새 개정을 테스트한 후 선언할 준비가 되면 CodeDeploy는 사용자의 사양에 따라 이전 버전에서 새 버전으로 트래픽을 이동할 수 있습니다.

또한 CodeDeploy는 Amazon EC2 인스턴스 그룹에 단계적 업데이트를 수행하여 언제든지 극히 일부 인스턴스만 오프라인 상태가 됩니다. CodeDeploy는 전체 인스턴스에서 점진적으로 진행되어 애플리케이션이 사용 가능한 상태를 유지하고 계속 트래픽을 제공할 수 있도록 합니다. Lambda 함수의 경우 수신하는 트래픽은 이전 버전에서 새 버전으로 점차 라우팅됩니다.

배포 상태 추적은 단계적 업데이트와 함께 작동하여 배포하는 동안 애플리케이션의 가용성을 높게 유지합니다. 잘못된 업데이트가 배포되면 예상치 못한 가동 중지 시간이 발생할 수 있습니다. CodeDeploy는 배포를 모니터링하고 실패한 업데이트가 너무 많을 경우 배포를 중지합니다.

콘솔, AWS CLI 또는 모든 AWS SDK를 사용하여 진행 중인 애플리케이션 배포를 언제든지 중지할 수 있습니다. 중지된 배포를 나중에 계속 진행하려면 해당 수정 버전을 다시 배포하면 됩니다. 또한, 이전 수정 버전을 다시 배포하여 즉시 롤백할 수 있습니다.

중앙 집중식 제어

콘솔에서 직접 또는 AWS CLI, SDK 또는 API를 사용하여 소프트웨어의 배포를 실행, 제어 및 모니터링할 수 있습니다. 장애가 발생하는 경우 스크립트를 정확하게 찾아낼 수 있습니다. 또한, 푸시 알림을 설정하여 Amazon Simple Notification Service(Amazon SNS)에서 제공하는 SMS 또는 이메일 메시지를 통해 배포 상태를 모니터링할 수 있습니다.

하나의 애플리케이션을 여러 배포 그룹에 배포할 수 있습니다. 배포 그룹은 준비 또는 프로덕션 환경과 같은 특정 환경에 구성을 맞추는 데 사용됩니다. 준비 단계에서 수정 버전을 테스트하고 만족하는 경우 동일한 코드를 동일한 배포 지침으로 프로덕션 환경에 배포할 수 있습니다.

CodeDeploy는 배포의 최근 기록을 추적하고 저장합니다. 사용자는 각 대상 배포 그룹에 현재 배포되고 있는 애플리케이션 버전을 볼 수 있으며 특정 배포 그룹에 대한 이전 배포 성공 비율 및 변경 기록을 검사할 수 있습니다. 또한, 배포 성공 및 오류에 대한 자세한 보기를 통해 이전 배포의 타임라인을 조사할 수 있습니다.

손쉬운 도입

CodeDeploy는 파일 및 명령 기반 설치 모델을 사용하여 어떤 애플리케이션이든 배포할 수 있으며 기존 설치 코드를 재사용할 수 있습니다. CodeDeploy는 단일 AppSpec 구성 파일을 사용하여 각 수명 주기 이벤트(배포의 단계)에서 작업, 테스트 또는 검증을 실행할 수 있습니다. 명령은 셸 스크립트나 커스텀 프로그램, 구성 관리 도구 등의 코드일 수 있습니다.

CodeDeploy API를 사용하면 애플리케이션 배포를 손쉽게 기존 소프트웨어 전송 도구 체인과 통합할 수 있습니다. AWS CodePipeline과 일부 AWS 파트너는 사전 구축된 CodeDeploy를 지속적 통합 및 지속적 전송(CI/CD) 서비스와 통합하여 제공하여 업데이트된 애플리케이션의 자동 배포를 간소화합니다.

알림 수신

배포에 영향을 주는 이벤트에 대한 알림을 만들 수 있습니다. 알림은 Amazon SNS 알림 형식으로 수신됩니다. 각 알림에는 상태 메시지와 해당 알림이 생성되도록 한 이벤트가 발생한 리소스의 링크가 포함됩니다.