본문 바로가기
[AWS]

CodeDeploy란 무엇입니까?

by SAMSUNG CLOUD-OKY 2020. 6. 7.
반응형

## CodeDeploy란 무엇입니까?

  • CodeDeploy는 Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스입니다.
  • 다음을 포함하여 다양한 애플리케이션 콘텐츠를 거의 무제한으로 배포할 수 있습니다.

: code

: 서버리스 AWS Lambda 함수

: 웹 및 구성 파일

: 실행 파일

: packages

: 스크립트

: 멀티미디어 파일

 

 

 

  • CodeDeploy는 서버에서 실행되고 Amazon S3 버킷, GitHub 리포지토리 또는 Bitbucket 리포지토리에 저장되는 애플리케이션 콘텐츠를
    배포할 수 있습니다.
  • 또한 CodeDeploy는 서버리스 Lambda 함수를 배포할 수도 있습니다. CodeDeploy를 사용하기 전에 기존 코드를 변경할 필요가 없습니다.

 

  • CodeDeploy를 사용하면 다음 작업을 쉽게 수행할 수 있습니다.

: 새 기능을 신속하게 출시.

: AWS Lambda 함수 버전 업데이트.

: 애플리케이션 배포 시 가동 중지 방지

: 오류가 발생하는 수동 배포와 관련된 다양한 위험 없이 애플리케이션 업데이트에 따른 복잡성 처리.

 

 

 

 

  • 이 서비스는 인프라와 함께 규모를 조정할 수 있으므로 인스턴스 하나 또는 수천 개에 쉽게 배포할 수 있습니다.
  • CodeDeploy는 구성 관리, 소스 제어, 지속적인 통합, 지속적인 전송 및 지속적인 배포 등을 위해 다양한 시스템과 함께 작동합니다. 자세한
    내용은
     제품 통합을 참조하십시오.

 

  • CodeDeploy 콘솔에서 리포지토리, 빌드 프로젝트, 배포 애플리케이션 및 파이프라인과 같은 리소스를 신속하게 검색할 수도 있습니다. 
  • Go to resource(리소스로 이동)를 선택하거나 / 키를 누른 후 리소스 이름을 입력합니다. 목록에 일치 항목이 나타납니다. 검색은 대/소문자를

구분하지 않습니다. 보기 권한이 있는 리소스만 표시됩니다. 자세한 내용은 AWS CodeDeploy에 대한 ID 및 액세스 관리 단원을 참조하십시오.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html>

 

 

 

 

 

 

## AWS CodeDeploy의 이점

  • CodeDeploy에서 제공하는 이점은 다음과 같습니다.
  • 서버, 서버리스 및 컨테이너 애플리케이션. CodeDeploy를 사용하면 서버에 기존 애플리케이션을 배포할 수 있고, 서버리스 AWS Lambda 함수
    버전을 배포하는 애플리케이션 또는 Amazon ECS 애플리케이션도 배포
    할 수 있습니다.

 

  • 배포 자동화. CodeDeploy는 개발, 테스트 및 프로덕션 환경에 걸쳐 애플리케이션 배포를 완전 자동화합니다.
    또한 CodeDeploy는 인프라에 따라 확장되므로
    인스턴스 한 개 또는 수천 개에 배포할 수 있습니다.

 

  • 가동 중지 최소화. 애플리케이션이 EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 경우, CodeDeploy는 애플리케이션 가용성 극대화에 도움이 됩니다.
  • 인 플레이스(in-place) 배포에서 CodeDeploy는 Amazon EC2 인스턴스 전체에 대해 롤링 업데이트를 수행합니다.
    업데이트 시 오프라인 상태가 될 수 있는 인스턴스 수를 지정할 수 있습니다.

 

  • 블루/그린 배포 시에는 최신 애플리케이션 개정이 대체 인스턴스에 설치됩니다. 선택한 경우 새로운 환경 테스트를 완료한 직후 이러한 인스턴스로 트래픽이 다시 라우팅됩니다. 두 가지 배포 유형에 대해 CodeDeploy는 사용자가 구성한 규칙에 따라 애플리케이션 상태를 추적합니다.

 

  • 중지 및 롤백. 오류가 있는 경우 자동 또는 수동으로 배포를 중지하고 롤백할 수 있습니다.

 

  • 중앙 집중식 제어. CodeDeploy 콘솔 또는 AWS CLI를 통해 배포 상태를 시작 및 추적할 수 있습니다. 각 애플리케이션 개정이 배포된 시점
    및 Amazon EC2 인스턴스가 나열된 보고서가 제공됩니다.

 

  • 간편한 채택. CodeDeploy는 플랫폼과 관련된 제약이 없으므로 모든 애플리케이션과 작동합니다. 따라서 사용자는 설정 코드를 손쉽게
    재사용할 수 있습니다. 또한 CodeDeploy는 소프트웨어 릴리스 프로세스 또는 지속적인 전송 도구 체인과 통합이 가능합니다.

 

  • 동시 배포. EC2/온프레미스 컴퓨팅 플랫폼를 사용하는 1개 이상의 애플리케이션이 있는 경우에는 CodeDeploy를 통해 동일한 인스턴스
    세트에 동시에 배포
    할 수 있습니다.

 

 

 

 

 

 

## CodeDeploy 컴퓨팅 플랫폼 개요

- CodeDeploy는 세 가지 컴퓨팅 플랫폼에 애플리케이션을 배포할 수 있습니다.

 

  • EC2/온프레미스: 물리적 서버의 인스턴스를 설명합니다. Amazon EC2 클라우드 인스턴스나 온프레미스 서버 또는 둘 다일 수 있습니다.
    EC2/온프레미스 컴퓨팅 플랫폼을 사용하여 만든
    애플리케이션은 실행 파일과 구성 파일, 이미지 및 기타 항목으로 구성될 수 있습니다.
    EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 배포에서는
    실행 중 또는 블루/그린 배포 유형을 사용하여 인스턴스로 트래픽이 전송되는 방식을 관리합니다. 자세한 내용은 CodeDeploy 배포 유형 개요 단원을 참조하십시오.

 

  • AWS Lambda: 업데이트 버전의 Lambda 함수로 구성된 애플리케이션을 배포하는 데 사용됩니다. AWS Lambda는 고가용성 컴퓨팅 구조의
    서버리스 컴퓨팅 환경에서 Lambda 함수를 관리합니다. 컴퓨팅 리소스에 대한 모든 관리는 AWS Lambda를 통해 수행됩니다. 자세한 정보는
     
    서버리스 컴퓨팅 및 애플리케이션을 참조하십시오. AWS Lambda 및 Lambda 함수에 대한 자세한 정보는 AWS Lambda를 참조하십시오.
    canary, 선형 또는 한번에 모두 구성을 선택하여
    업데이트된 Lambda 함수 버전으로 트래픽을 전송하는 방식을 관리할 수 있습니다.

 

  • Amazon ECS: 컨테이너화된 Amazon ECS 애플리케이션을 작업 세트로 배포하는 데 사용됩니다. CodeDeploy는 애플리케이션의 업데이트 버전을 새로운 대체 작업 세트로 설치하여 블루/그린 배포를 수행합니다. CodeDeploy는 기존 애플리케이션 작업 세트의 프로덕션 트래픽을 대체 작업 세트로 다시 라우팅합니다. 배포가 성공하면 기존 작업 세트는 종료됩니다. Amazon ECS에 대한 자세한 내용은 Amazon Elastic Container Service를 참조하십시오.
    canary, 선형 또는 한번에 모두 구성을 선택하여 배포 중 업데이트된 작업 세트로 트래픽을 전송하는 방식을 관리할 수 있습니다.

다음 표에는 CodeDeploy 구성 요소가 각 컴퓨팅 플랫폼에서 어떻게 사용되는지 나와 있습니다. 자세한 내용은 다음을 참조하십시오.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html>

 

 

 

CodeDeploy
구성 요소

 

EC2/온프레미스

AWS Lambda

Amazon ECS

배포 그룹

인스턴스 세트에 개정을 배포합니다.

고가용성 컴퓨팅 인프라에서
새 버전의 서버리스 Lambda 함수를 배포합니다.

작업 세트로 배포할 컨테이너화된 애플리케이션이 있는 Amazon ECS 서비스, 배포된 애플리케이션에 트래픽을 제공하는 데 사용되는 프로덕션 및 테스트 리스너(선택 사항), 트래픽을 다시 라우팅하고 배포된 애플리케이션의 원래 작업 세트를 종료할 시기, 트리거(선택 사항), 경보, 롤백 설정을 지정합니다.

 

배포

애플리케이션과 AppSpec 파일로 구성된 새로운 개정을 배포합니다. AppSpec은 배포 그룹의 인스턴스에 애플리케이션을 배포하는 방식을 지정합니다.

 

Lambda 함수의 한 버전에서 동일한 함수의 새 버전으로 프로덕션 트래픽을 전환합니다. AppSpec file은 배포할 Lambda 함수 버전을 지정합니다.

Amazon ECS 컨테이너화된 애플리케이션의 업데이트된 버전을 새로운 대체 작업 세트로 배포합니다. CodeDeploy는 원래 버전이 있는 작업 세트에서 업데이트된 버전이 있는 새로운 대체 작업 세트로 프로덕션 트래픽을 다시 라우팅합니다. 배포가 완료되면 원래 작업 세트가 종료됩니다.

배포 구성

배포 시 항상 정상 상태를 유지해야 하는 최소 인스턴스 수와 배포 속도를 정의하는 설정입니다.

 

업데이트된 Lambda 함수 버전으로 트래픽이 이동되는 방식을 정의하는 설정입니다.

업데이트된 Amazon ECS 작업 세트로 트래픽이 이동되는 방식을 정의하는 설정입니다.

개정

AppSpec 파일과 애플리케이션 파일의 조합입니다(실행 파일, 구성 파일 등).

배포할 Lambda 함수와 배포 수명 주기 이벤트 후크 중에 확인 테스트를 실행할 수 있는 Lambda 함수를 지정하는 AppSpec 파일.

다음을 지정하는 AppSpec file:

    • 배포할 컨테이너화된 애플리케이션이 있는 Amazon ECS 서비스에 대한 Amazon ECS 작업 정의
    • 업데이트된 애플리케이션이 배포되는 컨테이너
    • 프로덕션 트래픽이 다시 라우팅되는 컨테이너의 포트
    • 배포 수명 주기 이벤트 후크 중에 확인 테스트를 실행할 수 있는 Lambda 함수와 네트워크 구성 설정(선택 사항)

애플리케이션

배포 그룹과 개정 모음입니다. EC2/온프레미스 애플리케이션은 EC2/온프레미스 컴퓨팅 플랫폼을 사용합니다.

배포 그룹과 개정 모음입니다. AWS Lambda 배포에 사용되는 애플리케이션은 서버리스 AWS Lambda 컴퓨팅 플랫폼를 사용합니다.

배포 그룹과 개정 모음입니다. Amazon ECS 배포에 사용되는 애플리케이션은 Amazon ECS 컴퓨팅 플랫폼을 사용합니다.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html>

 

 

 

 

 

 

## CodeDeploy 배포 유형 개요

- CodeDeploy는 두 가지 배포 유형 옵션을 제공합니다.

 

  • 실행 중 배포: 배포 그룹의 각 인스턴스에 있는 애플리케이션이 중지되고 최신 애플리케이션 개정 버전이 설치되며 애플리케이션의 새 버전이
    시작되고 유효성이 검사
    됩니다.
    -
    로드 밸런서를 사용하면 배포가 진행될 때 각 인스턴스를 등록 취소한 후 배포가 완료된 후 서비스로 복원할 수 있습니다.
    - EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 배포만 실행 중 배포를 사용할 수 있습니다. 실행 중 배포에 대한 자세한 내용은 인 플레이스(in-place) 배포 개요 단원을 참조하십시오.

    * 참고
    AWS Lambda 및 Amazon ECS 배포는 인플레이스 배포 유형을 사용할 수 없습니다.

 

 

 

  • Blue/Green 배포: 배포 동작은 사용하는 컴퓨팅 플랫폼에 따라 다릅니다.
    - EC2/온프레미스 컴퓨팅 플랫폼의 Blue/Green: 다음 단계를 사용하여 배포 그룹(원래 환경)의 인스턴스가 인스턴스의 다른 세트(대체 환경)로
      대체됩니다.
    - 인스턴스는 대체 환경을 위해 프로비저닝됩니다.
    - 최신 애플리케이션 개정은 대체 인스턴스에 설치됩니다.
    - 애플리케이션 테스트 및 시스템 검증과 같은 활동에 선택적 대기 시간이 발생합니다.
    - 대체 환경의 인스턴스가 Elastic Load Balancing 로드 밸런서에 등록되고 트래픽이 이러한 인스턴스로 라우팅됩니다. 원래 환경의 인스턴스는
      등록이 취소되고 종료되거나 다른 용도로 계속 실행될 수 있습니다.
    * 참고
    EC2/온프레미스 컴퓨팅 플랫폼를 사용할 경우 blue/green 배포는 Amazon EC2 인스턴스에서만 작동합니다.

 

 

  • AWS Lambda 컴퓨팅 플랫폼의 Blue/Green: 현재 서버리스 환경의 트래픽이 업데이트된 Lambda 함수 버전의 환경으로 이동합니다.
    - 확인 테스트를 수행하는 Lambda 함수를 지정할 수 있고, 트래픽 이동이 이루어지는 방식을 선택할 수 있습니다.
    - 모든 AWS Lambda 컴퓨팅 플랫폼 배포는 blue/green 배포입니다. 따라서 배포 유형을 지정할 필요가 없습니다.

 

 

  • Amazon ECS 컴퓨팅 플랫폼의 블루/그린: Amazon ECS 서비스에서 애플리케이션의 기존 버전을 포함하는 작업 세트에서 동일한 서비스의 대체 작업 세트로 트래픽이 이동합니다.
    - 배포 구성을 통해 선형 또는 canary로 트래픽 이동을 설정할 수 있습니다.
    - 지정된 로드밸런서 리스너의 포트와 프로토콜이 프로덕션 트래픽을 다시 라우팅하는 데 사용됩니다.
    - 배포 중 유효성 확인 테스트를 실행하면서 테스트 리스너를 사용하여 트래픽을 대체 작업 세트에 공급할 수 있습니다.
    Blue/Green 배포에 대한 자세한 내용은
     블루/그린 배포 개요 단원을 참조하십시오.

 

* 참고

CodeDeploy 에이전트를 사용하여 애플리케이션, 배포 그룹, 심지어 AWS 계정 없이도 로그인한 인스턴스에서 배포를 수행할 수 있습니다. 자세한 내용은 CodeDeploy 에이전트를 사용하여 로컬 머신에서 배포 패키지 유효성 검사 단원을 참조하십시오.

 

 

주제

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-in-place>

 

 

 

 

 

## 인 플레이스(in-place) 배포 개요
-
다음 다이어그램은 일반적인 CodeDeploy 인 플레이스(in-place) 배포의 흐름을 보여줍니다.

 

참고

AWS Lambda 및 Amazon ECS 배포는 인플레이스 배포 유형을 사용할 수 없습니다.

 

 

운영 방식은 다음과 같습니다.

  1. 먼저, 로컬 개발 머신 또는 유사한 환경에서 배포 가능한 콘텐츠를 만든 다음 application specification file(AppSpec file)을 추가합니다.
    - AppSpec file은 CodeDeploy에 고유합니다. 또한 CodeDeploy가 실행하게 하려는 배포 작업을 정의합니다.
    - 배포 가능한 콘텐츠 및 AppSpec file을 아카이브 파일로 번들링한 다음 Amazon S3 버킷 또는 GitHub 리포지토리로 업로드합니다.
      이러한 아카이브 파일을 애플리케이션 개정(또는 간단하게 개정)이라고 합니다.

 

  1. 다음으로, CodeDeploy에 배포에 관한 정보를 제공합니다(예: 개정을 풀링하려는 Amazon S3 버킷 또는 GitHub 리포지토리 및 개정의 내용을 배포하려는 Amazon EC2 인스턴스 세트).
    - CodeDeploy에서는 Amazon EC2 인스턴스 세트를 배포 그룹이라고 합니다.
    - 배포 그룹에는 개별적으로 태그가 지정된 Amazon EC2 인스턴스, Amazon EC2 Auto Scaling 그룹의 Amazon EC2 인스턴스 또는 둘 다가 포함됩니다.
    - 배포 그룹에 배포하려는 새 애플리케이션 개정을 성공적으로 업로드할 때마다 번들이 배포 그룹의 대상 개정으로 설정됩니다. 다시 말해 현재 배포의 대상으로 지정된 애플리케이션 개정이 대상 개정입니다. 또한 이 개정은 자동 배포를 위해 풀링되는 개정입니다.

 

  1. 다음으로, 각 인스턴스의 CodeDeploy 에이전트가 CodeDeploy를 폴링하여 지정된 Amazon S3 버킷 또는 GitHub 리포지토리에서 풀링할 항목 및 시점을 결정합니다.

 

  1. 마지막으로, 각 인스턴스의 CodeDeploy 에이전트가 Amazon S3 버킷 또는 GitHub 리포지토리에서 대상 개정을 풀링하고 AppSpec file의 지침을 따르면 콘텐츠가 인스턴스에 배포됩니다.
    -
    CodeDeploy는 배포에 대한 기록을 유지하므로 배포 상태, 배포 구성 파라미터, 인스턴스 상태를 확인할 수 있습니다.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-in-place>

 

 

 

 

 

 

## 블루/그린 배포 개요
- 블루/그린 배포는 새 애플리케이션 버전의 변경으로 인한 중단을 최소화하면서 애플리케이션을 업데이트하는 데 사용됩니다.
- CodeDeploy는 프로덕션 트래픽을 다시 라우팅하기 전에 이전 버전과 함께 새 애플리케이션 버전을 프로비저닝합니다.

 

  • AWS Lambda: 트래픽이 Lambda 함수의 한 버전에서 동일한 Lamdba 함수의 새 버전으로 전환됩니다.

 

  • Amazon ECS: 트래픽이 Amazon ECS 서비스의 작업 세트에서 동일한 Amazon ECS 서비스의 업데이트된 대체 작업 세트로 전환됩니다.

 

  • EC2/온프레미스: 트래픽이 원래 환경의 한 인스턴스 세트에서 대체 인스턴스 세트로 전환됩니다.

 

 

 

 

* AWS Lambda 및 Amazon ECS 배포는 모두 블루/그린입니다. EC2/온프레미스 배포는 인플레이스(in-place) 또는 블루/그린일 수 있습니다.
  블루/그린 배포는 인플레이스(in-place) 배포보다 많은 이점을 제공합니다.

 

  • 애플리케이션을 새 대체 환경에서 설치 및 테스트하고 트래픽을 다시 라우팅하여 프로덕션에 간단히 배포할 수 있습니다.
  • EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 경우, 최신 버전의 애플리케이션으로 다시 전환하는 것이 더 빠르고 안정적입니다.
    - 원래 인스턴스가 종료되지 않은 한 트래픽이 원래 인스턴스로 다시 라우팅될 수 있기 때문입니다.
    - 인 플레이스(in-place) 배포의 경우, 애플리케이션의 이전 버전을 다시 배포하여 버전을 롤백해야 합니다.

 

  • EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 경우 블루/그린 배포에 대해 새로운 인스턴스가 할당되고, 최신 서버 구성이 반영됩니다. 따라서 장기 실행 인스턴스에서 발생할 수 있는 다양한 문제를 예방할 수 있습니다.
  • AWS Lambda 컴퓨팅 플랫폼을 사용하는 경우 기존 AWS Lambda 함수 버전에서 새로운 AWS Lambda 함수 버전으로 트래픽을 어떻게 이동할지를 제어할 수 있습니다.
  • Amazon ECS 컴퓨팅 플랫폼을 사용하는 경우 기존 작업 세트에서 새 작업 세트로 트래픽을 어떻게 이동할지 제어할 수 있습니다.
    - 블루/그린 배포를 어떻게 구성하는지는 배포에서 사용하는 컴퓨팅 플랫폼에 따라 다릅니다.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-in-place>

 

 

 

 

 

 

## AWS Lambda 컴퓨팅 플랫폼의 블루/그린 배포
- AWS Lambda 컴퓨팅 플랫폼을 사용하는 경우 다음 배포 구성 중 하나를 선택하여 기존 AWS Lambda 함수 버전에서 새로운 AWS Lambda 함수
  버전으로 트래픽을 어떻게 이동할지 지정해야 합니다.

 

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 함수 버전으로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션 중에서 선택할 수 있습니다.
  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간 시간(분)은 동일합니다. 각 증분에서 이동되는 트래픽 비율(%)과 각 증분 간의 시간(분)을 지정하는 사전 정의된 선형 옵션에서 선택할 수 있습니다.
  • All-at-once: 모든 트래픽이 기존 Lambda 함수에서 업데이트된 Lambda 함수 버전으로 한번에 모두 이동합니다.

AWS Lambda 배포 구성에 대한 자세한 내용은 AWS Lambda 컴퓨팅 플랫폼에 대한 배포 구성 사전 정의 단원을 참조하십시오.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-in-place>

 

 

 

 

 

 

## Amazon ECS 컴퓨팅 플랫폼의 블루/그린 배포
- Amazon ECS 컴퓨팅 플랫폼을 사용하는 경우 다음 배포 구성 유형 중 하나를 선택하여 기존 Amazon ECS 작업 세트에서 새 Amazon ECS 작업 세트로 트래픽을 어떻게 이동할지 지정해야 합니다.

 

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 Amazon ECS 작업 세트로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션 중에서 선택할 수 있습니다.
  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간 시간(분)은 동일합니다. 각 증분에서 이동되는 트래픽 비율(%)과 각 증분 간의 시간(분)을 지정하는 사전 정의된 선형 옵션에서 선택할 수 있습니다.
  • All-at-once: 모든 트래픽이 기존 Amazon ECS 작업 세트에서 업데이트된 Amazon ECS 작업 세트로 한 번에 이동합니다.

Amazon ECS 배포 구성에 대한 자세한 내용은 Amazon ECS 컴퓨팅 플랫폼에 대한 배포 구성 단원을 참조하십시오.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-in-place>

 

 

 

 

 

 

## EC2/온프레미스 컴퓨팅 플랫폼의 블루/그린 배포

 

* 참고

EC2/온프레미스 컴퓨팅 플랫폼에서의 블루/그린 배포에는 Amazon EC2 인스턴스만 사용해야 합니다.
온프레미스 인스턴스는 블루/그린 배포 유형을 지원하지 않습니다.

 

  • EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 경우 다음 사항이 적용됩니다.
  • Amazon EC2 태그 또는 Amazon EC2 Auto Scaling 그룹을 식별하는 Amazon EC2 인스턴스가 한 개 이상 있어야 합니다.
  • 이러한 인스턴스는 다음 추가 요구 사항을 충족해야 합니다.
  • 각 Amazon EC2 인스턴스에 올바른 IAM 인스턴스 프로파일이 연결되어 있어야 합니다.
  • 각 인스턴스에 CodeDeploy 에이전트가 설치되어 실행 중이어야 합니다.

 

* 참고

또한 일반적으로 기존 환경의 인스턴스에서 실행되는 애플리케이션 개정이 있지만, 블루/그린 배포의 경우 반드시 이럴 필요는 없습니다.

 

 

  • 블루/그린 배포에서 사용되는 배포 그룹을 만들 때 다음과 같은 대체 환경 지정 방법을 선택할 수 있습니다.

: 기존 Amazon EC2 Auto Scaling 그룹 복사: 블루/그린 배포 시 CodeDeploy는 배포 중 대체 환경에 필요한 인스턴스를 만듭니다. 이 옵션을 선택하면 CodeDeploy는 사용자가 지정한 Amazon EC2 Auto Scaling 그룹을 대체 환경의 템플릿(동일한 수의 실행 중인 인스턴스 및 여러 가지 기타 구성 옵션을 포함)으로 사용합니다.

 

 

 

: 수동으로 인스턴스 선택: Amazon EC2 인스턴스 태그, Amazon EC2 Auto Scaling 그룹 이름 또는 둘 다를 사용하여 인스턴스를 대체 인스턴스로 계산하도록 지정할 수 있습니다. 이 옵션을 선택하면 배포를 만들 때까지 대체 환경을 위한 인스턴스를 지정할 필요가 없습니다.

 

운영 방식은 다음과 같습니다.

  1. 원본 환경으로 작동할 인스턴스 또는 Amazon EC2 Auto Scaling 그룹이 이미 있습니다.
    블루/그린 배포를 처음 실행할 때는 일반적으로 인 플레이스(in-place) 배포에서 이미 사용된 인스턴스를 사용합니다.

 

  1. 기존 CodeDeploy 애플리케이션에서는 인 플레이스(in-place) 배포에 필요한 옵션 이외에 블루/그린 배포 그룹을 만들어 다음을 지정합니다.
  • 블루/그린 배포 프로세스 중 원본 환경에서 대체 환경으로 트래픽을 라우팅할 로드 밸런서
  • 트래픽을 대체 환경으로 즉시 다시 라우팅하거나 수동으로 다시 라우팅할 때까지 대기할지 여부
  • 트래픽이 대체 인스턴스로 라우팅되는 속도
  • 대체된 인스턴스를 종료 또는 계속 실행할지 여부

 

  1. 다음과 같은 이벤트가 발생하는 동안 배포 그룹에 대한 배포를 만듭니다.
  • Amazon EC2 Auto Scaling 그룹을 복사하도록 선택한 경우 대체 환경에 필요한 인스턴스가 프로비저닝됩니다.
  • 배포 대상으로 지정한 애플리케이션 개정이 대체 인스턴스에 설치됩니다.
  • 배포 그룹 설정에서 대기 시간을 지정한 경우 배포가 일시 중지됩니다. 이러한 대기 시간에 대체 환경에서 테스트 및 확인을 실행할 수 있습니다.
    대기 시간 종료 전 트래픽을 수동으로 다시 라우팅하지 않으면 배포가 중지됩니다.
  • 대체 환경의 인스턴스가 Elastic Load Balancing 로드 밸런서에 등록되고 트래픽이 이러한 인스턴스로 라우팅되기 시작합니다.
  • 원본 환경의 인스턴스는 등록 취소되어 배포 그룹의 사양에 따라 처리됩니다. 즉, 종료되거나 계속 실행됩니다.

 

출처: <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-in-place>

 

 

반응형

댓글