Jieling 씨가 브리지 모드를 사용하는 동안
ECS의 상태 확인 문제를 해결하는
방법을 안내합니다.

Jieling_Thumbnail

Amazon Elastic Container Service(Amazon ECS)의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 대한 Application Load Balancer 상태 확인에서 비정상 상태가 반환됩니다. Amazon EC2 인스턴스가 상태 확인을 통과하도록 하려면 어떻게 해야 합니까?

Application Load Balancer 상태 확인을 통과하려면 다음을 확인하십시오.

  • Amazon ECS 컨테이너의 애플리케이션이 올바른 응답 코드를 반환합니다.
  • 로드 밸런서 및 컨테이너 인스턴스에 연결된 보안 그룹이 올바르게 구성되어 있습니다.
  • 대상 그룹의 고급 상태 확인 설정이 올바르게 구성되어 있습니다.

Amazon ECS 컨테이너의 애플리케이션이 올바른 응답 코드를 반환하는지 확인

로드 밸런서가 HTTP GET 요청을 상태 확인 경로에 전송할 때 Amazon ECS 컨테이너의 애플리케이션이 기본 200 OK 응답 코드를 반환해야 합니다.

참고: Application Load Balancer를 사용하는 경우 [Matcher] 설정을 업데이트하여 응답 코드를 200이 아닌 다른 값으로 업데이트할 수 있습니다. 자세한 내용은 대상 그룹에 대한 상태 확인을 참조하십시오.

1.    SSH를 이용해 컨테이너 인스턴스에 연결합니다.

2.    (선택 사항) 시스템에 적합한 명령을 사용하여 curl을 설치합니다.

Amazon Linux 및 기타 RPM 기반 배포 환경에서는 다음 명령을 실행합니다.

sudo yum –y install curl

Debian 기반 시스템(예: Ubuntu)에서는 다음 명령을 실행합니다. 

sudo apt-get install curl

3.    다음 명령을 실행하여 컨테이너 ID를 가져옵니다.

docker ps

참고: 명령 출력에서 로컬 리스너의 포트가 PORTS 아래, 시퀀스의 끝에 있는 꺾음괄호 뒤에 표시됩니다.

4.    docker inspect 명령을 사용하여 컨테이너의 IP 주소를 가져옵니다. 다음 예를 참조하십시오.

$ IPADDR=$(docker inspect --format='{{.NetworkSettings.IPAddress}}' aabbccddeeff)

참고: 컨테이너의 IP 주소는 IPADDR에 저장됩니다.

5.    IPADDR 및 로컬 리스너의 포트가 포함된 curl 명령을 실행하여 상태 코드를 가져옵니다. 상태 확인 경로가 /health인 포트 8080을 수신하는 컨테이너의 경우 다음 예를 참조하십시오.

curl -v http://${IPADDR}:8080/health

참고: 명령에서 200 OK가 반환되어야 합니다. 비HTTP 오류 메시지가 수신되면 애플리케이션에서 HTTP 트래픽을 수신하지 않는 것입니다. [Matcher] 설정에 지정한 것과 다른 HTTP 상태 코드가 수신되면 애플리케이션이 수신 중이지만 정상적인 대상의 상태 코드를 반환하지 않는 것입니다.

로드 밸런서 및 컨테이너 인스턴스에 연결된 보안 그룹을 올바르게 구성

모범 사례로서, 로드 밸런서에 대한 보안 그룹과 컨테이너 인스턴스에 대한 보안 그룹을 각각 별도로 구성합니다. 이 모범 사례를 따르면 로드 밸런서와 컨테이너 인스턴스 간의 모든 트래픽이 허용됩니다. 또한 컨테이너 인스턴스가 동적 호스트 포트 매핑에 사용되는 임시 포트 범위에서 트래픽을 받을 수 있습니다.

1.    로드 밸런서에 연결된 보안 그룹이 컨테이너 인스턴스에 연결된 보안 그룹으로 나가는 모든 발신 트래픽을 허용하는지 확인합니다.

2.    컨테이너 인스턴스에 연결된 보안 그룹이 로드 밸런서에 연결된 보안 그룹에서 들어오는 모든 수신 트래픽을 임시 포트 범위(일반적으로 포트 32768-65535)에서 허용하는지 확인합니다.

중요: 작업 정의에 호스트 포트를 선언하면 임시 포트 범위가 아니라 지정된 포트에서 서비스가 노출됩니다. 따라서 보안 그룹에 임시 포트 범위가 아니라 지정된 호스트 포트가 반영되어야 합니다.

로드 밸런서에 연결된 보안 그룹을 확인하려면 Application Load Balancer의 보안 그룹을 참조하십시오.

대상 그룹의 고급 상태 확인 설정을 올바르게 구성

고급 상태 확인 설정을 올바르게 구성하려면 대상 그룹에 대한 상태 확인을 참조하십시오. 고급 상태 확인 설정을 구성할 때는 다음 단계를 신중하게 따르십시오.

1.    Amazon EC2 콘솔을 열고 [Target Groups]를 선택한 후 대상 그룹을 선택합니다.

중요: 새 대상 그룹을 사용해야 합니다. 대상 그룹에 대상을 수동으로 추가하지 마십시오. Amazon ECS가 자동으로 컨테이너를 대상 그룹에 등록하고 등록 취소합니다.

2.    [Health checks] 보기를 선택합니다.

3.    [Port]에서 [traffic port]를 선택합니다.

참고: [Override]를 선택하면 상태 확인 트래픽이 올바르게 라우팅되지 않습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2016년 12월 15일

업데이트 날짜: 2019년 2월 1일