1장 - 사용자 수에 따른 규모 확장성
수직적 규모 확장 VS 수평적 규모 확장
수직적 규모 확장
- 서버 스펙을 올린다.
- 물리적 한계가 존재한다.
수평적 규모 확장
- 서버 개수를 늘린다.
- 장애에 대한 자동 복구, 다중화 처리 필요
로드밸런서
로드밸런싱 알고리즘
- 라운드로빈
- IP 해시
- 최소 연결
- 최소 리스폰
데이터베이스 다중화
Master/Slave 방식
쓰기는 마스터에서만, 읽기는 슬레이브에서
캐시
statless 웹 계층
웹 계층이 수평적으로 확장되기 위해서는 웹 계층에 상태정보가 없어야 한다.
상태정보를 데이터베이스에 저장하고 필요할때 가져오도록 한다.상태정보는 어디에 보관하나?캐시, 디비 etc ...
메시지 큐
RabbitMQ, Kafka, ActiveMQ
콘텐츠 전송 네트워크 (CDN)
로그, 메트릭, 자동화
- 로그 : 에러 로그 모니터링
- 메트릭
- 자동화 : CI/CD
회사 서비스에 위의 대부분 내용들이 적용되어 있다.
개발하면서 이럴땐 이런걸 처리하는군, 이런 시스템을 사용하고 있군? 한 것들이 다 이런 내용들이라니 !
알게 모르게 다 한번씩 개발하면서 만났던 기술들이다. 하나씩 연관관계를 파보면 재밌을 것 같다.
참고
[1] 로드밸런싱 알고리즘 : https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903