웹 아키텍처

김민혁·2022년 1월 13일
0

DNS

  • Domain Name Server
  • 월드 와이드 웹(WWW)의 기반기술
  • 기본적인 레벨의 DNS: 도메인 이름(ex. google.com)에서 IP주소(ex. 85.129.83.120)로의 키/값 조회를 제공한다.

Load Balancer

  • 수평적 애플리케이션 확장: 더 많은 장치 추가
  • 수직적 애플리케이션 확장: 사용하고 있는 장치의 성능을 높임
  • 로드 밸런서는 수평적 확장이 가능하게 한다.
  • 요청을 복제/미러링된 수많은 애플리케이션 서버 중의 하나로 연결하고 서버의 응답을 클라이언트로 다시 보낸다.
  • 로드밸런서는 이들 서버에 과부하가 걸리지 않도록 들어오는 요청을 적절히 분배해주는 일을 한다.

Web application server(WAS)

  • 사용자의 요청이 들어오면 핵심 비즈니스 로직을 실행하고 그 결과를 HTML에 담아 브라우저로 보낸다.

Database server

  • 정보를 저장하기 위한 데이터베이스
  • SQL(Structred Query Language): 관계형 데이터 세트 질의(query)의 표준으로 만들어졌다.

Caching service

  • 정보를 거의 O(1) 시간 안에 찾을 수 있는 단순한 키/값 데이터 저장소를 제공한다.
  • 자원이 많이 소비되는 연산의 결과를 다시 계산하지 않고 캐시에서 가져온다.
  • DB 쿼리 결과, 외부 서비스 호출 결과, 주어진 url의 HTML 등을 캐시에 저장한다.

Job queue & server

  • 가장 널리 사용되는 비동기적 작업을 가능하게 하는 아키텍처이다.
  • 'job'으로 이루어진 큐와 이를 실행하는 1개 이상의 서버로 이루어져 있다.
  • job queue는 비동기적으로 실행될 job 목록을 저장하고 있다.

Full text search service

  • 쿼리 키워드를 포함하는 문서를 찾기 위해 역 인덱스(inverted index)를 활용한다.

Services

Data warehouse

Cloud storage

CDN

  • Content Delivery Network
  • HTML, CSS, JS, 이미지 같은 정적인 데이터를 웹을 통해 1개의 원본(origin)서벌르 사용하는 것보다 더 빠르게 제공하기 위한 기술이다
  • 콘텐츠를 전 세계의 많은 '엣지(edge)'서버에 분산시킴으로써 동작한다.
  • 사용자는 데이터를 원본 서버 대신 가장 가까운 엣지 서버에서 다운로드한다.
profile
학생

0개의 댓글