다른 서버에 대한 지연 시간이 가장 짧은 AWS EC2를 찾는 방법

다른 서버에 대한 지연 시간이 가장 짧은 AWS EC2를 찾는 방법

AWS에 클라이언트 서버가 있고 그의 시스템과 EC2 인스턴스 간의 지연 시간을 줄이고 싶습니다. 하나의 가용성 영역에서 두 개의 동일한 서버를 임대하고 클라이언트 API에 요청을 보내기 시작했습니다. 이들 서버의 대기 시간은 서로 다른 것으로 나타났습니다. 95번째 백분위수는 약 5밀리초(평균 대기 시간과 약 30%) 동안 달랐습니다. 그리고 내 목표는 대기 시간을 줄이는 것입니다.

서버를 더 빌려서 이러한 실험을 반복할 수 있다고 생각하지만 이것이 조사의 다음 단계가 될 것입니다. 제가 해야 할 첫 번째 단계는 동일한 영역에 있는 서버가 API 응답 지연 시간에 큰 차이를 보이는 이유와 이를 설명하는 데 어떤 측정항목이 유용할 수 있는지 이해하는 것입니다.

레이턴시를 줄이는 두 번째 방법은 EC2 대신 베어메탈 서버를 임대하는 것인데 비용이 너무 비싼 것 같습니다. 그리고 이 서버를 임대하는 것이 클라이언트 서버에서 멀리 떨어져 있으면 상황이 더욱 악화될까 두렵습니다.

그러니 제발 말해 주세요:

  1. 대기 시간을 줄이는 방법에 대한 조언이 있습니까?
  2. 동일한 AWS 영역에서 고객에게 가장 가까운 서버를 임대하려면 어떻게 해야 합니까?

답변1

동일한 AZ에서 시작하더라도 EC2 인스턴스가 다른 데이터 센터에 있을 수 있습니다. 시행착오를 통해 그것들을 하나로 모으는 것은 헛된 일이 될 것입니다.

"배치 그룹"을 살펴보십시오. 여러 EC2 인스턴스를 시작할 때 동일한 데이터 센터에서 시작하여 인스턴스 간의 대기 시간을 줄이는 데 사용됩니다.

배치 그룹에 속하지 않은 기존 EC2 인스턴스가 있는 경우 배치 그룹에 추가하는 것이 불가능할 것 같습니다.

답변2

인스턴스가 동일한 물리적 AZ에 있는지 확인하는 것부터 시작할 수 있습니다. 이는 항상 동일한 건물을 의미하지는 않습니다. RAM(Resource Access Manager)에는 논리적 AZ ID와 물리적 AZ ID의 매핑이 있습니다. 이는 계정 간에 무작위로 이루어집니다. 귀하 계정의 AZ-A가 다른 계정의 AZ-C일 수 있습니다. 이는 대부분의 사람들이 대부분의 리소스를 AZ-A에 배치하여 균형을 맞추기 때문입니다.

그 외에도 클라이언트 시스템에 대한 대기 시간이 짧은 인스턴스를 얻기 위해 시행착오 외에는 할 수 있는 일이 별로 없다고 생각합니다. 나는 꽤 확신한다배치 그룹위에서 언급한 것처럼 단일 계정 내부용이므로 매우 낮은 대기 시간(5ms도 나쁘지 않음)이 필요한 경우 동일한 계정에 있어야 할 수도 있습니다.

AZ 매핑

관련 정보