SPOF
nginx
- 언제 문제가 발생할 수 있을까?
- 하드웨어 장애가 발생하는 경우 WAS, WS 가 모두 다운된다.
- 어떻게 해결할 수 있을까?
- 서버 분리 => nginx와 WAS 를 별개의 서버로 분리한다.
- 해당 해결책으로 어떤 문제가 생길 수 있을까?
- 서버를 분리하더라도 SPOF 가 될 가능성이 존재한다 => nginx 서버도 이중화를 진행한다.
WAS
- 언제 문제가 발생할 수 있을까?
- 어떻게 해결할 수 있을까?
- 서버를 추가하고, 로드 밸런싱을 도입한다. standby 서버에서는 health check 를 통해 다른 서버에 장애가 발생하면 standby 서버에서 요청을 받도록 설정한다.
- 해당 해결책으로 어떤 문제가 생길 수 있을까?
DBMS
AWS AZ
- prod 서버와 prod DB 서버 AWS 리전 동일하게 세팅하기
고민한 부분
- 특별히 고려해야 할 중요 기능
- 서비스 특성 상 데이터 조회가 자주 발생한다.
- 한 페이지 내에서 여러 번 요청을 보내는 경우가 많아 초당 요청 수가 많아질 수 있다.
- 문제가 될 수 있는 부분
- DB: 하드웨어 장애 시 DB 장애 시간이 서버 장애 시간이 된다.
- WS-nginx: 요청이 WAS로 포워딩되지 않는다.
- 서버: 초당 요청이 많아지면 병목 현상 발생, Connection timeout이 빈번하게 발생할 수 있다.
- runner: 메모리 사용량이 증가하며 리소스가 부족하게 되면 runner 실행 자체가 WAS 에 영향을 줄 수 있다.
- 적용할 수 있는 방법
- WS, WAS와 분리
- runner 서버 WAS 와 분리
- WS, WAS, runner 서버 이중화
- DB Replication
- Master, Slave 로 이중화
- Backup DB
- 로드밸런서로 서버 부하 분산
- 장애 발생한 서버 발생 시 로드밸런서가 다른 WAS 로 요청 전송
- Master DB 장애 발생 시, slave DB 가 Master 로 승격.
- 발생할 수 있을 것으로 예상되는 문제
- 로드밸런서가 SPOF 가 될 수 있다.
- DB 이중화 시 동기화 문제
- 4번 해결할 아이디어