CodeDeploy Amazon ECS 배포를 위한 로드 밸런서, 대상 그룹 및 리스너 설정 - AWS CodeDeploy

CodeDeploy Amazon ECS 배포를 위한 로드 밸런서, 대상 그룹 및 리스너 설정

Amazon ECS 컴퓨팅 플랫폼을 사용하여 배포를 실행하려면 먼저 Application Load Balancer 또는 Network Load Balancer, 대상 그룹 두 개, 리스너 한 개 또는 두 개를 만들어야 합니다. 이 주제에서는 Application Load Balancer를 생성하는 방법을 보여줍니다. 자세한 내용은 Amazon ECS 배포를 시작하기 전 섹션을 참조하세요.

대상 그룹 중 하나는 트래픽을 Amazon ECS 애플리케이션의 원래 작업 세트로 보냅니다. 다른 대상 그룹은 트래픽을 대체 작업 세트로 보냅니다. 배포 중에 CodeDeploy는 대체 작업 세트를 만들고 원래 작업 세트에서 새 작업 세트로 트래픽을 다시 라우팅합니다. CodeDeploy는 각 작업 세트에 사용되는 대상 그룹을 결정합니다.

리스너는 로드 밸런서가 대상 그룹으로 트래픽을 보내기 위해 사용합니다. 프로덕션 리스너는 한 개는 필수입니다. 확인 테스트를 실행하는 동안 대체 작업 세트로 트래픽을 보내는 선택적 테스트 리스너를 지정할 수 있습니다.

로드밸런서는 다른 가용 영역에 두 개의 퍼블릭 서브넷이 있는 VPC를 사용해야 합니다. 다음 단계에서는 기본 VPC를 확인하고, Amazon EC2 Application Load Balancer를 생성한 다음, 로드밸런서를 위한 대상 그룹을 두 개 생성합니다. 자세한 내용은 네트워크 로드밸런서의 대상 그룹 지정을 참조하세요.

기본 VPC, 퍼블릭 서브넷 및 보안 그룹 확인

이 주제에서는 Amazon EC2,Application Load Balancer, 대상 그룹 두 개, Amazon ECS 배포 중 사용할 수 있는 포트 두 개를 생성하는 방법을 보여 줍니다. 포트 중 하나는 선택 사항이며 배포 중 검증 테스트를 위해 테스트 포트로 트래픽을 보내는 경우에만 필요합니다.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 사용할 기본 VPC를 확인합니다. 탐색 창에서 [Your VPCs]를 선택합니다. 기본 VPC 열에서 로 표시된 VPC를 확인합니다. 이 VPC가 기본 VPC입니다. 이 VPC에는 사용하는 기본 서브넷이 포함됩니다.

  3. 서브넷을 선택합니다. 기본 서브넷 열에 로 표시되는 서브넷 두 개의 서브넷 ID를 기록해 둡니다. 로드 밸런서를 생성할 때 이러한 ID를 사용합니다

  4. 각 서브넷을 선택한 다음 설명 탭을 선택합니다. 사용할 서브넷이 다른 가용 영역에 있는지 확인합니다.

  5. 서브넷을 선택한 후 라우팅 테이블 탭을 선택합니다. 사용할 각 서브넷이 퍼블릭 서브넷인지 확인하려면, 인터넷 게이트웨이에 대한 링크가 있는 행이 라우팅 테이블에 포함되어 있는지 확인합니다.

  6. AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  7. 탐색 창에서 [Security Groups]를 선택합니다.

  8. 사용할 보안 그룹이 사용 가능한지 확인하고 그룹 ID(예: sg-abcd1234)를 기록해 둡니다. 로드 밸런서를 생성할 때 이 정보를 사용합니다

Amazon EC2 Application Load Balancer, 두 개의 대상 그룹 및 리스너 생성(콘솔)

Amazon EC2 콘솔을 사용하여 Amazon EC2 Application Load Balancer를 생성하려면 다음과 같이 하세요.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [Load Balancers]를 클릭합니다.

  3. 로드 밸런서 생성을 선택하세요.

  4. Application Load Balancer를 선택하고 생성을 선택합니다.

  5. 이름에 로드밸런서의 이름을 입력합니다.

  6. 체계에서 인터넷 연결을 선택합니다.

  7. IP 주소 유형에서 ipv4를 선택합니다.

  8. (선택 사항) 로드 밸런스를 위한 두 번째 리스너 포트를 구성합니다. 이 포트에 서비스되는 테스트 트래픽을 사용하여 배포 검증 테스트를 실행할 수 있습니다.

    1. 로드 밸런서 프로토콜에서 리스너 추가를 선택합니다.

    2. 두 번째 리스너의 로드밸런서 프로토콜에서 HTTP를 선택합니다.

    3. 로드 밸런서 포트8080을 입력합니다.

  9. 가용 영역VPC에서 기본 VPC를 선택한 후 사용할 기본 서브넷 두 개를 선택합니다.

  10. 다음: 보안 설정 구성을 선택합니다.

  11. Next: Configure Security Groups(다음: 보안 그룹 구성)를 선택하세요.

  12. 기존 보안 그룹 선택을 선택하고, 기본 보안 그룹을 선택한 다음, 해당 ID를 기록해 둡니다.

  13. [Next: Configure Routing]을 선택합니다.

  14. 대상 그룹에서 새 대상 그룹을 선택하고 첫 번째 대상 그룹을 구성합니다.

    1. 이름에 대상 그룹 이름(예: target-group-1)을 입력합니다.

    2. 대상 형식에서 IP을 선택합니다.

    3. 프로토콜에서 HTTP를 선택합니다. 포트80을 입력합니다.

    4. Next: Register Targets(다음: 대상 등록)를 선택합니다.

  15. 다음: 검토를 선택한 후 역할 생성을 선택합니다.

로드밸런서에 대한 두 번째 대상 그룹을 생성하려면

  1. 로드밸런서가 프로비저닝된 후 Amazon EC2 콘솔을 엽니다. 탐색 창에서 [Target Groups]를 선택합니다.

  2. [Create target group]을 선택합니다.

  3. 이름에 대상 그룹 이름(예: target-group-2)을 입력합니다.

  4. 대상 형식에서 IP을 선택합니다.

  5. 프로토콜에서 HTTP를 선택합니다. 포트80을 입력합니다.

  6. VPC에서 기본 VPC를 선택합니다.

  7. Create를 선택합니다.

    참고

    Amazon ECS 배포를 실행하려면 로드밸런서에 대해 두 개의 대상 그룹을 생성해야 합니다. Amazon ECS 서비스를 생성할 때 대상 그룹 중 하나의 ARN을 사용합니다. 자세한 내용은 Amazon ECS 사용 설명서4단계: Amazon ECS 서비스 생성을 참조하세요.

Amazon EC2 Application Load Balancer, 두 개의 대상 그룹 및 리스너 생성(CLI)

AWS CLI을(를) 이용하여 Application Load Balancer 생성

  1. create-load-balancer 명령을 사용하여 Application Load Balancer를 생성합니다. 동일한 가용 영역에 속하지 않은 서브넷 2개와 보안 그룹 하나를 지정합니다.

    aws elbv2 create-load-balancer --name bluegreen-alb \ --subnets subnet-abcd1234 subnet-abcd5678 --security-groups sg-abcd1234 --region us-east-1

    출력에는 로드 밸런서의 Amazon 리소스 이름(ARN)이 다음 형식으로 포함됩니다.

    arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
  2. create-target-group 명령을 사용하여 첫 번째 대상 그룹을 만듭니다. CodeDeploy는 이 대상 그룹의 트래픽을 서비스에 있는 원래 또는 대체 작업 세트로 라우팅합니다.

    aws elbv2 create-target-group --name bluegreentarget1 --protocol HTTP --port 80 \ --target-type ip --vpc-id vpc-abcd1234 --region us-east-1

    출력에는 첫 번째 대상 그룹의 ARN이 다음 형식으로 포함됩니다.

    arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4
  3. create-target-group 명령을 사용하여 두 번째 대상 그룹을 만듭니다. CodeDeploy는 대상 그룹의 트래픽을 첫 번째 대상 그룹에서 서비스되지 않는 작업 세트로 라우팅합니다. 예를 들어, 첫 번째 대상 그룹이 원래 작업 세트로 트래픽을 라우팅하는 경우 이 대상 그룹은 대체 작업 세트로 트래픽을 라우팅합니다.

    aws elbv2 create-target-group --name bluegreentarget2 --protocol HTTP --port 80 \ --target-type ip --vpc-id vpc-abcd1234 --region us-east-1

    출력에는 두 번째 대상 그룹의 ARN이 다음 형식으로 포함됩니다.

    arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4
  4. create-listener 명령을 사용하여 프로덕션 트래픽을 포트 80에 전달하는 기본 규칙이 있는 리스너를 생성합니다.

    aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \ --protocol HTTP --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 --region us-east-1

    출력에는 리스너의 ARN이 다음 형식으로 포함됩니다.

    arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
  5. (선택 사항) create-listener 명령을 사용하여 테스트 트래픽을 포트 8080에 전달하는 기본 규칙이 있는 두 번째 리스너를 생성합니다. 이 포트에 서비스되는 테스트 트래픽을 사용하여 배포 검증 테스트를 실행할 수 있습니다.

    aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \ --protocol HTTP --port 8080 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4 --region us-east-1

    출력에는 리스너의 ARN이 다음 형식으로 포함됩니다.

    arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4