📚
대규모 서비스를 지탱하는 기술 - 웹 서비스와 네트워크
September 29, 2021
다음은 웹 개발자를 위한 대규모 서비스를 지탱하는 기술을 읽고 정리한 내용입니다 🙌
- 규모가 커지면서 트래픽이 커지면 문제가 발생한다. → 라우터의 성능 관점에서는 bps보다 패킷 단위인 pps가 더 중요하다. 사용하고 있는 라우터에서 감당하는 이상의 패킷이 송수신되면 문제가 발생한다.
- 또한 호스트 수가 500을 넘어가면서 하나의 서브넷을 구성하면 여러 패킷 손실등이 발생하기도 한다.
- 글로벌 서비스로 확장하면 데이터 센트럴 한군데 두었을 때 latency도 한계에 다다를 수 있다.
[강의38] 네트워크 분기점
1Gbps의 한계 - PC 라우터의 한계
- 1Gbps 는 30만pps → 한계치이다.
- 이것을 해결하기 위해서는 PC 라우터를 여러 대 병렬화 하던지, 고가의 라우터를 사용해야 한다.
500호스트의 한계 - 1서브넷 ARP 테이블에서의 한계
- 스위치의 ARP(Address Resolution Protocol table)에서 한계가 있다.
- ARP는 IP주소와 MAC 주소간의 관계를 나타내는 테이블이다.
- 이 테이블의 크기에 제한이 있다. 그것을 넘어가게 되면 특정 호스트로 ping이 가지 않게 된다.
- 서브넷 내에 호스트가 많으면 브로드캐스팅 패킷이 증가하여 트래픽이 부하를 생성한다.
네트워크 구조 계층화
- 지금까지 언급한 문제에 대한 대책
- 3단 구조로 네트워크를 계층화 하자는 것이다.
- 3단 구조
- 가장 작은 것은 Access 계층
- 그 다음이 Distribution 계층
- 가장 위가 Core 계층 또는 OSPF 영역
- 이렇게 가장 작은 서브넷에서 100대, 200대를 억제, 디스트리뷰션에서 1000대, 코어 전체에서 100000 단위로 다룬다.
- Distribution 영역간 트래픽을 제어해서 너무 증가하지 않도록 하고 서브넷 내에서의 통신량을 제어한다.
글로벌화
- CDN을 사용해서 여러 곳에 배치된 데이터센터를 활용해 latency를 줄인다.
[강의39] 한층 높은 단계로
웹 서비스 인프라의 핵심
- 저비용, 높은 확장성
- 적당하면서 충분히 높은 신뢰성
- 기술 4가지
- 확장성
- 다중화
- 효율향상
- 네트워크