서비스 로드 밸런싱 - Amazon Elastic Container Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

서비스 로드 밸런싱

필요하다면 Elastic Load Balancing를 사용하여 서비스의 작업에 트래픽을 균등하게 분산하도록 Amazon ECS 서비스를 구성할 수 있습니다.

Amazon ECS에서 호스팅되는 서비스Amazon EC2인스턴스는Application Load Balancer,Network Load Balancer, 및Classic Load Balancer로드 밸런서 유형을 생성합니다.Amazon ECS에서 호스팅되는 서비스AWS Fargate지원Application Load Balancer및Network Load Balancer만 해당.Application Load Balancer는 HTTP/HTTPS (또는 레이어 7) 트래픽을 라우팅하는 데 사용됩니다.Network Load Balancer는 TCP 또는 UDP (또는 레이어 4) 트래픽을 라우팅하는 데 사용됩니다.Classic Load Balancer는 TCP 트래픽을 라우팅하는 데 사용됩니다. 자세한 정보는 로드 밸런서 유형을 참조하십시오.

Application Load Balancer는 Amazon ECS 서비스에 사용할 수 있는 유용한 몇 가지 기능을 제공합니다.

  • 각 서비스는 여러 대상 그룹을 지정할 경우 여러 로드 밸런서의 트래픽을 처리하며 여러 로드 밸런스 포트를 노출합니다.

  • 이 기능은 둘 다에서 호스팅되는 작업에서 지원됩니다.Fargate및EC2인스턴스를 생성합니다.

  • Application Load Balancer는 컨테이너가 동적 호스트 포트 매핑을 사용하도록 허용합니다(그래서 컨테이너 인스턴스마다 동일 서비스의 여러 작업이 허용됩니다).

  • Application Load Balancer는 포트 기반 라우팅과 우선 순위 규칙을 지원합니다(그래서 여러 서비스가 단일 Application Load Balancer에서 동일한 리스너 포터를 사용할 수 있습니다).

Network Load Balancer 또는 Classic Load Balancer에만 제공되는 기능이 필요한 경우가 아니라면 이러한 최신 기능을 이용할 수 있도록 Amazon ECS 서비스에 Application Load Balancer를 사용하는 것이 좋습니다. Elastic Load Balancing와 각 로드 밸런서 유형의 차이점에 대한 자세한 내용은 Elastic Load Balancing 사용 설명서를 참조하십시오.

로드 밸런서에서는 사용한 만큼만 지불하면 됩니다. 자세한 내용은 Elastic Load Balancing 요금을 참조하세요.

서비스 로드 밸런싱 고려 사항

서비스 로드 밸런싱을 사용할 때는 다음을 고려하십시오.

Application Load Balancer및Network Load Balancer고려 사항

다음 고려 사항은 Application Load Balancers 또는 Network Load Balancer를 사용하는 Amazon ECS 서비스에만 해당됩니다.

  • Amazon ECS서비스 연결 서비스 연결 필요IAM역할을 사용하는 경우 작업이 생성되고 중지될 때 로드 밸런서에 대상을 등록 및 등록 취소하는 데 필요한 권한을 제공합니다. 자세한 정보는 Amazon ECS의 서비스 연결 역할을 참조하십시오.

  • Application Load Balancer 또는 Network Load Balancer를 사용하는 서비스의 경우 5개 이상의 대상 그룹을 서비스에 연결할 수 없습니다.

  • 작업을 사용하는 서비스의 경우awsvpc네트워크 모드, w서비스의 대상 그룹을 생성하려면ip가 아닌 대상 유형으로instance. 이는 awsvpc 네트워크 모드를 사용하는 작업이 Amazon EC2 인스턴스가 아닌 탄력적 네트워크 인터페이스와 연결되기 때문입니다.

  • 서비스에서Application Load Balancer를 사용하고 HTTP/HTTPS 서비스에 대해 포트 80 및 포트 443과 같은 여러 로드 밸런싱 포트에 액세스해야 하는 경우 두 개의 리스너를 구성할 수 있습니다. 한 리스너는 요청을 서비스로 전달하는 HTTPS를 담당하고 다른 리스너는 HTTP 요청을 적절한 HTTPS 포트로 경로를 재지정하는 책임을 집니다. 자세한 내용은 단원을 참조하십시오.리스너 생성Application Load BalancerApplication Load Balancers 사용 설명서.

  • 로드 밸런서 서브넷 구성에는 컨테이너 인스턴스가 상주하는 모든 가용 영역이 포함되어야 합니다.

  • 서비스를 만든 후, 서비스 정의에 지정된 대상 그룹 ARN 또는 로드 밸런서 이름, 컨테이너 이름 및 컨데이터 포트는 변경할 수 없습니다. 기존 서비스의 로드 밸런서 구성은 추가, 제거 또는 변경할 수 없습니다. 서비스에 대한 작업 정의를 업데이트하는 경우 작업 정의에서 서비스를 만든 때 지정한 컨테이너 이름 및 컨테이너 포트가 그대로 유지되어야 합니다.

  • 서비스의 작업이 로드 밸런서 상태 확인 기준에 실패하면 작업이 중단되고 다시 시작됩니다. 이 프로세스는 서비스가 원하는 실행 작업 수에 도달할 때까지 계속됩니다.

  • Application Load Balancer 느린 시작 모드가 지원됩니다. 자세한 정보는 Application Load Balancer느린 시작 모드 고려 사항을 참조하십시오.

  • IP 주소로 구성된 Network Load Balancer를 대상으로 사용하는 경우 요청은 Network Load Balancer의 프라이빗 IP 주소에서 오는 것으로 간주됩니다. 이는 서비스 뒤에 있음을 의미합니다.Network Load Balancer는 대상의 보안 그룹에서 수신 요청 및 상태 확인을 허용하는 즉시 전 세계에 효과적으로 열려 있습니다.

  • 사용Network Load Balancer를 선택해 UDP 트래픽을Amazon ECS작업Fargate플랫폼 버전을 사용하려면 작업이 필요합니다.1.4.0.

  • 로드 밸런서-활성화 서비스에 문제가 있는 경우, 서비스 로드 밸런서 문제 해결을 참조하십시오.

Application Load Balancer느린 시작 모드 고려 사항

Application Load Balancer가 느린 시작 모드에 대해 활성화되고 Amazon ECS 서비스에 대해 지원됩니다. 느린 시작 모드에 대한 자세한 내용은 단원을 참조하십시오.Application Load Balancer 대상 그룹.

작업이 웜업되고 트래픽을 받을 준비가 될 때까지 서비스 스케줄러가 비정상 컨테이너 상태 점검을 무시하도록 하려면 다음 구성이 필요합니다.

  • 느린 시작 기간이 끝날 때까지 UNHEALTHY 상태를 반환하도록 컨테이너 상태 점검을 구성해야 합니다.

  • 느린 시작 모드 기간과 동일한 기간 동안 Amazon ECS 서비스의 상태 점검 유예 기간 값을 구성해야 합니다.

Application Load Balancer 느린 시작 모드에서 다른 작업 네트워크 모드를 사용하는 경우 다음을 고려하십시오.

  • awsvpc 네트워크 모드를 사용할 때 각 작업에는 고유한 탄력적 네트워크 인터페이스(ENI)와 IP 주소가 할당되어 Application Load Balancer가 각 작업을 대상 그룹의 대상으로 등록할 수 있습니다. 이렇게 하면 새로 등록된 각 대상에 느린 시작 모드가 활성화됩니다.

  • host 네트워크 모드를 사용하는 경우 작업은 Docker 네트워킹 구성을 무시하고 컨테이너 포트를 Amazon EC2 인스턴스의 네트워크 인터페이스에 직접 매핑합니다. 컨테이너 인스턴스를 작업의 IP 주소가 아닌 Application Load Balancer 대상으로 등록합니다. 즉, 느린 시작 모드를 효과적으로 작동시키려면 인스턴스 당 하나의 작업만 실행할 수 있습니다. 기존 작업 또는 서비스를 업데이트하거나 컨테이너 인스턴스를 다시 시작한 경우 컨테이너 인스턴스를 Application Load Balancer 대상으로 다시 등록하지 않으므로 느린 시작 시간이 시작되지 않습니다.

  • bridge 네트워크 모드를 사용하는 경우 host 네트워크 모드를 사용하는 것과 마찬가지로 컨테이너 인스턴스를 Amazon ECS 작업이 아닌 Application Load Balancer 대상으로 등록하므로 위에서 설명한 것과 동일한 고려 사항이 적용됩니다.

또한 다음 고려 사항은 Application Load Balancer 느린 시작 모드를 사용하고 Amazon ECS 작업을 대상으로 추가할 때에만 적용됩니다.

  • 대상 그룹을 위해 느린 시작을 활성화하면, 대상 그룹으로 이미 등록된 대상은 느린 시작 모드를 시작하지 않습니다.

  • 비어있는 대상 그룹을 위해 느린 시작을 활성화한 다음 단일 등록 작업을 사용하여 하나 이상의 대상을 등록하면, 이러한 대상들은 느린 시작 모드를 시작하지 않습니다. 느린 시작 모드 상태가 아닌 등록된 대상이 최소한 하나 이상 있는 경우에만 새로 등록된 대상이 느린 시작 모드를 시작합니다.

  • 느린 시작 모드에서 대상을 등록 취소하는 경우 대상이 느린 시작 모드를 종료합니다. 동일한 대상을 다시 등록하는 경우 대상이 다시 느린 시작 모드를 시작합니다.

  • 느린 시작 모드의 대상이 비정상적인 상태가 되었다가 기간이 경과하기 전에 다시 정상적인 상태가 되는 경우, 대상은 남은 기간이 만료될 때까지 느린 시작 모드로 유지되고 이후 시작 모드를 종료합니다. 느린 시작 모드가 아닌 대상이 비정상에서 정상으로 바뀌는 경우에는 느린 시작 모드를 시작하지 않습니다.

Classic Load Balancer 고려 사항

다음 고려 사항은 Classic Load Balancers를 사용하는 Amazon ECS 서비스에만 해당됩니다.

  • Fargate 시작 유형의 서비스와 같이 awsvpc 네트워크 모드를 사용하는 작업이 있는 서비스는 Classic Load Balancer를 지원하지 않습니다.

  • 단일 작업 정의에서 시작되는 모든 컨테이너는 항상 동일한 컨테이너 인스턴스에 배치됩니다. Classic Load Balancer의 경우, 서비스 정의에서 다수의 호스트 포트를 정의하고 이러한 리스너 포트를 로드 밸런서에 추가하여 동일 로드 밸런서 뒤에 (동일 작업 정의 내의) 다수의 컨테이너를 둘 수 있습니다. 예를 들어 컨테이너 인스턴스에서 포트 3030을 사용하는 Elasticsearch와 해당 컨테이너 인스턴스에서 포트 4040을 사용하는 Logstash 및 Kibana로 작업 정의가 구성되는 경우, 동일한 로드 밸런서가 2개의 리스너를 통해 Elasticsearch와 Kibana에 트래픽을 라우팅할 수 있습니다. 자세한 내용은 단원을 참조하십시오.용 리스너Classic Load BalancerClassic Load Balancers 사용 설명서.

    중요

    동일 Classic Load Balancer에 여러 서비스를 연결하지 않는 것이 좋습니다. 전체 컨테이너 인스턴스는 호스트 및 포트 조합이 아닌 Classic Load Balancer로 등록 및 등록 취소되므로 이 구성으로 인해 한 서비스의 작업이 중지될 경우 문제가 발생할 수 있습니다. 이 시나리오에서 한 서비스 중지의 작업으로 인해 전체 컨테이너 인스턴스가 Classic Load Balancer에서 등록 취소될 수 있으며 동일한 컨테이너 인스턴스의 다른 서비스에서 다른 작업이 계속 사용됩니다. 여러 서비스를 단일 로드 밸런서에 연결하려면 Application Load Balancer를 사용하는 것이 좋습니다.