Amazon ECS 서비스
Amazon ECS 서비스를 사용하면 Amazon ECS 클러스터에서 지정된 수의 태스크 정의 인스턴스를 동시에 실행하고 유지 관리할 수 있습니다. 태스크가 실패하거나 중지되면 Amazon ECS 서비스 스케줄러가 태스크 정의의 다른 인스턴스를 시작하여 해당 태스크를 대체합니다. 이렇게 하면 서비스에서 원하는 수의 태스크를 유지 관리하는 데 도움이 됩니다.
또한 선택적으로 로드 밸런서 뒤에서 서비스를 실행할 수도 있습니다. 로드 밸런서는 서비스와 연결된 태스크 간에 트래픽을 분산합니다.
서비스 스케줄러는 장기 실행 상태 비저장 서비스 및 애플리케이션에 사용하는 것이 좋습니다. 서비스 스케줄러는 지정한 일정 전략을 따르는지 확인하고 태스크가 실패하는 경우 태스크 일정을 조정합니다. 예를 들어 기본 인프라가 실패하면 서비스 스케줄러가 태스크 일정을 조정합니다. 작업 배치 전략과 제약 조건을 사용하여 스케줄러가 태스크를 배치하고 종료하는 방법을 사용자 지정할 수 있습니다. 서비스의 태스크가 중지되는 경우 스케줄러는 새 태스크를 시작하여 대체합니다. 이 프로세스는 서비스가 사용하는 일정 전략에 따라 서비스가 원하는 태스크 수에 도달할 때까지 계속됩니다. 서비스의 일정 전략은 서비스 유형이라고도 합니다.
또한 서비스 스케줄러는 컨테이너 상태 확인 또는 로드 밸런서 대상 그룹 상태 확인이 실패한 후 비정상으로 확인된 작업을 대체합니다. 이러한 대체는 maximumPercent
및 desiredCount
서비스 정의 파라미터에 따라 달라집니다. 작업이 비정상으로 표시되면 서비스 스케줄러는 먼저 대체 작업을 시작합니다. 그러면 다음과 같이 진행됩니다.
대체 작업의 상태가
HEALTHY
인 경우 서비스 스케줄러는 비정상 작업을 중지합니다.대체 작업의 상태가
UNHEALTHY
이면, 스케줄러는 비정상 대체 작업 또는 기존의 비정상 작업을 중지하여 총 작업 수가desiredCount
와 같아지도록 합니다.
maximumPercent
파라미터로 인해 스케줄러가 대체 작업을 먼저 시작하는 것이 제한되는 경우, 스케줄러는 비정상 작업을 한 번에 하나씩 임의로 중지하여 용량을 확보한 다음 대체 작업을 시작합니다. 비정상 작업이 모두 정상 작업으로 대체될 때까지 시작 및 중지 프로세스가 계속됩니다. 비정상 작업이 모두 대체되고 정상 작업만 실행 중인 경우 총 작업 수가 desiredCount
를 초과하면 총 작업 수가 desiredCount
와 같아질 때까지 정상 작업을 무작위로 중지합니다. maximumPercent
및 desiredCount
에 대한 자세한 정보는 Service definition parameters를 참조하세요.
서비스 스케줄러에는 태스크가 반복적으로 시작하는 데 실패할 경우 태스크가 다시 시작되는 빈도를 제한하는 로직이 포함됩니다. 태스크가 RUNNING
상태가 되지 않고 중지된 경우, 서비스 스케줄러는 시작 시도 속도를 늦추기 시작하고 서비스 이벤트 메시지를 전송합니다. 이 동작은 해당 문제를 해결하기 전에 실패한 태스크에 불필요한 리소스가 사용되는 것을 방지합니다. 서비스가 업데이트되면 서비스 스케줄러는 정상적인 예약 동작을 다시 시작합니다. 자세한 내용은 Amazon ECS 서비스 제한 로직 및 Amazon ECS 서비스 이벤트 메시지 보기(을)를 참조하세요.
인프라 컴퓨팅 옵션
태스크를 분산하는 두 가지 컴퓨팅 옵션이 있습니다.
-
용량 공급자 전략은 Amazon ECS가 하나 또는 여러 개의 용량 공급자에 태스크를 분배하도록 합니다.
용량 공급자 전략의 경우, 콘솔이 기본적으로 컴퓨팅 옵션을 선택합니다. 다음은 콘솔에서 기본값을 선택하는 순서에 대한 설명입니다.
-
클러스터에 기본 용량 공급자 전략이 정의된 경우 이 전략이 선택됩니다.
-
클러스터에 기본 용량 공급자 전략이 정의되어 있지 않지만 Fargate 용량 공급자가 클러스터에 추가되어 있는 경우
FARGATE
용량 공급자를 사용하는 사용자 지정 용량 공급자 전략이 선택됩니다. -
클러스터에 기본 용량 공급자 전략이 정의되어 있지 않지만 하나 이상의 Auto Scaling 그룹 용량 공급자가 클러스터에 추가된 경우 사용자 지정 사용(고급) 옵션이 선택되고 전략을 수동으로 정의해야 합니다.
-
클러스터에 기본 용량 공급자 전략이 정의되어 있지 않고 클러스터에 용량 공급자가 추가되지 않은 경우 Fargate 시작 유형이 선택됩니다.
-
-
시작 유형에서는 Amazon ECS가 클러스터에 등록된 Fargate 또는 EC2 인스턴스에 대한 태스크가 Amazon ECS에서 곧바로 시작됩니다.
기본적으로 서비스는 클러스터 VPC의 서브넷에서 시작됩니다.
서비스 Auto Scaling
서비스 오토 스케일링은 Amazon ECS 서비스에서 원하는 태스크 수를 자동으로 늘리거나 줄이는 기능입니다. Amazon ECS는 Application Auto Scaling 서비스를 활용하여 이 기능을 제공합니다.
자세한 내용은 Amazon ECS 서비스 자동 조정 섹션을 참조하세요.
서비스 로드 밸런싱
AWS Fargate에서 호스팅되는 Amazon ECS 서비스는 Application Load Balancer, Network Load Balancer, Gateway Load Balancer를 지원합니다. 다음 테이블을 참조하여 사용할 로드 밸런서 유형에 대해 알아보세요.
로드 밸런서 유형 | 다음과 같은 경우에 사용 |
---|---|
Application Load Balancer |
HTTP/HTTPS(또는 계층 7) 트래픽을 라우팅합니다. Application Load Balancer는 Amazon ECS 서비스에 사용할 수 있는 유용한 몇 가지 기능을 제공합니다.
|
Network Load Balancer | TCP 또는 UDP(또는 계층 4) 트래픽을 라우팅합니다. |
Gateway Load Balancer | TCP 또는 UDP(또는 계층 4) 트래픽을 라우팅합니다. 방화벽, 침입 감지 및 방지 시스템, 심층 패킷 검사 시스템과 같은 가상 어플라이언스를 사용하세요. |
자세한 내용은 로드 밸런싱을 사용하여 Amazon ECS 서비스 트래픽 분산 섹션을 참조하세요.
상호 연결 서비스
애플리케이션이 Amazon ECS 서비스로 실행되는 다른 애플리케이션에 연결해야 하는 경우 Amazon ECS에서는 다음과 같이 로드 밸런서 없이 수행하는 방법을 제공합니다.
-
Service Connect - 짧은 이름과 표준 포트를 사용해 자동 검색을 통한 서비스 간 통신을 허용합니다.
-
서비스 검색 - 서비스 검색은 Route 53을 사용하여 서비스에 대한 네임스페이스를 생성합니다. 이를 통해 DNS를 사용하여 검색할 수 있습니다.
-
Amazon VPC Lattice - VPC Lattice는 여러 계정과 VPC에서 서비스를 연결, 보호 및 모니터링하는 완전관리형 애플리케이션 네트워킹 서비스입니다. 이와 관련된 비용이 있습니다.
자세한 내용은 Amazon ECS 서비스 상호 연결 섹션을 참조하세요.