웹 아키텍쳐 기본 구조

choko's avatar
Jun 29, 2024
웹 아키텍쳐 기본 구조
notion image
 
  1. DNS
  1. 로드 밸런서
      • 수평적 확장이 가능하게 한다.
        • 수평적 확장
          • 더 많은 장치를 새로 추가
        • 수직적 확장
          • 이미 사용하고있는 장치의 성능을 높임
      • 로드 밸런서에 요청이 오면, 많은 서버들에게 과부하가 걸리지 않도록 들어오는 요청들을 적절히 분배해주는 역할을 갖는다.
  1. WAS(웹 어플리케이션 서버)
      • 사용자의 요청이 들어오면 핵심 비즈니스 로직을 실행하고 그 결과를 HTML에 담아 브라우저로 보낸다.
      • 특정 언어를 선택하고, 그에 맞는 웹 MVC 프레임워크(Express for Node.js, Ruby on Rails, Play for Scala, Laravel for PHP, …)를 선택해서 구현
      • DB, 캐싱계층, Job Queue, 검색 서비스, 기타 마이크로 서비스 등 다양한 백엔드 인프라와 데이터를 주고받는다.
  1. 데이터베이스
      • RDBMS - MySQL, Posgreqsl
      • NoSQL - MongoDB
  1. 캐싱 서비스
      • 정보를 매우 빠르게(O(1)) 찾을 수 있는 단순한 키/값 데이터 저장소 제공
      • Redis, Memcache
  1. Job Queue/Server
      • Job Queue는 비동기적으로 실행될 Job 목록을 저장하고 있음
      • FIFO(First In First Out) / 우선순위 큐 등 그에 알맞는 전략 필요
  1. 텍스트 검색 서비스
      • 사용자가 텍스트 입력을 하면 가장 관련있는 결과를 보여주는 기능, 보통 역 인덱스를 활용함
  1. 서비스
      • 앱이 특정 규모에 도달하면, 별도의 애플리케이션으로 분리해서 운영하기 위한 서비스가 생기게 된다.
  1. 데이터
      • 앱이 특정 규모에 도달하면 데이터를 제어, 저장, 분석하기 위해 데이터 파이프라인을 사용한다.
        • 서버는 발생한 데이터를 firehouse 라 불리는 곳으로 전달한다.
          • AWS Kinesis, Kafka
        • 원시 데이터와 최종 데이터는 모두 클라우드 스토리지(AWS S3)에 저장된다.
        • 변형/추가된 데이터는 종종 데이터 분석을 위한 데이터 웨어하우스(DW)에 로드된다.
  1. 클라우드 스토리지
      • 대표적으로 AWS S3가 있으며, REST API를 통해 클라우드에 저장하고 접근할수 있다.
  1. CDN(Content Delivery Network)
      • 사용자 위치, 콘텐츠 원본 서버, 엣지 서버 위치를 기준으로 콘텐츠(웹페이지, 동영상, 이미지)를 최종 사용자에게 전송할 수 있는 (엣지 로케이션 서버라고도 하는) 분산 노드로 구성된 네트워크
      • CDN 노드는 콘텐츠를 캐싱할 수 있는 캐시 기능을 갖추고 있으며 최종 사용자와 가까운 위치에서 사용자에게 콘텐츠를 제공할 수 있다.
       
      notion image
      • CDN이 없으면, 한국에서 컨텐츠에 접속하기 위해 영국의 노드까지 접속해서 데이터를 가져와야 한다. 이 과정에서, 세 가지 문제점이 발생한다.
          1. 모든 사용자가 같은 웹서버에 접속하면, 웹서버 부하가 일어난다.
          1. 지리적으로 먼 위치의 인터넷을 통해 전송되므로 사용자에게 지연이 발생한다.
          1. 서비스 제공자는 더 많은 사용자에게 컨텐츠를 제공하기 위해 점점 더 많은 대역폭 비용을 지불해여야 한다.
      • CDN은 위 세 가지 문제점들을 모두 해결해 줄 수 있다. 영국에 있는 데이터를 각 지역별로 캐싱해두면, 사용자들은 굳이 영국까지 연결할 필요 없이 가까운 CDN 서버에 접속하면 된다.
      • 이로써 지연시간이 줄어들고, 분산 노드로 처리하게 되므로 원번 서버의 부하가 최소화된다.
 
 
 
 
-ref
Share article

Tom의 TIL 정리방