4장 5

4장. 쿠버네티스를 이루는 컨테이너 도우미, 도커

4.1 도커를 알아야 하는 이유쿠버네티스를 이루는 기본 오브젝트가 파드이고, 파드는 컨테이너로 이루어져있으며, 컨테이너를 만들고 관리하는 도구가 도커이다.쿠버네티스를 이루고 있는 기술 자체는 컨테이너를 벗어날 수 없다.4.1.1 파드, 컨테이너, 도커, 쿠버네티스 1) 파드파드들은 워커 노드라는 노드 단위로 관리하며, 워커 노드와 마스터 노드가 모여 쿠버네티스 클러스터가 된다.파드는 1개 이상의 컨테이너로 이루어져 있다.파드는 쿠버네티스로부터 IP를 받아서 컨테이너가 외부와 통신할 수 있도록 경로를 제공컨테이너들이 정상적으로 작동하는지 확인하고 네트워크나 저장 공간을 서로 공유하게 한다.즉, 파드가 이러한 환경을 만들기 때문에 컨테이너들은 하나의 호스트(host)에 존재하는 것처럼 동작한다.2) 컨테이너..

4장. 분산 메세지 큐 - 2

3단계: 상세 설계6. 푸시 vs 풀브로커가 데이터를 소비자에게 보낼 것이냐 아니면 소비자가 브로커에게 가져갈 것인지 고민해야하는 부분이다.푸시 모델잠정낮은 지연: 브로커는 메세지를 받는 즉시 소비자에게 보낼 수 있다.단점소비자가 메세지를 처리하는 속도가 생산자가 메세지를 만드는 속도보다 느릴 경우, 소비자에게 큰 부하가 걸릴 가능성이 있다.생산자가 데이터 전송 속도를 좌우하므로, 소비자는 항상 그에 맞는 처리가 가능한 컴퓨팅 자원을 준비해두어야 한다.풀 모델장점메세지를 소비하는 속도는 소비자가 알아서 결정한다.소비자는 지난번 마지막으로 가져간 로그 위치 다음에 오는 메세지를 한 번에 가져갈 수 있다. 따라서 데이터의 공격적 일괄 처리에 더 적합하다.단점브로커에 메시지가 없어도 소비자는 계속 데이터를 끌..

4장. 분산 메세지 큐 - 1 편

메세지 큐를 사용하면 어떤 이득을 얻을 수 있을까?결합도 완화(decoupling): 컴포넌트 사이의 강한 결합이 사라지므로 각각 독립적이다.규모 확장성 개선: 데이터를 생산하는 생상자(producer)와 메세지를 소비하는 소비자(consumer) 시스템 규모를 트래픽 부하에 맞게 독립적으로 늘릴 수 있다.가용성 개선: 특정 컴포넌트에 장애가 발생해도 다른 컴포넌트는 큐와 계속 사호작용을 이어갈 수 있다.성능 개선: 메세지 큐를 사용하면 비동기 통신이 쉽게 가능하다. 메시지 큐 vs 이벤트 스트리밍 플랫폼데이터 장기보관, 메세지 반복 소비 등 부가 기능을 갖춘 이벤트 스트리밍 플랫폼을 사용한다.아파치 카프카나 펄사는 메세지 큐가 아니라 이벤트 스트리밍 플랫폼이다.메세지 큐(RokcetMQ, RabbitM..

4장. 처리율 제한 장치의 설계

네트워크 시스템에서 처리율 제한 장치(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치다. 예를 들어 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한한다.API 요청 횟수가 제한 장치에 정의된 임계치(threshold)를 넘어서면 추가로 도달한 모든 호출은 처리가 중단된다. 사용자는 초당 2회 이상 새 글을 올릴 수 없다.같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없다.같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없다. 처리율 제한 장치를 두면 좋은 점DOS 공격에 의한 자원 고갈을 방지할 수 있다.비용 절감을 한다. 추가 요청에 대한 처리를 제한하면 서버를 많이 두지 않아도 되고, 우선순위가 높은 API에 더 많은..