AWS SAM

AWS SAM

AWS Serverless Application Model

중급

한 마디로

서버리스 앱을 쉽게 만들고 배포하는 도구

#서버리스#IaC#Lambda#배포자동화

비유로 이해하기

SAM은 서버리스 앱을 위한 설계도 도구예요. Lambda 함수, API, 데이터베이스 등을 하나의 파일에 정리해서 명령어 한 번으로 모두 배포할 수 있어요.

동작 원리

애니메이션 준비 중입니다

언제 쓰나요?

🚀

서버리스 API 빠르게 구축

Lambda + API Gateway 조합의 REST API를 template.yaml 파일 하나로 정의하고 sam deploy 한 번으로 배포할 수 있어요.

🧪

로컬에서 Lambda 테스트

sam local invoke로 로컬에서 Lambda 함수를 테스트하고, sam local start-api로 API를 에뮬레이션할 수 있어요. AWS에 배포하기 전에 빠르게 테스트!

📦

서버리스 앱 패키징 및 공유

SAM 템플릿으로 정의된 서버리스 앱을 AWS Serverless Application Repository에 공유하거나, 팀 내에서 표준화된 방식으로 배포할 수 있어요.

요금 예시

SAM 자체는 무료 도구예요! SAM으로 배포하는 Lambda, API Gateway 등의 서비스 비용만 내면 돼요. 서버리스 서비스는 대부분 사용한 만큼만 비용이 들어서 소규모라면 거의 무료예요.

자주 묻는 질문

SAM과 Serverless Framework 중 무엇을 쓸까요?

SAM은 AWS 공식 도구로 CloudFormation과 완벽히 호환돼요. Serverless Framework는 멀티 클라우드를 지원해요. AWS만 사용한다면 SAM이 더 안정적입니다.

SAM과 CDK 중 무엇을 선택해야 하나요?

SAM은 YAML 기반으로 서버리스에 특화, CDK는 프로그래밍 언어로 모든 AWS 리소스를 정의해요. 서버리스 위주라면 SAM, 복잡한 인프라라면 CDK가 적합합니다.

기존 CloudFormation 템플릿에 SAM을 섞어 쓸 수 있나요?

네! SAM은 CloudFormation의 Transform이므로, 기존 CloudFormation 템플릿에 SAM 리소스를 추가할 수 있어요. 점진적 마이그레이션이 가능합니다.