CodeDeploy 블루/그린에서 Amazon ECS 블루/그린 서비스 배포로 마이그레이션 - Amazon Elastic Container Service

CodeDeploy 블루/그린에서 Amazon ECS 블루/그린 서비스 배포로 마이그레이션

Amazon RDS 블루/그린 배포를 사용하면 프로덕션 환경에서 구현하기 전에 서비스를 변경하고 해당 변경 내용을 테스트할 수 있습니다.

Amazon ECS 블루/그린 배포에 대한 새 수명 주기 후크를 생성해야 합니다.

사전 조건

블루/그린 배포를 시작하기 전에 다음 작업을 수행합니다.

  1. Amazon ECS CodeDeploy IAM 역할을 다음 권한으로 바꾸세요.

  2. CodeDeploy 자동화를 끄세요. 자세한 내용은 CodeDeploy 사용 설명서Working with deployment groups in CodeDeploy를 참조하세요.

  3. CodeDeploy 블루/그린 배포에서 다음 정보가 있는지 확인하세요. Amazon ECS 블루/그린 배포에서 이 정보를 재사용할 수 있습니다.

    • 프로덕션 대상 그룹

    • 프로덕션 리스너

    • 프로덕션 규칙

    • 테스트 대상 그룹

      그린 서비스 개정의 대상 그룹입니다.

  4. Application Load Balancer 대상 그룹이 리스너 규칙과 올바르게 연결되어 있는지 확인하세요.

    • 테스트 리스너를 사용하지 않는 경우 두 개의 대상 그룹(프로덕션 및 테스트)이 프로덕션 리스너 규칙과 연결되어 있어야 합니다.

    • 테스트 리스너를 사용하는 경우 하나의 대상 그룹을 프로덕션 리스너 규칙에 연결하고 다른 대상 그룹을 테스트 리스너 규칙에 연결해야 합니다.

    이 요구 사항이 충족되지 않으면 서비스 배포에 실패하고 다음 오류가 발생합니다. Service deployment rolled back because of invalid networking configuration. Both targetGroup and alternateTargetGroup must be associated with the productionListenerRule or testListenerRule.

  5. 서비스에 대해 진행 중인 서비스 배포가 없는지 확인하세요. 자세한 내용은 Amazon ECS 서비스 배포를 사용하여 서비스 기록 보기 섹션을 참조하세요.

  6. Amazon ECS 블루/그린 배포에서는 서비스가 다음 기능 중 하나를 사용해야 합니다. 적절한 리소스를 구성하세요.

  7. Amazon ECS 블루/그린 배포의 단계에 대한 수명 주기 단계에서 Lambda 함수를 실행할지를 결정하세요.

    • 사전 스케일 업

    • 스케일 업 이후

    • 트래픽 전환 테스트

    • 트래픽 전환 테스트 이후

    • 프로덕션 트래픽 전환

    • 프로덕션 트래픽 전환 이후

    각 수명 주기 단계에 대해 Lambda 함수를 생성하세요. 자세한 내용은 AWS Lambda 개발자 안내서콘솔로 Lambda 함수 생성을 참조하세요.

서비스의 배포 컨트롤러 업데이트에 대한 자세한 내용은 Amazon ECS 서비스 파라미터 업데이트 섹션을 참조하세요.

절차

  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 클러스터(Clusters) 페이지에서 클러스터를 선택합니다.

    클러스터 세부 정보 페이지가 표시됩니다.

  3. 서비스 탭에서 서비스를 선택하세요.

    서비스 세부 정보 페이지가 표시됩니다.

  4. 배너에서 배포 컨트롤러 유형 업데이트를 선택하세요.

    배포 컨트롤러 유형 마이그레이션 페이지가 표시됩니다.

  5. 새로 만들기를 확장한 후 다음 파라미터를 지정하세요.

    1. 배포 컨트롤러 유형에서 ECS를 선택하세요.

    2. 배포 전략에서 블루/그린을 선택하세요.

    3. 베이크 소요 시간에 블루 및 그린 서비스 개정이 모두 실행되는 시간을 입력하세요.

    4. 수명 주기 단계에서 Lambda 함수를 실행하려면 배포 수명 주기 후크 아래 각 고유한 Lambda 함수에 대해 다음을 수행하세요.

      1. 추가를 선택합니다.

        실행하려는 모든 고유 함수에 대해 반복하세요.

      2. Lambda 함수에서 함수 이름을 입력하세요.

      3. 역할에서 블루/그린 권한이 있는 사전 요구 사항에서 생성한 역할을 선택하세요.

        자세한 내용은 Amazon ECS 블루/그린 배포에서 Lambda 함수에 필요한 권한 섹션을 참조하세요.

      4. 수명 주기 단계에서 Lambda 함수가 실행되는 단계를 선택하세요.

      5. (선택 사항) 후크 세부 정보에 후크에 대한 정보를 제공하는 키-값 페어를 입력하세요.

  6. 로드 밸런싱을 확장한 후 다음을 구성하세요.

    1. 역할에서 블루/그린 권한이 있는 사전 요구 사항에서 생성한 역할을 선택하세요.

      자세한 내용은 Amazon ECS 블루/그린 배포에서 Lambda 함수에 필요한 권한 섹션을 참조하세요.

    2. 리스너에서 CodeDeploy 블루/그린 배포의 프로덕션 리스너를 선택하세요.

    3. 프로덕션 규칙에서 CodeDeploy 블루/그린 배포의 프로덕션 규칙을 선택하세요.

    4. 테스트 규칙에서 CodeDeploy 블루/그린 배포의 테스트 규칙을 선택하세요.

    5. 대상 그룹에서 CodeDeploy 블루/그린 배포의 프로덕션 대상 그룹을 선택하세요.

    6. 대체 대상 그룹에서 CodeDeploy 블루/그린 배포의 테스트 대상 그룹을 선택하세요.

  7. 업데이트를 선택합니다.

다음 단계

  • 배포를 시작하도록 서비스를 업데이트합니다. 자세한 내용은 Amazon ECS 서비스 업데이트 섹션을 참조하세요.

  • 배포 프로세스를 모니터링하여 블루/그린 패턴을 따르는지 확인합니다.

    • 그린 서비스 개정이 생성되고 스케일 업됨

    • 테스트 트래픽이 그린 개정으로 라우팅됨(구성된 경우)

    • 프로덕션 트래픽이 그린 개정으로 전환됨

    • 베이크 소요 시간이 지나면 블루 개정이 종료됨