[AWS] 교차영역(Cross Zone) 구성 시 접속지연 테스트

안녕하세요, 누리클라우드입니다. 서비스 시스템을 구성할 때 흔히 가용성을 위해 웹서버 디비서버 등의 인스턴스를 Multi-AZ로 배치합니다. 이번 글에서는 AZ간의 통신속도를 테스트해보고 혹시 교차영역(Cross Zone) 간의 latency로 인해 접속 지연 등의 서비스 품질에 문제가 없는지 그리고 Multi-AZ, Single-AZ 환경의 장단점을 알아보겠습니다.

교차영역과 단일영역의 접속지연 테스트

두 구성의 접속지연 차이를 확인해보기 위해 아래와 같은 구성으로 3개의 인스턴스를 배치한 후,

동일영역과 교차영역 간의 웹페이지 로딩 속도를 체크해 보고 차이를 비교해 보도록 하겠습니다.

접속 지연 테스트에 사용할 웹페이지는 디비서버와의 트랜젝션을 몇차례 수행하는 간단한 동적 웹페이지로 준비합니다.

 

1.웹서버 및 테스트 페이지

#vi /var/www/html/latency_test.php

디비서버와 트랜젝션을 수행하는 테스트 페이지를 아래와 같은 내용으로 작성하였습니다.

DB list테이블은 위와 같이 만들어 놓았습니다.

 

2.테스트 페이지 확인

http://IP/latency_test.php?count=10

3.접속지연 테스트

접속지연 테스트를 위한 웹페이지 로딩시간은 latency_test.php 파일 내에 코드를 삽입 하여 확인합니다.

결과

그래프에서 보듯이 트랜잭션 횟수가 높아 질수록 교차영역과 동일영역과의 접속지연차이가 점점 커지는 것을 확인 할 수 있습니다.

웹-디비 구간을 구성할 때, 동적 페이지를 로딩 시 50회 이상의 디비와의 트랜젝션이 필요한 경우는 교차영역으로 구성하면 단일영역으로 구성한 경우보다 약 100ms 정도의 로딩지연이 예상되므로 가급적 단일영역으로 구성하는 것이 좋겠습니다.

사이트를 페이지 로딩이 적은 가벼운 페이지들로 구성한 경우는, AZ 문제 발생 시 서비스 연속성을 어느 정도 확보할 수 있는 교차영역으로 구성하는 것이 좋겠습니다.

단, 교차영역으로 웹-디비를 구성 시 디비 쿼리의 결과값을 웹서버로 전송할 때 AZ간 Transfer 비용이 발생합니다(외부 Transfer 비용의 약 1/12 정도). 일반적인 경우 웹-디비 간 전송 데이터는 문자열이라 전송량에 크게 영향을 주지 않지만 만약 비용이 어느 정도 발생하는 경우는 단일영역 구성으로 변경하는 것이 좋습니다.