728x90

2025/01/24 4

Failover 이론

FalioverA서버에 장애가 일어났을 때, A 서버의 장애를 회복시키기 위해 B서버가 A서버의 기능을 가져가는 것. ex) 웹 서버라면, 다른 웹 서버가 트래픽을 가져가는 것. DB 서버라면 DB서버에서 데이터를 주고 받는 기능을 위해 다른 DB서버가 그 데이터의 IO를 처리해주는것.Active 한 시스템에 장애가 발생했을때 StandBy 서버가 Active로 전환해 서비스가 계속 운영되게 하는 것을 말한다.서비스 가용성High Availabilty를 제공하기 위해 사용한다.  간단한 시나리오장애 발생시, 개발자가 직접 설정을 변경해 배포한다.이 시나리오의 문제점누군가 계속 장애를 모니터링 하다가, 장애가 발생한 시점에 설정을 바꾸고 재배포 해야한다.담당자가 해당 문제를 확인하지 못한다면? 자동화된 F..

대용량트래픽 2025.01.24

Circuit Breaker 서킷 브레이커 이론

Circuit Breaker = 회로 차단기API 호출에 실패할 때, 실패하는 API를 더 이상 호출하지 않고, 빠르게, fast fail 하게 해주는 것. 이를 통해 시스템이 점진적으로 실패하는 대신 전체 시스템의 장애로 이어지지 않도록 한다. 아마존의 화면을 구성하는데에는 여러개 API 가요청된다. 만약 그 중 하나라도 실패하면 서비스는 어떻게 될까?서비스 장애시 단순히 화면이 나온다, 안나온다는 큰 문제가 되지 않는다. api 호출시, 실패하는 api 를 호출하면 타임아웃 대기 시간까지 대기해야 한다. -> 전체 퍼포먼스가 떨어진다.  ex) 장바구니, 추천탭은 20ms 걸려 왔는데, 리뷰 api 장애발생으로 300ms(api time out) 대기 한다면 -> 이 페이지 하나를 구성하기 위해 걸리..

대용량트래픽 2025.01.24

LoadBalancer/ 로드 밸런싱

LoadBalancer사용자의 요을 여러 서버로 분배해주는 하드웨어 or 소프트웨어 장비요청자는 LoadBalancer 뒤의 목록은 알지 못한다. 예시Nginx, HAProxy 로드 밸런서는 크게 Server Side , Clinet Side 로 나뉘게 된다.하드웨어를 사용하는 로드밸런서 -> Sever side Server Side Load Balancing앞에서 배운 로드 밸런서를 통해 리퀘스트를 분산한다.클라이언트가 서버의 개별 주소를 알 필요가 없다다만 로드밸런서의 주소를 알아야 한다.실제적으로 한 단계를 더 거치므로 Latency 가 늘어날 수 있다.이를 Hop 홉 이라고 한다. 홉을 거칠 수록 속도가 느려짐. 로드밸런서에 장애 발생 시, 서비스는 더 이상 되지 않는다.  Client Side ..

대용량트래픽 2025.01.24

Thundering Herd, Hot Key: 대용량 트래픽 관리 시 발생할 수 있는 이슈

Thundering Herd?특정 이벤트로 인해 많은 프로세스가 동작하는데, 그 중 하나의 프로세스만 이벤트를 처리할 수 많은 프로세스가 특정 리소스를 가지고 경쟁하면서 많은 리소스를 낭비하게 되는 경우웹서비스에서는 Cache miss로 인해서, 많은 프로세스가 같은 Key를 DB에서 읽으려고 시도하면서, 특정 서버(DB)에 부하를 극도로 증가시키는 경의를 의미한다.   Thundering Herd 의 원인캐시가 없을 때 발생캐시가 없는 이유캐시 서버의 추가/ 삭제해당 키의  TTL 에 의한 데이터 삭제캐시 서버 메모리 부족으로 해당 키 EvictionCache StampedeCache 의 Expire Time 설정으로 인해(cache miss로 인) 대규모의 중복된 DB 쿼리와 중복된 Cache 쓰기가..

대용량트래픽 2025.01.24
728x90
반응형