인프라 개선하기

@VERO
Created Date · 2023년 09월 12일 12:09
Last Updated Date · 2023년 09월 12일 12:09

SPOF

nginx

  • 언제 문제가 발생할 수 있을까?
    • 하드웨어 장애가 발생하는 경우 WAS, WS 가 모두 다운된다.
  • 어떻게 해결할 수 있을까?
    • 서버 분리 => nginx와 WAS 를 별개의 서버로 분리한다.
  • 해당 해결책으로 어떤 문제가 생길 수 있을까?
    • 서버를 분리하더라도 SPOF 가 될 가능성이 존재한다 => nginx 서버도 이중화를 진행한다.

WAS

  • 언제 문제가 발생할 수 있을까?
    • 디스크 용량 초과
    • 하드웨어 장애
  • 어떻게 해결할 수 있을까?
    • 서버를 추가하고, 로드 밸런싱을 도입한다. standby 서버에서는 health check 를 통해 다른 서버에 장애가 발생하면 standby 서버에서 요청을 받도록 설정한다.
  • 해당 해결책으로 어떤 문제가 생길 수 있을까?
    • 동시성 이슈가 발생할 수 있다.

DBMS

AWS AZ

  • prod 서버와 prod DB 서버 AWS 리전 동일하게 세팅하기

고민한 부분

  1. 특별히 고려해야 할 중요 기능
  • 서비스 특성 상 데이터 조회가 자주 발생한다.
  • 한 페이지 내에서 여러 번 요청을 보내는 경우가 많아 초당 요청 수가 많아질 수 있다.
  1. 문제가 될 수 있는 부분
  • DB: 하드웨어 장애 시 DB 장애 시간이 서버 장애 시간이 된다.
  • WS-nginx: 요청이 WAS로 포워딩되지 않는다.
  • 서버: 초당 요청이 많아지면 병목 현상 발생, Connection timeout이 빈번하게 발생할 수 있다.
  • runner: 메모리 사용량이 증가하며 리소스가 부족하게 되면 runner 실행 자체가 WAS 에 영향을 줄 수 있다.
  1. 적용할 수 있는 방법
  • WS, WAS와 분리
  • runner 서버 WAS 와 분리
  • WS, WAS, runner 서버 이중화
  • DB Replication
    • Master, Slave 로 이중화
    • Backup DB
  • 로드밸런서로 서버 부하 분산
  • 장애 발생한 서버 발생 시 로드밸런서가 다른 WAS 로 요청 전송
  • Master DB 장애 발생 시, slave DB 가 Master 로 승격.
  1. 발생할 수 있을 것으로 예상되는 문제
  • 로드밸런서가 SPOF 가 될 수 있다.
  • DB 이중화 시 동기화 문제
  1. 4번 해결할 아이디어
  • 로드밸런서 다중화