글 작성 계기 ( 참고 벨로그 )
포트폴리오 작성하면서 너무 별 생각 없이 짜는 기분이 들어 구성요소들에 대해 제대로 짚어보고 계획에 맞게 짜기로 결정
현대의 웹 서비스 구성 요소들
과거에는 단순히 클라이언트 - 서버 로 구성되었던 웹이 속도와 관리의 용이를 위해 로그서버, 웹 캐시, 파일 서버 등으로 세분화 됨.
- CDN
- Load Balancer
- Web Application Service (WAS)
- DataBase
- File Storage
- Cache Service
- Message Queue
- Log Service
- Log Storage
- Other Service ( Authorization, Payment, Open Data, ...)
1. CDN ( Contents Delivery Network )
- 웹 서비스의 지연 시간과 서버의 부하 감소 위해 만들어진 컨텐츠 캐시 서버
- 만약 사용자가 특정 서비스의 컨텐츠를 가져오려는 요청 시 가까운 곳에 CDN 서버 있다면 가져옴
- 없을 시 파일 서버 || 웹 서버로 요청 보내서 처리
- eg) Cloud Flare, Cloud Front ( AWS ), 글로벌 서비스의 Latency (지연 시간 ) 을 감소 시켜주는 CDN
2. Load Balancer
- 서비스로 들어온 요청을 적절한 WAS ( Web Application Service ) 로 라우팅 해주는 서비스
- WAS의 상태를 주기적으로 체크하여 단일 서버에 대한 집중 피해줌
- eg) AWS ALB, Ngnix
3. WAS
- 백엔드 개발자가 개발하는 웹 서비스 어플리케이션
- 웹 서버의 구현체 ( By Spring, Go, Node.js, Django)
- 주로 DB나 File Storage 같은 저장소에서 데이터 가져와 조합 및 응답 생성
- eg ) Monoltic 구조, Micro Service 구조 , Serverless 구조
4. DB
- 서비스의 데이터의 저장소
- 주로 사용자 정보, 물건 정보 같은 정보성 데이터 저장
- 이미지,HTML 같은 파일성 데이터는 File Storage에 저장 하고 DB에는 그것의 URL만 저장
- 요즘에는 AWS 같은 Cloud 플랫폼 제공 DB를 사용하는 추세
5. File Storage
- 이미지 , HTML, 동영상 파일등 정적인 컨텐츠 저장소
- eg ) AWS S3, Blob Storage
6. Cache Service
- 웹 서비스내의 서비스들이 이용할 수 있는 Cache를 제공해주는 서비스
- 영구 데이터를 저장하는 저장소의 Cache Layer 역할 및 여러 서버로 나눠진 WAS의 공용 State 저장 역할
- 주로 key-value 저장 형태
- WAS는 데이터를 가져올 때 Cache Service를 먼저 확인 하고 없으면 DB에서 가져옴 ( 이때 가져오기 성공 시 캐시에 저장)
- eg) 공용 상태 저장소 Session , 글로벌 상태 저장 및 메시지 교환 Redis, Memcache
7. Message Queue
- 분산 시스템에서 비동기로 메세지를 송수신 해주는 서비스
- eg) Kafka, RabbitMQ, activeMq
8~9. Log service & Log Storage
- 전체 시스템들의 Log 저장 및 관리
- 개발 + 시스템 로그
10. 외부 서비스
- eg) OAuth - google, kakao, naver 인증
- 결제 - PG , 카카오페이, 네이버 페이
- 채팅 - SendBird, ChnnelTalk
- 마케팅 분석 - google Analytics
'CS > Web' 카테고리의 다른 글
[Web] 로그인을 안전하게 처리하기 ( JWT, refresh Token, access Token ) (0) | 2023.01.31 |
---|---|
[Web] 로그인 인증 4가지 방법 (0) | 2023.01.30 |
[Web] OAuth 리다이렉션 URI란? (0) | 2023.01.26 |
[Web] 캐시의 종류 및 동작 순 (0) | 2023.01.04 |
[Web] 세션, 토큰, 쿠키, JWT 기본 개념 (feat. 노마드) (1) | 2022.12.11 |