서버리스라는 용어를 서버가 없이! 운영할 수 있다 라고 생각할 수 있는데
그건 불가능하다~
백엔드인데, 직접 서버를 관리하지 않아도 되는 경우를 뜻한다고 한다.
일반적인 서버의 구성은 인터넷 망 + 서버 하드웨어 + 서버 운영체제 + 서버 미들웨어 + 서버 어플리케이션이 필요하다.
발전된 형태로
클라우드 서버는 서버 미들웨어 + 서버 어플리케이션 가 필요하다.
더 발전된 형태로
서버리스는 다 필요 없다!
백엔드를 서버에 올리는 것은 아니고 백엔드를 작은 함수단으로 쪼개서 서버로 올린다.
대표적인 서버리스: AWS lambda, Azure Functions, Google Cloud Functions
장점
일반 서버와 다르게 24시간 풀가동하지않고
리퀘스트가 들어오는 순간 잠자고 있던 함수를 깨우고 요청한 작업을 수행한다.
그래서 딱 리퀘스트만큼 돈을 지불하면 된다. (저렴한 비용)
단점
1. Cold Start 리퀘스트가 들어오는순간 함수를 깨우는 그 짧은 시간조차 허용되지 않는 서비스에는 부적합하다.
ex) 주식 매매, 온라인 게임의 실시간 멀티플레이
2. lock-in 서버 제공자에 너무 의존하게 된다. 서버리스 플랫폼을 이전하는것이 쉽지 않다.
서버리스에 적합한 작업?
- 사이드 프로젝트
- 빠른 프로토타입 출시
- 반복적인 batch 처리 형태의 기능 ex) 실시간 라이브 동영상 스트리밍에 대한 로그 분석, 음성이나 텍스트 기반 학습 데이터를 제공하는 인공지능 기능 등
대규모 스트리밍 기업 넷플리스가 서버리스 아키텍처 AWS Lamda를 쓰고 있다고 한다.
쉬운 설명
728x90
반응형
'개발공부' 카테고리의 다른 글
[운영체제] CISC, RISC 란? 차이점 (0) | 2023.01.30 |
---|---|
CDN 이란? purdge (0) | 2022.10.24 |
BFS vs DFS 알고리즘 (0) | 2022.08.21 |
릴리즈 노트란? 그리고 작성하는 방법과 Tip (0) | 2022.08.18 |
Technical Writer 테크니컬 라이터란? (0) | 2022.08.16 |
댓글