[DevOps] 서버리스

wnsxk2·2024년 12월 26일

💡 개요

프론트 강의를 듣다가 간단한 함수를 서버리스(Serverless)로 구현하는 것을 보고 흥미를 느껴 이를 정리해보았습니다.

서버리스

📚 서버리스란?

서버리스(Serverless)란 "서버가 없다"는 뜻이 아니라, 서버 관리의 부담이 개발자에게 없도록 클라우드 서비스가 이를 대신 처리해주는 방식을 의미합니다.
즉, 개발자는 애플리케이션 로직 작성에만 집중할 수 있고, 서버의 설정, 유지보수, 확장 등을 신경 쓰지 않아도 됩니다.

서버리스는 다음과 같은 경우에 특히 유용합니다:

  • 사이드 프로젝트 또는 MVP(최소 기능 제품)를 빠르게 개발할 때.
  • 사용량에 따라 비용을 절약하고 싶을 때.
  • 이벤트 기반 프로세스를 간단히 처리하고 싶을 때.

다양한 서버 구축 방법

🏠 On-Premise

On-Premise는 물리적 하드웨어와 소프트웨어를 모두 직접 관리하는 방식을 의미합니다.
이 방법은 높은 초기 비용과 유지보수 비용이 들지만, 보안이나 성능 같은 특정 요구 사항을 만족시키기에 적합합니다.

  • 특징:
    • 하드웨어와 소프트웨어를 모두 직접 설치 및 운영.
    • 완전한 제어권 보장.
    • 유지보수 비용과 초기 투자가 큼.
  • 적합한 상황:
    • 데이터 보안이 최우선인 금융, 의료 산업.
    • 인터넷 연결 없이도 운영이 필요한 환경.

☁️ Cloud

Cloud는 물리적인 하드웨어 관리를 클라우드 제공자가 대신하고, 개발자가 소프트웨어 관리에만 집중할 수 있는 방식입니다.

  • 특징:
    • 인프라(하드웨어)는 클라우드 제공자가 관리.
    • 필요에 따라 자원을 쉽게 확장 가능.
    • 사용한 만큼 비용을 지불(종량제).
  • 적합한 상황:
    • 동적으로 확장이 필요한 애플리케이션(예: 전자상거래).
    • 초기 비용을 절약하고 싶을 때.

🪄 서버리스

서버리스는 클라우드 방식에서 더 나아가, 하드웨어와 소프트웨어 관리 모두를 클라우드 제공자가 담당하는 방식입니다.
개발자는 함수(Function)애플리케이션 코드만 작성하여 서버리스 플랫폼에 등록하고, 필요한 순간에만 함수가 실행됩니다.

  • 특징:
    • 하드웨어와 소프트웨어 관리 필요 없음.
    • 요청이 있을 때만 함수가 실행됨(이벤트 기반).
    • 사용량에 따라 자동 확장/축소.
  • 예시:
    • AWS Lambda
    • Google Cloud Functions
    • Azure Functions
  • 적합한 상황:
    • 간헐적인 트래픽이 예상되는 애플리케이션.
    • 이벤트 중심의 데이터 처리(예: 이미지 변환, 로그 분석).

서버리스의 장단점

장점

  1. 비용 효율성:
    • 사용한 만큼만 비용을 지불(Idle 상태일 때 비용 발생 X).
  2. 빠른 개발:
    • 서버 관리 없이 코드 작성에만 집중 가능.
  3. 자동 확장성:
    • 트래픽 증가에 따라 자동으로 확장.
  4. 유지보수 최소화:
    • 서버 패치나 업그레이드가 필요 없음.

단점

  1. 실시간 서비스에는 부적합:
    • 요청 시 함수가 실행되기 전 콜드 스타트로 인해 지연 발생 가능.
  2. 복잡한 워크로드 관리 어려움:
    • 큰 규모의 애플리케이션은 관리가 복잡할 수 있음.
  3. 벤더 종속성:
    • 특정 클라우드 플랫폼에 종속될 위험이 있음(예: AWS Lambda).

🪄 결론

서버리스는 빠른 개발과 비용 절감에 매우 적합한 방식으로, 특히 초기 프로젝트나 이벤트 기반 애플리케이션에서 유용합니다.
다만, 실시간 응답이 중요한 서비스나 대규모 애플리케이션에는 적합하지 않을 수 있으니, 요구 사항에 따라 적절한 서버 구축 방식을 선택하는 것이 중요합니다.


📌 Reference

  1. 🌐 서버리스(ServerLess) 개념 💯 정리 (BaaS / FaaS)

0개의 댓글