[대규모 시스템 설계] 2장. 처리율 제한 장치의 설계
·
Reference/대규모 시스템 설계
📕 목차1. 처리율 제한 장치(Rate Limiter)2. 토큰 버킷 알고리즘3. 누출 버킷 알고리즘4. 고정 윈도 카운터 알고리즘5. 이동 윈도 로깅 알고리즘6. 이동 윈도 카운터 알고리즘7. 개략적인 설계8. 분산 환경 처리율 제한 장치9. 추가로 고려해볼 것들1. 처리율 제한 장치(Rate Limiter) 📌 필요성DoS(Denial of Service) 공격에 의한 자원 고갈 방지불필요하게 서버를 많이 두지 않아도 되므로 비용 절감특히 유료 외부 API 호출하는 API에 대해서 과금 횟수 절감서버 과부화 방지 나도 전화번호로 인증 코드를 송신하는 API가 있는데, 해당 API에 처리율 제한 장치를 마련해두었다. 📌 일반적인 요구 사항설정된 처리율을 초과하는 요청은 정확하게 제한한다.낮은 응답..
[대규모 시스템 설계] 1장. 사용자 수에 따른 규모 확장성
·
Reference/대규모 시스템 설계
💡 해당 내용은 "가상 면접 사례로 배우는 대규모 시스템 설계 기초"를 참조하여 작성하였습니다. 📕 목차1. 단일 서버2. 데이터베이스3. 수직적 규모 확장 vs 수평적 규모 확장4. 캐시5. 콘텐츠 전송 네트워크(CDN)6. 무상태(stateless) 웹 계층7. 데이터 센터8. 메시지 큐9. 로그, 매트릭 그리고 자동화10. 데이터베이스의 규모 확장11. 백만 사용자, 그리고 그 이상더보기✒️ 요약 아래 내용은 요약일 뿐, 절대 정답이 아니다!• 웹 계층은 무상태 계층으로• 모든 계층에 다중화 도입• 가능한 한 많은 데이터를 캐시할 것• 여러 데이터 센터를 지원할 것• 정적 콘텐츠는 CDN을 통해 서비스할 것• 데이터 계층은 샤딩을 통해 그 규모를 확장할 것• 각 계층은 독립적 서비스로 분할할 것..