본문 바로가기
Computer Science

[CS] Serverless

by junseokoo 2025. 3. 16.

Serverless

  • 동적으로 서버의 자원을 할당한다. 즉, 사용자가 없다면 자원을 할당하지 않고 대기하다가 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어가게 된다. (자원 효율적 사용 가능)
  • 비용이 대기 상태를 제외한 실제 사용 자원에 대해서만 청구
  • BaaS(Backend as a Service) or FasS(Function as a Service) 에 의존하여 작업을 처리
  • BaaS를 제공하는 서비스 중에선, Firebase, Kinvey 등이 있다.
    • 백엔드 개발에 필요한 여러 기능을 API로 제공하는 서비스
    • SNS연동이나 DB와 같이 백엔드에 필요한 기능들을 사용자가 직접 구현할 필요 없이 제공하는 API로 해당 기능을 구현. 클라우드 공급자가 백엔드 개발 환경까지 같이 제공한다고 보면 된다.
  • FaaS를 제공하는 서비스 중에선 AWS Lambda, Azure Functions,Google Cloud Functions등이 있다.
    • 함수를 서비스로 제공한다. 사용자가 작성한 백엔드 코드를 함수 단위로 쪼개어 대기상태로 둔다.그러다 요청이 들어오면 서버가 대기 상태에 두었던 함수를 실행시켜 처리한 뒤 다음 작업이 끝나면 다시 대기상태로 만드는 구조 입니다. 비용은 함수 호출 횟수에 따라 청구
    • 함수 호출 후 일정 시간이 경과되어도 다시 수면상태로 들어간다 (lambda의 경우 5분)

Serverless 장단점

  • 장점
    • 이벤트 기반의 비용 (일정 주기, 조건 등에 함수를 호출하기때문에 리소스를 낭비하지 않게 되어서 비용이 저렴하다. AWS Lambda의 경우 함수 100만번 실행당 0.2달러면 가능)
    • 인프라 구성,운영,보안 등에 신경쓰지 않고 비지니스 로직에 집중이 가능
    • 자동 스케일 업 및 스케일 다운
    • 간단한 패키징 및 배포
    • 릴리즈 주기 감소
    • 높은 생산선
  • 단점
    • 실시간 서비스엔 적합하지 않음 (항시 실행중인 서버랑 달리, 트리거에 의해 서버를 실행하고 종료하기 때문에 실행 대기 시간이 오래걸림)
    • 클라우드 서비스 업체에 종속적
    • 마이그레이션의 어려움
    • 실행 시간 한계 (AWS Lambda의 경우 15분)
    • 로컬 데이터를 사용할 수 없다.
    • 디버깅, 테스팅에 불편

'Computer Science' 카테고리의 다른 글

[CS] 양방향 암호화  (0) 2025.04.11
[CS] 단방향 암호화  (0) 2025.04.11
[CS] HTTP vs HTTPS  (0) 2025.04.10
[CS] Content Delivery Network  (0) 2025.03.16
[CS] Session vs Token  (0) 2024.11.28