네이버클라우드플랫폼에서 CDN, Object Storage는 AWS에서 FrontCloud, S3와 비슷한 역활을 한다.
이 내용을 작성하게 된 건 내가 운영하는 웹 서비스를 들어갔을 때 너무 큰 이미지와 너무 큰 영상때문이였다.
동영상, 높은 용량의 사진등이 처음 사용자가 받아올 때 속도가 너무 느린 부분에 대해 어떤 방법으로 해결할 수 있을까?
문제점
사용자가 접속 할 때 작동 구조는 이와 같다.
Client → WEB → WAS에서 이미지를 WAS에서 모두 응답해주고 있었고 이 구조는 문제가 많다.
- 첫 요청 시 큰 이미지를 모두 가져가서 사용자의 캐시에 남아 문제가 되지 않지만 이미지는 계속 받아가는 구조이다.
이미지를 쪼개서 사용자에게 보내는 기술을 사용했고 이는 사용자가 새로고침할때마다 그 크나큰 영상을 계속 받았다.
이는 사용자의 리소스 부담과 서버도 함께 부담되었다. - 처음 홈페이지를 들어가면 너무 큰이미지들을 받아오느라고 인터넷이 느린 사용자들은 페이지가 정상적으로 뜨질 않았다.
그러다보니 이는 사용자 이탈로 이어질 수 있다.
CDN, Object Storage를 사용하면 나아질까?
"작동 원리를 정확하게 모를 땐 도입하면 성능 많이 좋아질거같은데!?" 라고 했다.
'결론은 적합하지 않다' 였다. 이유는 간단했다.
네이버 처럼 주기적으로 이미지가 변경되고 라이브 스트리밍처럼 사용자가 계속해서 이미지를 받아와야 하는 경우에 사용하는게 좋다.
첫 요청과 다음 요청에 대해 어떻게 작동되는지 생각해봤다.
(NCP가아닌 AWS 그림밖에없어서...AWS로했다...)
홈페이지를 처음 들어갔을 때 이미지 20개정도와 고정으로 받아오는 이미지가 3개있다고 가정한다.
첫 요청
- 사용자는 DNS 질의를 통해 wonistorage.co.kr에 대한 주소를 받아옵니다.
- 그 주소를 따라 ELB를 통해 WEB서버 2개중 한곳으로 들어가 HTML, JS 등 정적데이터를 요청하고 응답받습니다.
- HTML, JS파일에서 Image를 받아오는 주소가 CDN에서 불러오게 되어있다면 CDN에 접근해 이미지를 받아온다.
두번 째 요청
- 동영상이 아닌 모든 동적데이터는 자신의 캐시에서 사용한다.
- 동영상과 이미지의 변동이 있는 경우에만 CDN에 요청하여 받아온다.
결론
Q. 동영상, 높은 용량의 사진등이 처음 사용자가 받아올 때 속도가 너무 느린 부분에 대해 어떤 방법으로 해결할 수 있을까?
A. 사용자의 환경에 따라 다르지만 현재 내 상황에서는 이미지와 영상이 계속해서 변경되지 않는 점을 고려했을 때 이미지의 크기를 줄이고 영상의 크기를 줄이는 방법이 제일 최선이다.
또한 이미지와 영상을 웹서버에서 응답해주도록 하고 동적데이터처리는 어플리케이션서버에서 처리하도록 하는것이 최선으로 보인다.
'Cloud' 카테고리의 다른 글
[AWS] EBS 볼륨 암호화 (0) | 2024.07.16 |
---|---|
[AWS] EBS의 개념 (0) | 2024.07.16 |
AWS EC2 Instances Purchasing Options (0) | 2024.04.23 |
AWS 프리티어 비용 과금 되지 않도록 예산 설정하기 (0) | 2024.04.16 |
Iaas, Paas, Saas 의 차이 (0) | 2022.09.23 |