어제 SAM이 CloudFormation Macro 위에 얹은 서버리스 DSL이라는 걸 봤다. 그런데 현장에 가보면 SAM을 쓰지 않는 팀이 의외로 많다. 누구는 Serverless Framework로 Lambda 200개를 굴리고 있고, 누구는 CDK + TypeScript로 Lambda·EKS·RDS·SQS를 한 파일에서 선언하고 있다. 셋 다 결국 CloudFormation 템플릿을 만들어 AWS에 던지지만, 추상화 모델과 사용자 경험은 완전히 다르다. 오늘은 SAM의 두 대안인 Serverless Framework(2015, Node 기반 플러그인 시스템)와 CDK(2019, AWS가 직접 만든 코드 기반 IaC)를 비교한다.
DOP 시험은 SAM과 CDK를 한 문제 안에서 비교하는 경향이 늘고 있다. "팀이 TypeScript에 익숙하고 Lambda 외에 EKS·RDS·OpenSearch도 한 스택에서 관리하려면?" 같은 시나리오에 정답은 거의 항상 CDK다. 반면 "AWS 네이티브 도구만 쓰는 정책이고 학습 곡선이 낮아야 한다"면 SAM. 이 선택의 기준을 정확히 이해하는 게 오늘의 목표다.
Serverless Framework(이하 SLS)는 2015년 Austen Collins가 만든 "JAWS Framework"가 모태다