서버리스 프레임워크

JP·2022년 5월 28일
0

람다

목록 보기
2/2

최근 회사에서 개발했던 배치성 잡에 대해 설명하려고 글을 쓴다.

구현하려 했던 기능은 인사정보 시스템에 접근하여 매일 특정 시간에 인사정보를 채팅으로 전달해주는 기능이였는데, 이 기능을 기존의 서비스에 붙히기에는 의도와 성격이 달랐기에 분리할 필요가 있었고 인사정보를 호출하기 위해 서버에 새로운 어플리케이션을 올린다거나 이를 위한 서버를 두는 것 자체가 부담이 되는 상황이였다.

그렇기에 람다를 쓰기로 하였고, 여기에 올리기 위해 서버리스 프레임 워크를 사용하기로 하였다.

서버리스란?

그렇다면 서버리스(serverless) 란 무엇인가?
서버리스를 직역하자면 서버가 없다는 뜻이다. 하지만 서버리스에는 서버가 없는것이 아니다. 사용자가 서버를 관리하는 것이 아닌 클라우드가 사용자를 위해 관리하는 클라우드 컴퓨팅 모델을 의미한다.

장단점

장점으로는

  • 이벤트 기반의 비용(일정 주기나 조건등에 함수를 호출하기때문에 리소스를 낭비하지 않는다. 따라서 비용이 저렴하다)
  • 인프라 구성, 운영, 보안 등의 신경을 덜 쓰고 비즈니스에 집중 할 수 있다.
  • 요청에 따른 스케일을 자동으로 관리한다.
  • 패키징과 배포가 쉽다.
  • 릴리즈 주기가 감소하고 높은 생산성을 자랑한다.

단점으로는

  • 실시간 서비스에는 적합하지 않다(항상 실행중인 서버랑 달리 트리거에 의해 리소스를 요청하기 때문)
  • 클라우드 서비스 업체에 종속적
  • 마이그레이션의 어려움
  • 실행 시간의 한계
  • 로컬 데이터를 사용할 수 없다.
  • 디버깅이나 테스팅에 불편하다.

서버리스에는 여러가지가 서비스가 있지만 이번에 내가 사용한 것은 람다위에서 동작하는 서버리스 프레임워크 였다.

서버리스 프레임워크는 람다에서 동작하는 어플리케이션을 개발하기 위한 통합 개발 환경을 제공하는 프레임워크이다.

서버리스 프레임워크의 장점으로는
1. 어플리케이션을 이벤트 기반의 함수들로 작성할 수 있다.

  • 람다 함수를 정의하는 것과 트리거를 두는 것이 yaml를 통해 이루어지는데 이 과정이 매우 간편하다.
  1. 단 한줄로 배포가 가능하다
  • 람다 함수와 트리거 그리고 코드들은 하나로 연결되어 클라우드에 자동으로 배포된다.
  1. 다양한 플러그인의 지원과 사용예시들이 있다.
  • 수천개의 플러그인 사용사례들이 존재한다.
  1. 다양한 프레임워크와 언어 위에서 작성할 수 있다.
  • 파이썬, 고, 자바, 노드 등을 이용한 reset api에서 GraphQL api, 스케쥴 잡, express 앱 그리고 프론트엔드 앱까지 다양한 어플리케이션을 만들 수 있다.
profile
to Infinity and b

0개의 댓글