효율적인 AWS 리전별 속도 측정

아마존은 이 포스팅을 작성하는 시점 기준으로 총 12개의 리전을 제공한다. 아무리 아키텍처의 최적화를 통해 서비스의 퍼포먼스를 개선한다고 해도 서버와 고객간의 물리적인 속도를 개선할 수 있는 방법은 오로지 고객과 서버와의 거리를 좁히는 방법 뿐이다. 따라서 AWS 인프라를 구성할 때 서비스의 고객의 국가를 고려하여 리전을 선택하고 해당 리전에 배포해야 한다.

아마존 리전에 있는 인스턴스와 내 컴퓨터와의 응답 속도를 측정하기 위해서는 간단히 ping 명령어를 사용하면 된다. 이를 위해서는 체크하고자 하는 리전에 ICMP 프로토콜에 접근을 허용한 인스턴스가 있어야 한다. 응답 속도 체크하자고 12개 리전에 인스턴스를 일일이 생성할 수는 없는 일. 아마존에서 공개한 서버가 있는 것 같긴한데 이를 위해 구글링 하는 것은 이 포스트의 목적에 벗어나기 때문에 넘어간다.

다행히도 이런 번거로움을 해결해주는 사이트가 있다. 먼저 소개할 사이트는 cloudping 이다.

cloudping

하단에 위치한 HTTP Ping 버튼을 누르면 모든 리전에 한번씩 Ping을 보내 응답 속도를 체크해준다. 대장은 한국에 살고 있기 때문에 서울 리전에 속도가 가장 빠르다. 반응 속도는 항상 일정한 것이 아니기 때문에 속도는 매번 랜덤하지만 대충 엇비슷하게 나온다. 더 정확도를 높히고 싶다면 여러 번의 핑을 날려보고 평균값을 확인하는 것이 좋다.

클라우드핑의 문제점은 내가 위치한 곳을 기준으로 한 응답 속도만 체크할 수 있다는 점이다. 만약 프랑스에서 서비스하는 제품이라면 한국에서 반응 속도가 빠른 리전은 그다지 필요치 않다. 이를 해결하기 위해서는 Proxy 서비스를 이용해서 해당 국가로 프록시하여 체크하는 방법이 있는데 번거롭다. 이런 불편함을 위해서 국내 기업인 mobilfactory 에서 만든 웹사이트가 있다.

mobilfactory's cloudping

디자인은 cloudping과 비슷하나 3번의 핑을 날려 평균값을 구해준다. 2개의 리전이 빠져있지만 베이징의 경우 어짜피 중국인이 아니면 사용할 수 없고 Mumbai 도 마찬가지이지 않을까 예상된다. 또 하나의 장점은 각 지역별 응답 속도 통계를 제공해준다는 점이다. Show Statistics 버튼을 누르면 아래와 같은 화면을 볼 수 있다.

show Statistics

만약 프랑스와 같은 유럽권에 서비스하고 싶다면 통계표를 통해 Ireland나 Frankfurt 리전에서 서비스하면 비교적 빠른 응답 속도를 기대할 수 있을 것이라 예상할 수 있다.