2017-11-13 7 views
0

다른 AZ에 2 개의 인스턴스로 구성된 ECS 클러스터가 있습니다. 내가 실행하는 많은 서비스 중 하나가 SMTP 릴레이입니다. 이 서비스 앞에 Network Load Balancer를 사용하여 릴레이를 사용하도록 다른 응용 프로그램을 쉽게 구성하려고합니다. 그렇지 않으면 시간이 초과AWS Network Load Balancer는 소스 인스턴스에서 소스 인스턴스로의 트래픽을 허용하지 않습니다.

컨테이너가 'A'만 예 'B'인스턴스의 존재 그 반대의 경우도 마찬가지 액세스 할 수있는 경우 :

내가 장소에서 모든 것을 가지고 일단

, 나는 다음과 같은 문제에 직면했다. 따라서 Network Load Balancer는 동일한 인스턴스에있는 서비스에 대한 액세스를 차단하는 것으로 보입니다.

여기에 누락 된 것이 있습니까? 누구나 알고 있고 해결 방법이 있습니까?

업데이트 : 서비스를 2 개의 인스턴스로 확장하면 작업이 시작됩니다. 이제는 가용 영역과 관련이 있다고 생각하는 경향이 있습니다.

+0

/etc/resolv.conf를 확인하십시오. 또한 ELB 보안 그룹. –

+0

@AbdennourTOUMI 네트워크로드 밸런서에는 보안 그룹이 없습니다 (예, 충격적입니다). 이름 확인 트릭의 경우 대상 포트가 실제 서비스가 아닌로드 밸런서의 포트라는 것을 고려하면 도움이되지 않습니다. –

답변

0

비슷한 문제가 발생했습니다. 3 AZ 이상

  • VPC 확산 :

    여기 내 설정입니다.

  • 3 개 공개 서브넷 (각 AZ 하나) AZ-A
  • 3 개인 서브넷에서 공공 서브넷 (각 AZ 하나)가 3 개 개인 서브넷 위에
  • 1 NLB 스프레드
  • 1 인스턴스.
  • ECS 인스턴스 클러스터. 각 개인 서브넷에 1 인스턴스. (AZ-a의 인스턴스 -a, AZ-b의 인스턴스 -b, AZ-c의 인스턴스 -c)
  • 각 인스턴스에서 실행되는 서비스. 총 3 개의 건강한 서비스가 NLB에 등록 된 3 개의 개인 서브넷을 통해 전파됩니다.
  • "myservice.example.com"을 NLB DNS 이름에 매핑하는 경로 53 별칭 레코드입니다. 실행 테스트 아래

:. 사설 서브넷에 인스턴스에서 시작

쿼리 "

Test1을 : 예를-A (아리조나-A), 쿼리에서"MYSERVICE .example.com ".

결과 1 : 쿼리가 해당 개인 IP 중 하나에서 NLB를 조회합니다. IP가 instance-a와 동일한 서브넷에 있으면 쿼리가 시간 초과됩니다. IP가 다른 서브넷에 있으면 쿼리가 성공합니다.

Test2를 : 동일 Test1을하지만 인스턴스 B에서 쿼리 로 (AZ-B에서).

결과 2 : 쿼리가 개인 IP 중 하나에서 NLB를 조회합니다. IP가 instance-b와 동일한 서브넷에 있으면 쿼리가 시간 초과됩니다. IP가 다른 서브넷에 있으면 쿼리가 성공합니다.

인스턴스 -c에서 시작된 쿼리와 비슷한 결과입니다. 인스턴스에서 "myservice.example.com"AZ-A, 쿼리의 공공 서브넷 : 공공 서브넷 AZ-A

테스트 3에 인스턴스에서 시작

쿼리.

결과 3 : 쿼리가 개인 IP 중 하나에서 NLB를 조회합니다. 어떤 사설 IP가 히트되었는지에 관계없이 쿼리는 항상 성공합니다. 개인 서브넷에 여분의 예 (예를-A2)에서 시작

쿼리 AZ-A

TEST4 : 나는 AZ-A의 개인 서브넷에 추가 인스턴스 (예를-A2)를 시작했습니다 . 그런 다음 instance-a2에서 "myservice.example.com"으로 질의합니다. 중요 :이 인스턴스는 서비스를 실행하지 않으므로 NLB가 어떤 요청을 라우팅하도록 선택할 수 없습니다.

결과 4 : 쿼리가 항상 성공합니다! 사설 서브넷 A (instance-a2와 동일한 서브넷)에있는 대상을 공격 할 때도 마찬가지입니다.

결론 : 대상 서비스를 호스팅 된 인스턴스에서 쿼리 할 때

  • Test2를 Test1을, 나는 로랑 Jalber Simard과 같은 문제가 발생할 수 있습니다.
  • 테스트 3과 같이 대상 서비스와 동일한 AZ에서 오는 요청으로 인한 문제는 아닌 것 같습니다.
  • Test4을 사용하면 대상 서비스를 호스팅하는 인스턴스와 다른 인스턴스에서 쿼리를 가져 오는 경우 문제를 재현 할 수없는 것으로 보입니다. 동일한 서브넷에 있어도 마찬가지입니다.

따라서, 내 결론은 지금까지 소스 IP 요청와 NLB가 선택한 대상의 대상 IP가 같은 경우 NLB가 타임 아웃 것입니다.

AWS NLB docs에 문서화되어있는이 문제점이나 제한 사항을 찾을 수 없었으며 Google 검색에는 아무 것도 나오지 않았습니다. 아무도 같은 결론에 도달하지 못했습니다?