CodeDeploy 주요 구성 요소 - AWS CodeDeploy

CodeDeploy 주요 구성 요소

서비스 작업을 시작하기 전에 CodeDeploy 배포 프로세스의 주요 구성 요소를 숙지해야 합니다.

Application: 배포할 애플리케이션을 식별할 수 있는 고유 이름. CodeDeploy는 컨테이너 역할을 하는 이 이름을 사용하여 배포 중에 개정 버전, 배포 구성 및 배포 그룹의 올바른 조합을 참조하도록 합니다.

컴퓨팅 플랫폼: CodeDeploy가 애플리케이션을 배포하는 플랫폼.

  • EC2/On-Premises: 물리적 서버의 인스턴스를 설명합니다. Amazon EC2 클라우드 인스턴스나 온프레미스 서버 또는 둘 다일 수 있습니다. EC2/온프레미스 컴퓨팅 플랫폼을 사용하여 만든 애플리케이션은 실행 파일과 구성 파일, 이미지 및 기타 항목으로 구성될 수 있습니다.

    EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 배포에서는 인 플레이스 또는 블루/그린 배포 유형을 사용하여 인스턴스로 트래픽이 전송되는 방식을 관리합니다. 자세한 내용은 CodeDeploy 배포 유형 개요 섹션을 참조하세요.

  • AWS Lambda: 업데이트 버전의 Lambda 함수로 구성된 애플리케이션을 배포하는 데 사용됩니다. AWS Lambda은(는) 고가용성 컴퓨팅 구조의 서버리스 컴퓨팅 환경에서 Lambda 함수를 관리합니다. 컴퓨팅 리소스에 대한 모든 관리는 AWS Lambda를 통해 수행됩니다. 자세한 정보는 서버리스 컴퓨팅 및 애플리케이션을 참조하세요. AWS Lambda 및 Lambda 함수에 대한 자세한 내용은 AWS Lambda을(를) 참조하세요.

    canary, linear 또는 all-at-once 구성을 선택하여 업데이트된 Lambda 함수 버전으로 트래픽을 전송하는 방식을 관리할 수 있습니다.

  • Amazon ECS: Amazon ECS 컨테이너화된 애플리케이션을 작업 세트로 배포하는 데 사용됩니다. CodeDeploy는 애플리케이션의 업데이트 버전을 새로운 대체 작업 세트로 설치하여 블루/그린 배포를 수행합니다. CodeDeploy는 프로덕션 트래픽을 원래 애플리케이션 작업 세트에서 대체 작업 세트로 다시 라우팅합니다. 배포가 성공하면 기존 작업 세트는 종료됩니다. Amazon ECS에 대한 자세한 내용은 Amazon Elastic Container Service를 참조하세요.

    canary, 선형 또는 한번에 모두 구성을 선택하여 배포 중 업데이트된 작업 세트로 트래픽을 전송하는 방식을 관리할 수 있습니다.

참고

Amazon ECS 블루/그린 배포는CodeDeploy 및 AWS CloudFormation 모두를 통해 지원됩니다. 이러한 배포에 대한 세부 정보는 다음 단원에서 설명합니다.

배포 구성: 배포 중 CodeDeploy에서 사용하는 배포 규칙과 배포 성공 및 실패 조건 세트입니다. EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 배포의 경우, 해당 배포에 대해 정상 인스턴스의 최소 개수를 지정할 수 있습니다. 배포에서 AWS Lambda 컴퓨팅 플랫폼이나 Amazon ECS 컴퓨팅 플랫폼을 사용하여 업데이트된 Lambda 함수 버전으로 트래픽이 라우팅되는 방식을 지정할 수 있습니다.

EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 배포에서 최소 정상 호스트 개수를 지정하는 방법은 최소 정상 인스턴스 및 배포 단원을 참조하세요.

다음은 AWS Lambda 컴퓨팅 플랫폼을 사용하는 배포에서 트래픽이 라우팅되는 방식을 지정하는 배포 구성입니다.

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 Lambda 함수 버전으로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션 중에서 선택할 수 있습니다.

  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간에 시간(분)이 동일합니다. 각 증분에서 이동되는 트래픽 비율(%)과 각 증분 간의 시간(분)을 지정하는 사전 정의된 선형 옵션에서 선택할 수 있습니다.

  • All-at-once: 모든 트래픽이 기존 Lambda 함수에서 업데이트된 Lambda 함수 버전으로 한번에 이동합니다.

다음은 Amazon ECS 컴퓨팅 플랫폼을 사용하는 배포에서 트래픽이 라우팅되는 방식을 지정하는 배포 구성입니다.

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 Amazon ECS 작업 세트로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션 중에서 선택할 수 있습니다.

  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간에 시간(분)이 동일합니다. 각 증분에서 이동되는 트래픽 비율(%)과 각 증분 간의 시간(분)을 지정하는 사전 정의된 선형 옵션에서 선택할 수 있습니다.

  • All-at-once: 모든 트래픽이 원래 Amazon ECS 작업 세트에서 업데이트된 Amazon ECS 작업 세트로 모두 한 번에 이동합니다.

배포 그룹: 개별 인스턴스 세트. 배포 그룹에는 개별적으로 태그가 지정된 인스턴스, Amazon EC2 Auto Scaling 그룹의 Amazon EC2 인스턴스 또는 둘 다가 포함됩니다. Amazon EC2 인스턴스 태그에 대한 자세한 정보는 콘솔을 사용한 태그 작업을 참조하세요. 온프레미스 인스턴스에 대한 자세한 정보는 Working with On-Premises Instances 단원을 참조하세요. Amazon EC2 Auto Scaling에 대한 자세한 내용은 Amazon EC2 Auto Scaling과 CodeDeploy 통합 단원을 참조하세요.

배포 유형: 배포 그룹의 인스턴스에서 최신 애플리케이션 개정을 사용 가능하게 만드는 방법입니다.

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

  • 블루/그린 배포: 배포 동작은 사용하는 컴퓨팅 플랫폼에 따라 다릅니다.

    • EC2/온프레미스 컴퓨팅 플랫폼의 블루/그린: 다음 단계를 사용하여 배포 그룹(원래 환경)의 인스턴스가 인스턴스의 다른 세트(대체 환경)로 대체됩니다.

      • 인스턴스는 대체 환경을 위해 프로비저닝됩니다.

      • 최신 애플리케이션 개정은 대체 인스턴스에 설치됩니다.

      • 애플리케이션 테스트 및 시스템 검증과 같은 활동에 선택적 대기 시간이 발생합니다.

      • 대체 환경의 인스턴스가 Elastic Load Balancing 로드 밸런서에 등록되고 트래픽이 이러한 인스턴스로 라우팅됩니다. 원래 환경의 인스턴스는 등록이 취소되고 종료되거나 다른 용도로 계속 실행될 수 있습니다.

      참고

      EC2/온프레미스 컴퓨팅 플랫폼을 사용할 경우 블루/그린 배포는 Amazon EC2 인스턴스에서만 작동합니다.

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

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

    • AWS CloudFormation을 통한 블루/그린 배포: AWS CloudFormation 스택 업데이트의 일부로 트래픽이 현재 리소스에서 업데이트된 리소스로 이동합니다. 현재는 ECS 블루/그린 배포만 지원됩니다.

    블루/그린 배포에 대한 자세한 내용은 블루/그린 배포 개요 단원을 참조하세요.

참고

Amazon ECS 블루/그린 배포는CodeDeploy 및 AWS CloudFormation 모두를 통해 지원됩니다. 이러한 배포에 대한 세부 정보는 다음 단원에서 설명합니다.

IAM 인스턴스 프로파일: Amazon EC2 인스턴스에 연결하는 IAM 역할. 이 프로파일에는 애플리케이션이 저장되는 Amazon S3 버킷 또는 GitHub 리포지토리에 액세스할 때 필요한 권한이 포함됩니다. 자세한 내용은 4단계: Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 만들기 섹션을 참조하세요.

개정 버전: AWS Lambda 배포 개정 버전은 배포할 Lambda 함수에 대한 정보를 지정하는 YAML 형식 또는 JSON 형식의 파일입니다. EC2/온프레미스 배포 개정 버전은 소스 코드, 웹 페이지, 실행 파일 및 배포 스크립트 등과 같은 소스 콘텐츠 및 애플리케이션 사양 파일(AppSpec 파일)을 포함하는 아카이브 파일입니다.AWS Amazon S3 버킷에 Lambda 개정 버전도 저장할 수 있습니다. EC2/온프레미스 개정 버전은 Amazon S3 버킷 또는 GitHub 리포지토리에 저장됩니다. Amazon S3의 경우 개정 버전은 Amazon S3 객체 키 및 해당 ETag, 버전 또는 둘 다에 의해 고유하게 식별됩니다. GitHub의 경우 개정은 커밋 ID에 의해 고유하게 식별됩니다.

서비스 역할: AWS 리소스에 액세스할 수 있는 권한을 AWS 서비스에 부여하는 IAM 역할. 서비스 역할에 연결하는 정책에 따라 서비스에 액세스할 수 있는 AWS 리소스와 서비스에서 이러한 리소스로 수행할 수 있는 작업이 결정됩니다. CodeDeploy의 경우 서비스 역할은 다음 작업에 사용됩니다.

  • 인스턴스에 적용된 태그 또는 인스턴스와 연결된 Amazon EC2 Auto Scaling 그룹 이름을 읽습니다. 이를 통해 CodeDeploy는 애플리케이션을 배포할 수 있는 인스턴스를 식별할 수 있습니다.

  • Amazon EC2 Auto Scaling 그룹 및 Elastic Load Balancing 로드 밸런서의 인스턴스에 대한 작업을 수행합니다.

  • 지정된 배포 또는 인스턴스 이벤트가 발생할 때 알림을 전송할 수 있도록 Amazon SNS 주제에 정보를 게시합니다.

  • CloudWatch 경보에 대한 정보를 검색하여 배포에 대한 경보 모니터링을 설정합니다.

자세한 내용은 2단계: CodeDeploy에 대한 서비스 역할 생성 섹션을 참조하세요.

대상 개정: 리포지토리에 업로드했고 배포 그룹의 인스턴스에 배포하려는 가장 최신 버전의 애플리케이션 개정입니다. 다시 말해서, 애플리케이션 개정은 현재 배포를 위해 대상 지정됩니다. 또한 이 개정은 자동 배포를 위해 풀링되는 개정입니다.

CodeDeploy 워크플로의 다른 구성 요소에 대한 자세한 내용은 다음 주제를 참조하세요.