참조 배포

AWS의 블루/그린 배포

AWS Elastic Beanstalk 환경에 배포하기 위한 AWS CodePipeline 사용

이 Quick Start는 AWS CodePipeline을 사용하여 AWS에 블루/그린 아키텍처를 자동으로 배포합니다. 이를 통해 약 15분 만에 CI/CD(지속적인 통합/지속적인 배포) 파이프라인을 구축할 수 있습니다.

AWS Elastic Beanstalk 환경에 서로 별개지만 완전히 동일한 2개의 환경 (블루 및 그린)으로 애플리케이션을 개발 및 배포하면 가용성이 높아지고 위험은 낮아집니다. 이 Quick Start 아키텍처에서 블루 환경은 통상적으로 라이브 트래픽을 처리하는 운영 환경입니다. CI/CD 파이프라인 아키텍처는 라이브 Elastic Beanstalk 환경 (블루)의 복제본 (그린)을 생성합니다. 그러면 파이프라인이 두 환경 사이에서 URL을 전환합니다.

CodePipeline은 원래 환경에 애플리케이션 코드를 배포하고 테스트 및 유지 관리를 실행하지만 라이브 트래픽은 임시 복제본 환경에서 처리됩니다. 블루 환경으로 배포되고 코드 검토와 코드 테스트가 완료되면 파이프라인은 그린과 블루 환경 사이의 URL을 다시 전환합니다. 그러면 다시 블루 환경에서 라이브 트래픽 처리가 시작되고 그린 환경은 폐기됩니다.

 

 

이 Quick Start는
AWS 솔루션스 아키텍트가 개발했습니다.

 

  •  구축할 내용
  • 이 Quick Start를 사용하여 AWS에서 블루/그린을 배포하기 위해 다음과 같은 환경을 배포하고 구성할 수 있습니다.

    • AWS Elastic Beanstalk 환경으로 배포되는 새 애플리케이션 패키지 버전으로 Amazon S3 버킷이 업로드될 때 트리거되는 파이프라인.
    • 그린 환경으로 블루 환경을 복제하고 URL을 전환한 후 블루 환경에 대한 배포 및 테스트가 완료될 때 그린 버전을 폐기하는 AWS Lambda 기능.
    • 블루와 그린 환경 사이에서 최초 URL 전환을 수행하고 블루 환경의 배포를 테스트하는 AWS CodeBuild 프로젝트.
    • 기존 Elastic Beanstalk 환경 및 애플리케이션이 제공되지 않는 경우 이 Quick Start는 샘플 환경을 구축합니다.
    • Elastic Beanstalk 샘플 애플리케이션을 위한 Lambda 함수, CodeBuild 프로젝트, CodePipeline 및 서비스 역할의 AWS IAM 역할.
    • 별도의 CodePipeline Artifact Store용 Amazon S3 버킷, Lambda 함수 자산 및 CodeBuild 자산. Elastic Beanstalk 배포를 위한 애플리케이션 코드가 포함된 압축 패키지를 저장하기 위한 선택 사항으로 제공되는 S3 버킷을 활용할 수 있습니다.
  •  배포 방법
  • AWS에서 블루/그린 아키텍처를 구축하려면, 배포 안내서의 지침을 따르십시오. 약 15분이 걸리는 배포 프로세스는 다음 단계를 포함합니다.

    1. 사전 요구 사항을 확인합니다.
    2. 아직 AWS 계정이 없다면 https://aws.amazon.com에서 가입합니다.
    3. (선택 사항) 기존 Elastic Beanstalk 환경 및 애플리케이션을 메모합니다. 샘플 환경 및 애플리케이션을 시작한 경우 이 단계를 건너뛸 수 있습니다.
    4. Quick Start를 시작하고 설정을 사용자 지정합니다.
    5. (선택 사항) S3로의 Git 통합이 활성화된 경우 Git 리포지토리를 구성합니다.
    6. 배포를 테스트합니다.

    Amazon은 이 솔루션에서 AWS와 협업하는 AWS 파트너와 사용자 배포 정보를 공유할 수 있습니다.  

  •  비용 및 라이선스
  • 이 Quick Start 참조 배포를 실행하는 동안 사용되는 AWS 서비스 비용은 고객이 부담해야 합니다. Quick Start 사용에 따르는 추가 비용은 없습니다.

    이 Quick Start는 비용 대비 효율적인 배포를 위해 Lambda 함수, AWS CodeBuild, Amazon Simple Notification Service (SNS) 및 Elastic Beanstalk와 상호 작용하는 파이프라인을 시작합니다. 선택 사항으로 이 Quick Start을 사용하여 Git Webhooks with AWS Services Quick Start를 활성화하여 Git 리포지토리를 Amazon S3로 연결할 수 있습니다. Git-Amazon S3는 Amazon API Gateway 엔드포인트 및 Lamda 함수를 제공하여 Amazon S3로의 다운로드, 압축 및 코드 배포를 처리합니다.

    AWS CodePipeline은 활성 파이프라인당 비용이 발생합니다. AWS CodePipeline 요금을 참조하십시오. AWS CodeBuild 및 Amazon SNS는 종량제 요금입니다. 자세한 내용은 AWS CodeBuildAmazon SNS를 참조하십시오. 구성에 따라 Git Webhooks with AWS Services Quick Start는 AWS Key Management Service (AWS KMS)를 배포할 수 있습니다. 요금과 관련해서는 AWS Key Management Service 요금을 참조하십시오. API Gateway, Amazon S3 및 Lambda 요금은 리포지토리로의 코드 실행 커밋 빈도에 따라 다를 수 있습니다. 커밋을 실행할 때마다 API Gateway에서 Lambda 실행이 요청됩니다. 자세한 내용은 API Gateway, Amazon S3Lambda의 요금 페이지를 참조하십시오.