AWS SAM vs Serverless Framework

AWS SAM 과 Serverless Framework를 비교해보자

AWS SAM vs Serverless Framework

AWS의 SAM과 Serverless 프레임워크 비교
두개 모두 서버리스 애플리케이션을 개발할 때 사용되는 IaC이다.

결론부터 말하면
개인적으로 AWS를 사용한다면 SAM을 사용하는것이 더 편리하다고 생각한다.

AWS SAM (Serverless Application Model)

SAM은 AWS에서 제공하는 서버리스 어플리케이션 개발을 위한 리소스이다.

기본적으로 CloudFormation을 기반으로 작동하게 되는데
CloudFormation에 비해 간단하게 서버리스 기능들을 사용할 수 있게 해준다.

  • CloudFormation에 비해 간단하지만 제약사항이 많다..

sam-cli 를 사용해 간단하게 배포, 싱크 등이 가능하다.

특징적으로

  • Best Practice 템플릿 제공
  • CloudFormation 확장 기능 제공
  • 기본 CI/CD
  • sam sync 를 이용한 동기화
    • 해당 기능으로 빠른 테스트 및 검증이 가능하다.
    • Deploy와는 다름

Serverless Framework

Serverless Framework는 node.js로 작성된 오픈소스 프레임워크이다.
서버리스 애플리케이션 개발 프로세스를 단순화하기 위한 프레임워크다.

AWS 프로바이더를 사용한다면 SAM과 동일하게 CloudFormation을 기반으로한다.

특징적으로

  • 다중 프로바이더 지원
  • 플러그인 생태계
  • 환경 관리
    등이 있다.

비교

우선
SAM은 AWS 만 지원한다.

  • 당근 다른 클라우드를 사용할 예정이라면 SAM은 사용할 수 없다.

그래서 일단 AWS를 사용할때를 가정

개인적으론 AWS를 사용할것이라면 SAM을 쓰는게 더 좋다고 생각한다.

이유로는

  • 기본적으로 AWS에서 공식 지원하는 툴이다.
    • 최근 Serverless Framework 개발과 지원이 조금 줄어든듯한..
  • AWS CDK와 결합이 가능해 확장이 쉽다
  • SAM Sync 기능이 진짜ㅏ 유용하고 강력하다
    • Prod에선 사용하면 안되지만 개발 환경에서는 매우 좋음.

다만 플러그인 시스템이 없고
사용자가 프레임워크 기능을 향상시키고 지정하는 옵션이 적다는 단점이 있다.

사실 무엇보다
AWS에서 호스팅을 한다면 AWS에서 제공하는 통합서비스를 사용하는게 안정적이라고 생각하다.