backend-interview-guide

서버리스(Serverless)

목차


서버리스란?

서버리스(Serverless) 는 클라우드 서비스 제공자가 애플리케이션 실행에 필요한 서버 관리를 전적으로 책임지는 클라우드 컴퓨팅 모델입니다. 개발자는 서버 인프라 관리 없이 애플리케이션 개발에만 집중할 수 있으며, 애플리케이션은 이벤트 기반으로 실행됩니다.

서버리스 환경에서는 자동 확장, 종량제 과금(Pay-as-you-go), 무상태 함수 실행 등이 기본적으로 제공됩니다.

주요 특징:

대표적인 서버리스 플랫폼:


서버리스의 주요 구성 요소

서버리스 컴퓨팅은 다양한 클라우드 서비스와 결합하여 작동합니다. 아래는 주요 구성 요소입니다.

1. FaaS (Function as a Service)

2. BaaS (Backend as a Service)

3. 이벤트 소스 (Event Source)


서버리스의 장점

1. 운영 부담 감소

2. 비용 효율성

3. 자동 확장성

4. 빠른 배포와 개발

5. 이벤트 기반 처리


서버리스의 단점

1. 제한된 실행 시간

2. 콜드 스타트 문제

3. 디버깅 및 모니터링 어려움

4. 플랫폼 의존성(Vendor Lock-in)

5. 상태 관리의 어려움


대규모 트래픽 환경에서 서버리스

1. 자동 확장


2. 이벤트 기반 처리

대규모 트래픽이 발생하는 애플리케이션에서 이벤트 기반 처리는 효과적입니다.


3. 콜드 스타트 문제 해결


4. 비용 최적화


5. 모니터링 및 로깅

대규모 트래픽에서는 애플리케이션의 상태를 실시간으로 파악하는 것이 중요합니다.


결론

서버리스는 대규모 트래픽 환경에서 다음과 같은 이점을 제공합니다:

  1. 자동 확장: 트래픽 급증 시에도 성능 저하 없이 대응 가능.
  2. 비용 효율성: 요청당 과금으로 유휴 상태에서 비용이 발생하지 않음.
  3. 이벤트 기반 처리: 실시간 데이터 처리, 비동기 작업 처리에 적합.
  4. 운영 간소화: 서버 관리 부담이 없으므로 개발과 배포 속도가 빨라짐.

그러나 서버리스는 콜드 스타트, 플랫폼 종속성, 긴 실행 시간 제한 등 몇 가지 단점을 가지고 있습니다. 이러한 한계를 이해하고 적절한 설계를 통해 극복한다면, 서버리스는 대규모 트래픽 애플리케이션의 이상적인 솔루션이 될 수 있습니다.