[웹 개발자를 위한 대규모 서비스를 지탱하는 기술]Chapter 15

zzarbttoo·2021년 8월 17일
0

이 글은 절판도서 "웹 개발자를 위한 대규모 서비스를 지탱하는 기술" 을 개인적인 용도로 정리한 글입니다. 모든 내용을 정리한 것이 아니라 필요한 부분만 정리했다는 점 양해 부탁드립니다
문제/오류가 있을 시 댓글로 알려주면 감사하겠습니다


| 웹 서비스와 네트워크

  • 처음에는 서버를 아무 생각 없이 스위치에 연결하고 라우터 하나만 준비하면 됨
  • 하지만 트래픽이 Gbit 단위가 되면 문제들이 발생(라우터 성능 관점에서는 bps보다는 패킷/초인 pps가 중요)
  • 호스트수가 500을 넘어갈 때 하나의 서브넷으로 구성하게 되면 패킷 손실 등의 문제들이 발생
  • 글로벌 서비스를 준비할 때 데이터 센터를 한 곳에서만 운영하면 바다를 지나는 동안 트래픽이 발생해 latency도 한계에 이르게 된다
  • 이에 대한 대책들, 분기점들에 대해 설명한다

네트워크 분기점

| 서비스 성장과 네트워크 분기점

  • 서비스가 성장해감에 따라 네트워크의 분기점을 알아둬야한다
- 1Gbps(라우터 성능 관점에서 사실은 30만pps) 이상 
-> PC 라우터의 한계 

- 500 호스트 이상 -> 1 서브넷의 한계 
- 글로벌화 -> 1 데이터 센터의 한계 

| 1Gbps의 한계 - PC 라우터의 한계

  • 1Gbps의 한계는 정확히 30만pps의 한계이다(커널, Ethernet 측면에서 모두)
  • PC 라우터를 여러 대 병렬화하거나, 박스형 라우터(비쌈) 등을 이용하는 것으로 해결 가능하다

| 500 호스트의 한계

  • 스위치의 ARP(Address Resolution Protocol)테이블과 관련해서 한계가 있다
  • Ethernet 통신은 MAC주소(Media Access Control address) 기반으로 하고 있고 ARP 테이블은 IP주소-MAC 주소 대응 표이다(스위치는 이 테이블을 가지고 있다)
IP 통신 과정 
IP주소로 통신 대상 지정 
-> MAC 주소 검색 
-> Ethernet 계층에서 MAC 주소를 이용해 통신
-> 받아들이는 쪽은 그 내용을 IP 계층까지 확인
-> 다른 서브넷으로 보낼지 서브넷 내에서 통신을 마칠 지 결정 후 통신 실현 
  • 스위치 내에서 ARP 테이블의 크기는 수백건 정도 된다
  • ARP 테이블의 내용이 800건 이상 늘어나자 특정 호스트로 ping이 가지 않는 문제가 생김
  • 원인은 ARP 테이블의 한계였고, 1서브넷은 500호스트가 한계라는 것을 기억해두면 좋다
  • 서브넷 내에 호스트를 많이 두면 브로드캐스팅 패킷이 서서히 증가하고 이를 수신하는 것만 해도 CPU를 잡아먹게 된다
  • 브로드캐스팅 통신에 의존한 처리가 많아지면 Ethernet을 연결 하는 것만으로 CPU 부하가 수십%까지 올라가기도 한다
  • 그래서 1서브넷 내의 서버 대수는 500대 이하로 억제하는 것이 현명하다

| 네트워크 구조 계층화

  • 네트워크 구조 계층화를 하여 이를 해결하는 것이 최선
  • 이는 3단계로 이루어진다
1. 가장 작은 것은 Access 계층(액세스 영역)
2. 그 다음이 Distribution 계층(디스트리뷰션 영역)
3. 가장 위가 Core 계층(코어 영역) 또는 OSPF(Open Shortest Path First) 영역 
  • 가장 작은 서브넷에서 100,200대로 억제하고, 디스트리뷰션을 1000대 정도, 코어 전체로는 10000대 단위를 다룰 수 있는 계층 구조를 설계하는 것이 일반적

| 글로벌화

  • 태평양을 넘는 액세스는 상당히 오버헤드
  • CDN을 사용하면 타임아웃이 거의 발생하지 않고 양호한 응답 시간을 유지할 수 있다
  • 하테나는 Amazon Cloudfront 사용 : 참조 빈도가 높은 파일을 Amazon S3에 업로드하고 다운로드는 Amazon Cloudfront로 전송하는 형태

CDN(Content Delivery Network)

  • 세계 각지에 서버를 두고 거기에 미디어를 캐싱시켜 사용자가 가지러 갈 때 가장 가까운 서버로 액세스해서 미디어를 다운로드하도록 하는 것이 기본적인 동작 원리이다

한층 높은 단계로

| 10Gbps 이상의 세계

  • AS 번호(Antonomous System Number)라는 것을 보유하고 IX(Internet Exchange)에 접속해서 트래픽을 교환하거나 BGP(Boarder Gateway Protocol)이라는 인터넷의 라우팅을 제어하는 프로토콜을 사용한다
  • 잘못 제어를 하면 다른 사이트에도 영향을 미치게 된다

| 하테나의 인프라

정리하자면 하테나의 인프라는 다음 요소가 핵심적이다

- 저비용, 높은 확장성 
- 적당하면서 충분히 높은 신뢰성 

그 기술은 다음과 같다

- 확장성
- 다중화
- 효율 향상 
- 네트워크 
profile
나는야 누워있는 개발머신

0개의 댓글