본문 바로가기
프로그래밍

트래픽이 증가할 때 고려해야 할 사항

by so5663 2024. 5. 25.

오토스케일링

1. 오토스케일링 (Auto Scaling)

  • 목적: 트래픽 증가 시 자동으로 서버 인스턴스를 추가하고, 트래픽 감소 시 자동으로 인스턴스를 줄여 비용을 절감합니다.
  • 방법:
    • 클라우드 서비스 사용: AWS Auto Scaling, Google Cloud Autoscaler, Azure Virtual Machine Scale Sets 등을 설정합니다.
    • 트리거 설정: CPU 사용량, 메모리 사용량, 네트워크 트래픽 등의 지표를 기반으로 인스턴스를 자동으로 조정합니다.

 

 

출처 https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/

2. 콘텐츠 전송 네트워크 (CDN)

  • 목적: 전 세계에 분산된 서버 네트워크를 통해 정적 콘텐츠를 캐싱하고 제공하여 원래 서버의 부하를 줄입니다.
  • 방법:
    • CDN 서비스 사용: Cloudflare, AWS CloudFront, Akamai, Fastly 등의 CDN 서비스를 설정합니다.
    • 캐싱 설정: 정적 파일(이미지, CSS, JavaScript 등)을 캐싱하고, TTL(Time To Live)을 적절히 설정하여 캐싱된 콘텐츠를 유지합니다.

적용이 쉽고 빠르기 때문에 나도 현업에서도 많이 사용 했었음.

 

3. 캐싱 (Caching)

  • 목적: 서버 부하를 줄이고 응답 시간을 줄이기 위해 자주 요청되는 데이터를 캐싱합니다.
  • 방법:
    • 웹 서버 캐싱: Nginx, Varnish 등을 사용하여 정적 콘텐츠 및 API 응답을 캐싱합니다.
    • 애플리케이션 레벨 캐싱: Redis, Memcached 등을 사용하여 데이터베이스 조회 결과나 계산 결과를 캐싱합니다.
    • 브라우저 캐싱: 클라이언트 측에서 캐싱하도록 HTTP 헤더 설정을 통해 브라우저 캐싱을 유도합니다.

 

  •  

4. 트래픽 관리 및 최적화

  • 목적: 트래픽을 효율적으로 관리하여 서버의 과부하를 방지합니다.
  • 방법:
    • Rate Limiting: 특정 시간 동안의 요청 수를 제한하여 서버에 과도한 부하가 걸리지 않도록 합니다.
    • Queueing: 요청을 큐에 넣고 순차적으로 처리하여 서버의 부하를 분산시킵니다.
    • Backpressure: 클라이언트에게 서버의 부하 상태를 알려주고 요청 속도를 조절하도록 합니다.

 

5. 임시 스케일링 전략

  • 목적: 일시적인 트래픽 증가에 대비한 전략을 미리 계획합니다.
  • 방법:
    • 로드 테스트: 트래픽 증가 시 시스템이 어떻게 반응하는지 미리 테스트하여 병목 지점을 파악합니다.
    • 미리 준비된 인프라: 예상되는 트래픽 증가에 대비하여 미리 준비된 서버 인프라를 설정해 둡니다.
    • 핫 스탠바이 서버: 필요할 때 즉시 사용할 수 있는 대기 서버를 준비합니다.

 

  •  

6. 임시 데이터베이스 확장

  • 목적: 일시적인 부하를 처리하기 위해 데이터베이스 성능을 일시적으로 확장합니다.
  • 방법:
    • 읽기 복제본 추가: 데이터베이스의 읽기 부하를 분산시키기 위해 읽기 복제본을 추가합니다.
    • 클라우드 데이터베이스 확장: 클라우드 데이터베이스 서비스의 성능을 일시적으로 확장합니다. (예: Amazon RDS, Google Cloud SQL)

이와 같은 방법들을 통해 일시적인 트래픽 증가에 대응할 수 있습니다.

'프로그래밍' 카테고리의 다른 글

[tomcat] 톰캣 가상 호스팅  (0) 2023.06.06
웹 서버와 WAS의 차이  (0) 2023.01.12
쿠키(cookie) 저장 및 삭제  (0) 2022.12.29
REST API 기본  (0) 2022.10.31
객체지향 프로그래밍의 5가지 설계 원칙, SOLID  (2) 2022.10.22