S3와 Route53을 이용하여 정적 웹사이트를 구성하는 방법을 통해서 간단하게 정적 웹 사이트 서비스를 AWS를 이용해서 올려 보았다. 하지만 이렇게 편리하게 만들어진 웹 사이트의 반응성은 어떨까 ? 최근의 인터넷 서비스는 상당히 빠른 응답 속도를 자랑하고 콘텐츠 양이 많더라도 크게 영향 받지 않고 서비스를 쾌적하게 사용할 수 있게 해주기 때문에 아주 중요한 부분이므로 한번 간단하게 비교 테스트를 해보았다.
테스트 조건
(1). S3 + Route53을 이용한 정적 웹 사이트
(2) EC2 + Apache 웹 서버
공통 조건
(1) 동일한 index.html 파일 사용
(2) 크롬의 검사툴을 이용함 (캐시 무시 기능 이용)
1. S3 + Route53
먼저 S3로와 Route53으로 간단하게 설정한 웹 페이지상에서 index.html 에 대해서 크롬의 Network를 이용하여 반응 속도를 측정해 보았다. 아래의 결과에서 볼수 있듯이 일반적으로 30ms 에서 40ms 정도의 속도가 보편적이다. (평균을 따로 내지는 않았다.)
내가 보기엔 느리다는 생각이 들었다. 그래서 동일한 파일은 AWS EC2 인스턴스에 올리고 기본 설정의 Apache에 올려 보았다. ( EC2의 경우에는 별도로 DNS 설정이 없이 IP를 이용하여 접근 하였다.)
2. EC2에 Apache
일반적인 속도의 분포가 10ms대에서 20ms 이하가 주류를 이룬다. 그렇다면 실제로 저기서 부하가 걸리는 것은 무엇은지를 한번 알아 보았다.
간단하게 수치상으로 봐도 EC2+Apache 대비 S3+Route53이 두배가량의 시간이 더 걸린것을 알수 있다.
3. 상세 원인은 무엇인가 ?
가장 주된 원인은 TTFB로 인해 발생된 것으로 보이며 해당 시간이 거의 두배가 걸린것을 볼수 있을 것이다.
TTFB : Time to First Byte로 처음 byte가 브라우저에 도달하는 시간을 이야기 합니다. TTFB가 빠를수록 사용자에게 체감되는 웹 반응성이 우수합니다.
% 위의 테스트 결과는 기본 설정만을 테스트 한것이며 Apache의 경우 캐시 전용 설정 구성을 통해서 위의 시간을 더 단축 시키는것이 가능하다. S3의 경우에도 CloudFront 및 여러가지 설정을 통해서 TTFB를 줄이는 것이 가능하다고 한다 하지만 실제로 테스트 해본적은 없으므로 향상 방법에 대해서는 Amazon 사이트의 내용을 첨부한다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/s3-cloudfront-website-latency/
4. 그렇다면 실제 서비스 사이트는 ?
아래는 AWS 인프라를 사용하는 모 인터넷 쇼핑몰 사이트의 반응 응답 속도이다. 응답한 파일중에서 js 파일만을 필터링 하여서 한번 수치를 보았다. 전반적으로 속도가 100ms-300ms 수준에서 분포하고 있다는 것을 알수 있다. (이것도 통계를 내어서 비교 하고 싶으나 ^^)
위의 AWS 대비 IDC에서 서비스를 이용하는 포털 사이트의 응답 속도이다. 전체적으로 파일의 크기가 큰 JS 파일이지만 응답속도는 대부분 30ms ~ 40ms 이하의 분포를 보이고 있다는 것을 알수 있다. 간혹 가다가 150ms 대가 몇가지 보이지만 전반적인 응답 속도에 영향을 줄 정도는 아니다.
% 자체 IDC와 AWS를 사용하는 서비스에 대해서는 접속하는 IP로 구분하였습니다.
5. 결론
추가적으로 테스트나 조사가 필요하지만 AWS상에서 서비스를 할때 S3를 이용하여 CDN을 구성하거나 하는 경우 속도가 일반적인 CDN 대비 느릴수 밖에 없다. 실제로 파일 딜리버리 전용으로 구성한다면 S3 보다는 Apache Cache 서버로 잘 튜닝해서 구성하는것은 어떨까 ? 하는 생각이 든다. 물론 S3의 응답 속도를 정말 제대로 튜닝해서 사용한다면 Apache를 구성하는거보다 더 손쉽게 빠른 서비스를 구성할수 있을것이다.
가장 의외인 것은 가끔 AWS 인프라로 서비스 하는 웹 사이트에 접근하면 거의 행이 걸린듯하듯이 멈춘 현상을 종종 볼수 있는데 이번 테스트시에 S3 + Route53 구성에서 722B의 index.html을 딜리버리 하는 최대 300ms 까지의 응답 속도를 보여준 적도 있었다. 이런 부분을 잘 생각해서 서비스를 구성할떄 AWS를 활용한다면 좋을것 같다고 결론 내려 봅니다.
% 본 테스트는 개인적인 연구 목적의 테스트 이므로 특정 단체나 집단의 이익을 대변하지 않습니다.
'시스템일반 > 클라우드 시스템' 카테고리의 다른 글
Ubuntu VM에 MicroStack 설치하기 (0) | 2023.01.31 |
---|---|
AWS S3를 이용한 정적 웹페이지 서비스 (0) | 2022.04.02 |