AWS에 클라이언트 서버가 있고 그의 시스템과 EC2 인스턴스 간의 지연 시간을 줄이고 싶습니다. 하나의 가용성 영역에서 두 개의 동일한 서버를 임대하고 클라이언트 API에 요청을 보내기 시작했습니다. 이들 서버의 대기 시간은 서로 다른 것으로 나타났습니다. 95번째 백분위수는 약 5밀리초(평균 대기 시간과 약 30%) 동안 달랐습니다. 그리고 내 목표는 대기 시간을 줄이는 것입니다.
서버를 더 빌려서 이러한 실험을 반복할 수 있다고 생각하지만 이것이 조사의 다음 단계가 될 것입니다. 제가 해야 할 첫 번째 단계는 동일한 영역에 있는 서버가 API 응답 지연 시간에 큰 차이를 보이는 이유와 이를 설명하는 데 어떤 측정항목이 유용할 수 있는지 이해하는 것입니다.
레이턴시를 줄이는 두 번째 방법은 EC2 대신 베어메탈 서버를 임대하는 것인데 비용이 너무 비싼 것 같습니다. 그리고 이 서버를 임대하는 것이 클라이언트 서버에서 멀리 떨어져 있으면 상황이 더욱 악화될까 두렵습니다.
그러니 제발 말해 주세요:
- 대기 시간을 줄이는 방법에 대한 조언이 있습니까?
- 동일한 AWS 영역에서 고객에게 가장 가까운 서버를 임대하려면 어떻게 해야 합니까?
답변1
동일한 AZ에서 시작하더라도 EC2 인스턴스가 다른 데이터 센터에 있을 수 있습니다. 시행착오를 통해 그것들을 하나로 모으는 것은 헛된 일이 될 것입니다.
"배치 그룹"을 살펴보십시오. 여러 EC2 인스턴스를 시작할 때 동일한 데이터 센터에서 시작하여 인스턴스 간의 대기 시간을 줄이는 데 사용됩니다.
배치 그룹에 속하지 않은 기존 EC2 인스턴스가 있는 경우 배치 그룹에 추가하는 것이 불가능할 것 같습니다.
답변2
인스턴스가 동일한 물리적 AZ에 있는지 확인하는 것부터 시작할 수 있습니다. 이는 항상 동일한 건물을 의미하지는 않습니다. RAM(Resource Access Manager)에는 논리적 AZ ID와 물리적 AZ ID의 매핑이 있습니다. 이는 계정 간에 무작위로 이루어집니다. 귀하 계정의 AZ-A가 다른 계정의 AZ-C일 수 있습니다. 이는 대부분의 사람들이 대부분의 리소스를 AZ-A에 배치하여 균형을 맞추기 때문입니다.
그 외에도 클라이언트 시스템에 대한 대기 시간이 짧은 인스턴스를 얻기 위해 시행착오 외에는 할 수 있는 일이 별로 없다고 생각합니다. 나는 꽤 확신한다배치 그룹위에서 언급한 것처럼 단일 계정 내부용이므로 매우 낮은 대기 시간(5ms도 나쁘지 않음)이 필요한 경우 동일한 계정에 있어야 할 수도 있습니다.