TCP 연결 시간 지연을 초래하는 연결 충돌을 방지하는 방법 - AWS Global Accelerator

TCP 연결 시간 지연을 초래하는 연결 충돌을 방지하는 방법

AWS Global Accelerator의 연결 충돌로 인해 간헐적인 연결 문제가 발생할 수 있습니다. 이는 특정 시나리오에서 사용자(동일한 소스 IP 및 소스 포트 포함)가 Global Accelerator의 리소스에 액세스할 때 발생할 수 있습니다. 충돌로 인해 액셀러레이터를 통과하는 트래픽의 TCP 연결 시간이 지연될 수 있습니다.

액셀러레이터 엔드포인트의 다른 대상 포트로 들어오는 트래픽을 라우팅할 수 있는 Global Accelerator의 특성인 포트 재정의로 액셀러레이터를 구성하여 이러한 지연을 방지할 수 있습니다. 이 섹션의 지침에 따라 포트 재정의를 사용하여 연결 충돌을 방지하고 잠재적인 TCP 연결 시간 지연을 방지하는 방법을 알아봅니다.

연결 충돌을 일으킬 수 있는 시나리오

Global Accelerator에는 연결 충돌로 이어져 TCP 연결 시간 지연으로 이어질 수 있는 3가지 시나리오가 있습니다.

  • 여러 액셀러레이터로 엔드포인트로서 동일한 리소스를 구성합니다.

  • 리소스를 Global Accelerator 뒤에 있는 엔드포인트로서 구성하고 인터넷을 통해 최종 사용자로부터 동일한 리소스로 트래픽을 직접 전송합니다.

  • 교차 영역 트래픽의 Network Load Balancer 엔드포인트를 구성합니다.

Network Load Balancer 엔드포인트의 경우, 연결 충돌을 방지하려면 로드 밸런서의 교차 영역 트래픽을 비활성화하는 것이 좋습니다. 자세한 내용은 Network Load Balancer 사용 설명서TCP 연결 지연을 참조하세요.

다른 시나리오의 경우, 충돌을 방지하려면 엔드포인트 그룹과 함께 포트 재정의 특성을 사용하는 것이 좋습니다. 포트 재정의를 사용하여 Global Accelerator 리스너 포트를 엔드포인트 리소스의 다른 대상 포트 번호에 매핑할 수 있습니다. 리스너 포트는 기본적으로 엔드포인트 리소스에서 동일한 포트 번호를 사용합니다. 포트 재정의를 사용하면 액셀러레이터는 동일한 사용자(소스 IP 및 소스 포트 포함)의 트래픽을 동일한 엔드포인트로 라우팅할 수 있지만 충돌을 방지하는 다른 대상 포트 번호를 사용할 수 있습니다.

다음 섹션에서는 연결 충돌을 방지하기 위해 포트 재정의를 구성하는 방법에 대한 각 시나리오의 구체적인 예제를 제공합니다. 포트 재정의 구성에 대한 자세한 내용은 제한된 포트 또는 연결 충돌에 대해 리스너 포트 재정의 섹션을 참조하세요.

포트 재정의를 사용하여 연결 충돌을 방지하는 방법

기본적으로 액셀러레이터는 리스너를 생성할 때 지정되는 동일한 프로토콜과 동일한 대상 포트 범위를 사용하여 AWS 리전에서 엔드포인트로 사용자 트래픽을 라우팅합니다. 하지만 리스너 포트의 포트 번호 매핑을 재정의하도록 선택할 수도 있습니다. 즉, 리스너 포트 번호를 매핑하여 엔드포인트의 다른 대상 포트 번호로 트래픽을 라우팅할 수 있습니다.

예를 들어, 포트 80 및 443에서 TCP 트래픽을 수락하는 리스너를 정의하는 경우, 기본적으로 액셀러레이터는 엔드포인트의 동일한 포트인 80 및 443으로 트래픽을 라우팅합니다. 하지만 포트 재정의 특성을 사용하면 액셀러레이터는 해당 포트에서 들어오는 트래픽을 8080 및 8443과 같은 엔드포인트의 다른 포트로 라우팅할 수 있습니다.

동일한 리소스가 구성된 2개(또는 그 이상)의 액셀러레이터에서 리스너에 대해 서로 다른 포트 매핑을 생성하여 각 액셀러레이터에 대해 별도의 대상 포트 번호를 사용하고 충돌을 방지할 수 있습니다.

예를 들어, Accelerator-A와 Accelerator-B가 있고 각각 TCP와 포트 443에 대해 구성된 리스너가 있다고 가정해 보겠습니다. Accelerator-A의 리스너가 포트 443을 8443에 매핑하고 Accelerator-B의 리스너가 포트 443을 9443에 매핑하도록 포트 재정의를 설정할 수 있습니다. 이제 Application Load Balancer 엔드포인트 ALB-1234를 구성하여 포트 8443과 9443 모두에서 수신 대기합니다. 그런 다음 동일한 사용자 IP 주소에서 포트 443(두 액셀러레이터의 리스너로)으로 들어오는 트래픽은 연결 충돌 또는 TCP 연결 시간 지연 없이 ALB-1234에 도착합니다.

다음의 그림 예제에서 트래픽 경로를 볼 수 있습니다.

Accelerator-A [listener: tcp,443] → Endpoint-Group [port-override: 443→8443] → ALB-1234 (listener: HTTPS,8443)

Accelerator-B [listener: tcp,443] → Endpoint-Group [port-override: 443→9443] → ALB-1234 (listener: HTTPS,9443)

유사한 방법으로 포트 재정의를 사용하여 액셀러레이터의 리스너 포트 번호에 대한 기본값 매핑을 재정의하여 직접 사용자 트래픽과 액셀러레이터를 통해 액세스되는 리소스에 대한 연결 충돌을 방지할 수 있습니다. 이 시나리오에서 충돌을 방지하려면 다음을 수행합니다.

  1. 리소스가 직접 트래픽에 대해 수신 대기할 포트를 결정합니다.

  2. 기본값 포트를 재정의하도록 액셀러레이터의 리스너를 구성하고, 액셀러레이터 트래픽의 해당 포트에 대해 수신 대기할 리소스에서 리스너를 구성합니다.

예를 들어, 액셀러레이터의 리스너에 대해 포트 재정의를 설정하여 포트 443을 포트 8443에 매핑할 수 있습니다. 이제 포트 8443에서 액셀러레이터 트래픽을 수신 대기하고 포트 443에서 직접 트래픽을 수신 대기하도록 Application Load Balancer 엔드포인트를 구성할 수 있습니다. 이 구성으로 동일한 사용자 IP 주소에서 들어오는 트래픽에 대한 Application Load Balancer의 연결 충돌을 방지할 수 있습니다.