Amazon ECS의 서비스 로드 밸런서 문제 해결
Amazon ECS 서비스는 Elastic Load Balancing 로드 밸런서에 태스크를 등록할 수 있습니다. 로드 밸런서 구성 오류는 중지된 작업의 일반적 원인입니다. 중지된 작업이 로드 밸런서를 사용하는 서비스에 의해 시작된 경우, 가능한 다음 원인을 고려하세요.
- Amazon ECS 서비스 연결 역할이 없음
-
Amazon ECS 서비스 연결 역할을 사용하면 Amazon ECS 서비스가 Elastic Load Balancing 로드 밸런서에 컨테이너 인스턴스를 등록할 수 있습니다. 계정에서 서비스 연결 역할이 생성되어야 합니다. 자세한 내용은 Amazon ECS에 대해 서비스 연결 역할 사용 섹션을 참조하세요.
- 컨테이너 인스턴스 보안 그룹
-
컨테이너가 컨테이너 인스턴스에서 포트 80에 매핑된 경우, 로드 밸런서 상태 확인에 통과하려면 컨테이너 인스턴스 보안 그룹이 포트 80에서 인바운드 트래픽을 허용해야 합니다.
- 모든 가용 영역에 대해 Elastic Load Balancing 로드 밸런서가 구성되지 않음
-
리전 내의 모든 가용 영역 또는 적어도 컨테이너 인스턴스가 상주하는 모든 가용 영역을 사용하도록 로드 밸런서를 구성해야 합니다. 서비스가 로드 밸런서를 사용하고 로드 밸런서가 사용하도록 구성되지 않은 가용 영역에 상주하는 컨테이너 인스턴스에서 작업을 시작하는 경우, 해당 태스크는 절대로 상태 확인을 통과하지 못합니다. 그 결과 작업이 종료됩니다.
- Elastic Load Balancing 로드 밸런서 상태 확인이 잘못 구성됨
-
로드 밸런서 상태 확인 파라미터가 지나치게 제한적이거나 존재하지 않는 리소스를 가리키고 있을 수 있습니다. 컨테이너 인스턴스 상태가 비정상이라고 판단되면 로드 밸런서에서 제거됩니다. 서비스 로드 밸런서에 대해 다음 파라미터가 올바로 구성되어 있는지 확인해야 합니다.
- Ping Port
-
로드 밸런서 상태 확인의 Ping Port 값은 컨테이너 인스턴스 상의 포트로서 정상 여부는 로드 밸런서가 확인합니다. 이 포트가 잘못 구성되면 로드 밸런서가 이 포트에서 컨테이너 인스턴스 등록을 취소할 수도 있습니다. 이 포트는 상태 확인에 사용하는 서비스의 태스크 정의에서 컨테이너에
hostPort
값을 사용하도록 구성되어야 합니다. - Ping Path
-
로드 밸런서 상태 확인의 일부입니다. 애플리케이션이 정상일 때 성공 상태 코드(예: 200)를 반환할 수 있는 애플리케이션의 엔드포인트입니다. 이 값은 흔히
index.html
로 설정되지만 서비스가 해당 요청에 응답하지 않는 경우에는 상태 확인에 실패합니다. 컨테이너에index.html
파일이 없는 경우, 이를/
로 설정하여 컨테이너 인스턴스의 기본 URL을 대상으로 지정할 수 있습니다. - Response Timeout
-
상태 확인 ping에 대해 응답을 반환해야 하는 시간입니다. 이 값이 응답에 필요한 시간보다 낮으면 상태 확인이 실패합니다.
- Health Check Interval
-
상태 확인 ping 사이의 시간입니다. 상태 확인 간격이 짧을수록 컨테이너 인스턴스가 비정상 임계값(Unhealthy Threshold)에 빠르게 도달할 수 있습니다.
- Unhealthy Threshold
-
컨테이너 인스턴스 상태가 비정상이라고 간주될 때까지 허용되는 상태 확인 실패 횟수입니다. 비정상 임계값이 2이고 상태 확인 간격이 30초인 경우, 작업이 60초 동안 상태 확인 ping에 응답하지 않으면 비정상으로 간주됩니다. 비정상 임계값 또는 상태 확인 간격을 늘리면 작업의 응답 시간을 늘릴 수 있습니다.
servicename
서비스를 업데이트할 수 없음: 작업 정의에서 로드 밸런서 컨테이너 이름 또는 포트가 변경됨-
서비스에서 로드 밸런서를 사용하는 경우 AWS CLI 또는 SDK를 사용하여 로드 밸런서 구성을 수정할 수 있습니다. 구성을 변경하는 방법에 대한 자세한 정보는 Amazon Elastic Container Service API Reference(Amazon Elastic Container Service API 레퍼런스)의 UpdateService를 참조하세요. 서비스에 대한 작업 정의를 업데이트하는 경우, 로드 밸런서 구성에서 지정한 컨테이너 이름 및 컨테이너 포트는 작업 정의에서 그대로 유지해야 합니다.
- 동시에 실행할 수 있는 작업 수의 제한에 도달했습니다.
-
새 계정의 경우 할당량이 서비스 할당량보다 낮을 수 있습니다. 계정의 서비스 할당량은 Service Quotas 콘솔에서 볼 수 있습니다. 할당량 증가를 요청하려면 Service Quotas 사용 설명서의 할당량 증가 요청을 참조하세요.