AWS Fargate의 Amazon Elastic Container Service(Amazon ECS) 작업에서 상태 확인에 실패합니다.
해결 방법
가장 일반적인 로드 밸런서 오류 문제 해결
다음 오류 중 하나가 발생하는 경우:
- (service AWS-service) (port 8080) is unhealthy in (target-grouparn:uxyztargetgroup/aws-targetgroup/123456789) due to (reason Health checks failed with these codes: [502]) or [request timeout]
- (service AWS-Service) (port 8080) is unhealthy in target-group tf-20190411170 due to (reason Health checks failed)
다음 문제 해결 단계를 시도해 보세요.
- 컨테이너가 포트 80에 매핑된 경우 컨테이너 보안 그룹이 로드 밸런서의 포트 80에서 인바운드 트래픽을 허용하는지 확인하세요.
- 로드 밸런서 상태에 대한 Ping 포트 값이 올바르게 구성되었는지 확인합니다. 이 포트가 올바르게 구성되지 않은 경우, 로드 밸런서가 컨테이너 자체를 등록 취소할 수 있습니다.
- 상태 확인 유예 기간의 최소 기간을 정의합니다. 이렇게 설정하면 작업이 인스턴스화된 후 사전 정의된 기간 동안 Elastic Load Balancing 상태 확인을 무시하도록 서비스 스케줄러가 설정됩니다.
- 서비스의 CPU 및 메모리 메트릭을 모니터링합니다. 예를 들어, CPU가 높으면 애플리케이션이 응답하지 않아 502 오류가 발생할 수 있습니다.
- 애플리케이션 오류를 보려면 애플리케이션 로그를 확인하세요.
- Ping 포트와 상태 점검 경로가 올바르게 구성되었는지 확인합니다.
- 백엔드 데이터베이스가 성공적으로 연결되었는지 확인합니다. 여기서는 애플리케이션이 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서, Amazon Elastic Container Service(Amazon ECS)에서 시작한 일련의 작업으로 실행되고 있다고 가정합니다. 또한 애플리케이션이 Amazon Relational Database Service(RDS) 데이터베이스와 통신할 수 없다고 가정합니다.
504 오류 문제 해결
다음과 같은 이유로 504 오류가 발생할 수 있습니다.
- 연결 제한 시간이 만료(10초)되기 전 로드 밸런서가 대상에 대한 연결을 설정하지 못했습니다.
- 로드 밸런서가 대상에 연결을 설정했지만 유휴 제한 시간이 경과하기 전에 대상이 응답하지 않았습니다.
- 서브넷의 네트워크 액세스 제어 목록에서 대상에서 임시 포트의 로드 밸런서 노드로 향하는 트래픽을 허용하지 않았습니다(1024-65535).
다음과 같은 504 오류가 발생하는 경우
- (service AWS-Service) (port 8080) is unhealthy in target-group due to (reason Health checks failed with these codes:[504]
다음 문제 해결 단계를 시도해 보세요.
- 백엔드에서 지체 없이 성공적인 응답이 있는지 확인합니다.
- 응답 제한 시간 값을 올바르게 설정하세요.
참고: 응답 시간 제한은 컨테이너에서 상태 확인 Ping에 응답을 반환하는 데 걸리는 시간입니다. 이 값이 응답에 필요한 시간보다 낮으면 상태 확인이 실패합니다.
- 오류에 대한 자세한 내용은 로드 밸런서의 액세스 로그를 확인하세요.
컨테이너 상태 검사 실패 문제 해결
다음 오류가 발생하면, 서비스가 로드 밸런서와 통합되지 않았지만 작업의 컨테이너가 서비스가 통과할 수 없는 상태 확인을 사용하고 있는 것입니다.
- (service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) failed container health checks
다음 문제 해결 단계를 시도하세요.
- 컨테이너에 전달하는 명령이 올바르고 구문이 올바른지 확인합니다.
- 작업이 한동안 실행된 경우 애플리케이션 로그와 Amazon CloudWatch logs를 확인하세요.
**참고:**Fargate는 AWS에서 관리하므로 기본 호스트에 액세스할 수 없습니다. 추가 문제 해결을 위해 Amazon EC2에서 Amazon ECS 작업을 시작하세요. 그런 다음, SSH를 사용하여 EC2 인스턴스에 연결합니다.
관련 정보
서비스 정의 매개변수
고급 컨테이너 정의 파라미터
액세스 로깅 활성화
Application Load Balancer 문제 해결