Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

(스파르타 코딩클럽)대용량 트래픽 발생 시 대응방법 본문

TIL

(스파르타 코딩클럽)대용량 트래픽 발생 시 대응방법

H.S-Backend 2024. 7. 26. 10:39

트래픽(traffic)이란 

서버와 스위치 등 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양을 말한다.

웹사이트에 트래픽이 많다는 것은 사용자 접속이 많아서 전송하는 데이터의 양이 많다는 것을 뜻한다.

 

트래픽이 너무 많으면 서버에 과부하가 걸려서 기능에 문제가 생길 수 있다.

교통이나 운수 분야에서 사용하는 교통량(traffic)이라는 용어와 구별하기 위해 웹트래픽(web traffic) 또는 네트워크 트래픽(network traffic)이라고도 한다.

 

  1. 일반적 실시간 모니터링, 스케일링 자동화, 로드 밸런싱, DB최적화, 코드최적화 등의 방법을 사용하여 대용량 트래픽을 처리한다.
  2. 자동 확장은 클라우드 기반의 인프라를 사용하면된다.
  3. 로드밸런싱을 로드밸런서를 사용하여 수행.
  4. 정적 콘텐츠를 캐싱하여 서버 부하를 줄일 수 있고, CDN을 사용하여 사용자에게 컨텐츠제공을 빠르게 할 수 있습니다.

대용량 트래픽 처리 방법

 

코드 최적화

비효율적인 코드는 서버 부하를 높일 수 있다.

 

DB최적화 

쿼리를 최적화하여 더빠르고 효율적으로 실행되게한다.인

인덱스 추가, 쿼리 재구성들의 방법이있다.

 

성능테스트

시스템이 어느정도의 부하를 견딜 수 있는지 성능 테스트를 한다

 

스케일 아웃(scale out)

로드밸런서를 사용해 서버자원을 추가해서 트래픽 부하를 분산시킨다.


로드밸런서란

클라이언트와 서버 그룹사이에 위치해

서버에 가해지는 트래픽을 여러대의 서버에 분배하여 특정서버의 부하를 덜어준다.


 

스케일업

기존 서버의 성능을 향상 시키는 방법

 

스케일 아웃

트래픽이나 작업을 여러 대의 컴퓨터나 서버에 분산시켜 처리하는 방법

 

스케일 아웃을 하게 되면 서버가 여러대가 된다.

각 서버에 걸리는 부하를 고르게 나누기 위해 로드밸런싱이 필수적으로 동반되어야한다

 

스케일 업
스케일 아웃
확장성
성능 확장에 한계 존재
지속적 확장이 가능하다
서버 비용
성능 증가에 따른 비용증가 폭이 크다
일반적으로 비용부담이 크다
비교적 저렴한 서버를 사용하므로, 일반적으로 비용 부담이 적음
관리 편의성​
스케일 업에 따른 큰 변화 없음
서버 대수가 늘어날수록 관리 편의성 떨어짐
운영 비용
스케일 업에 따른 큰 변화 없음
서버 대수가 늘어날수록 운영 비용 증가
장애 영향
한 대의 서버에 부하가 집중되므로 장애 발생시 다운타임이 발생한다. 부하가 여러 서버에 분산되어 처리됨으로 장애 시 전면 장애 가능성 적다

로드 밸런싱?

여러 서버나 컴퓨터 자원에 작업을 고르게 분산하여 처리하는것.

트래픽이 과도하게 몰려서 서비스가 중단되는 일을 막아주고 지연없이 작업을 처리한다.

이로써 서버의 성능과 안정성을 높일 수 있다.

 

https://www.smileshark.kr/post/what-is-a-load-balancer-a-comprehensive-guide-to-aws-load-balancer

 

로드밸런서(Load Balancer)란? : AWS와 로드 밸런싱(Load Balancing) 개념 정리

Written by Hyojung Yoon안녕하세요! 오늘은 다양한 IT 환경에서 중요한 역할을 하는 로드밸런서와 로드밸런싱에 대해 알아보려고 합니다. 이 기술은 트래픽이 몰리는 상황에서 사용자들에게 안정적인

www.smileshark.kr


캐싱

정적 콘텐츠를 캐싱하여 서버 부하를 줄이고 응답속도를 개선한다.

 

CDN(content deliver network)을 사용해서

사용자와 가까운 서버에서 콘텐츠를 전송함으로 웹트래픽을 줄일 수 있다.

 

만약 우리나라에 있는 사람이
미국에 있는 서버로부터 이미지나 파일 등을 다운받으려고 한다면
시간이 오래걸릴 것이다.

 

따라서 서버를 분산시켜 캐싱해두고

사용자의 컨텐츠 요청이 들어오면

사용자와 가장 가까운 위치에 존재하는 서버로 매핑시켜

콘텐츠의 캐싱된 내용을 내어주는 방식으로 빠르게 데이터를 전송할 수 있다.

 

  • 왼쪽은 : CDN을 사용하지 않는 경우
  • 오른쪽 : CDN을 사용할 경우

 

위의 CDN동작은 다음과 같은 규칙이 정해져있다.

  1. 최초요청은 서버로부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱장비에 저장.
  2. 최초 요청 이후로의 요청은 CDN에서 짖어하는 해당 컨텐츠 말료 시점까지 캐싱된 컨텐츠를 전송.
  3. 자주 사용하는 페이지에 한해서 캐싱되고, 해당 컨텐츠 호출이 없다면 주기적으로 삭제된다.
  4. 서버가 파일을 찾는데 실패하면 CDN플랫폼의 다른서버에서 컨텐츠를 찾은다음 엔드유저에게 응답을 전송
  5. 컨텐츠를 사용할 수 없거나 오래된 경우 CDN은 향후 요청에 대해 응답할 수 있도록 새로운 컨텐츠를 저장.

 

정적콘텐츠란
서버에 저장되어있고 모든사용자에게 동일하게 전달되는 파일을 말한다.
HTML파일 및 이미지 등 신문과 비슷하다고 보면된다.

https://velog.io/@youngblue/CDN%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

CDN이란 무엇인가

데이터 통신 기술이 발달하면서 전 세계적으로 유튜브, 넷플릭스 등 수 많은 데이터들이 전송되는 세상에 살고 있다. 이렇게 폭발적으로 증가하는 데이터를 최대한 지연 없이 효율적으로 전달

velog.io

 

반응형