AWS SAM(Serverless Application Model)란

2026. 7. 8. 15:31·Data Engineering/AWS

들어가며

AWS Lambda를 사용하면 서버를 직접 관리하지 않고 코드를 실행할 수 있지만, 실제 서비스에서는 Lambda 하나만 사용하는 경우는 드뭅니다.

 

대부분의 서버리스 애플리케이션은 Lambda, API Gateway, DynamoDB, S3 등 여러 AWS 서비스를 함께 사용하게 됩니다. 이때 각 서비스를 콘솔에서 하나씩 생성하고 설정하면 관리가 어렵고, 동일한 환경을 다시 구성하기도 쉽지 않습니다.

이러한 문제를 해결하기 위해 AWS에서는 AWS SAM(Serverless Application Model) 을 제공합니다.

 

AWS SAM은 서버리스 애플리케이션을 YAML 파일 하나로 정의하고, 빌드·테스트·배포까지 자동화할 수 있도록 지원하는 프레임워크입니다.

이번 글에서는 AWS SAM의 개념부터 배포 과정, SAM Accelerate(sam sync)까지 살펴보겠습니다.


1. AWS SAM이란?

https://medium.com/%40servifyspheresolutions/what-is-aws-serverless-application-model-89b73e6e80f2

AWS SAM(Serverless Application Model)은 서버리스 애플리케이션을 개발하고 배포하기 위한 오픈소스 프레임워크입니다.

Lambda, API Gateway, DynamoDB 등의 AWS 리소스를 YAML 형식으로 정의하면 AWS가 필요한 CloudFormation 템플릿을 생성하여 리소스를 자동으로 배포합니다.

 

기존에는 AWS 콘솔에서 하나씩 생성해야 했던 리소스를 코드로 관리할 수 있도록 도와주는 서비스입니다.


2. AWS SAM의 특징

기능 설명
Infrastructure as Code(IaC) 인프라를 코드로 관리
YAML 기반 리소스를 YAML 파일로 정의
CloudFormation 기반 자동으로 CloudFormation 생성
Local Test 로컬에서 Lambda 실행 가능
간편한 배포 sam deploy 명령으로 배포

3. 왜 AWS SAM을 사용할까?

서버리스 애플리케이션을 만든다고 가정해 보겠습니다.

필요한 서비스는 다음과 같습니다.

  • Lambda
  • API Gateway
  • DynamoDB
  • IAM Role

콘솔에서 직접 생성한다면 각각의 서비스를 생성하고 연결해야 합니다.

하지만 AWS SAM을 사용하면 하나의 YAML 파일에 모든 리소스를 정의하여 한 번에 배포할 수 있습니다.

Resources:
  MyFunction:
    Type: AWS::Serverless::Function

  MyTable:
    Type: AWS::DynamoDB::Table

  MyApi:
    Type: AWS::Serverless::Api

4. AWS SAM 배포 과정


5. CloudFormation과의 관계

  • SAM → 개발자가 사용하는 도구
  • CloudFormation → AWS 리소스를 실제로 생성하는 서비스

AWS SAM은 CloudFormation을 더 쉽게 사용할 수 있도록 만든 서비스입니다.

SAM Template

↓

CloudFormation Template

↓

AWS 리소스 생성

실제로는 CloudFormation이 리소스를 생성하지만, 개발자는 SAM의 간단한 문법만 작성하면 되므로 훨씬 편리합니다.


6. SAM Accelerate(sam sync)

애플리케이션을 개발하다 보면 코드를 수정할 때마다

sam build
sam deploy

를 반복해야 합니다. 하지만 작은 코드 수정에도 전체 배포를 수행하면 시간이 오래 걸립니다.

이를 해결하기 위해 SAM Accelerate 기능이 제공됩니다.

6-1) sam sync란?

sam sync는 변경된 코드만 AWS와 동기화하는 기능입니다. 전체 CloudFormation 스택을 다시 배포하지 않고 필요한 부분만 업데이트하여 개발 속도를 높여줍니다.

6-2) sam sync의 장점

  • 코드 변경 사항만 빠르게 반영
  • 전체 배포 시간 단축
  • 개발 생산성 향상
  • 반복적인 테스트에 적합

6-3) 주요 명령어

6-3-1) 전체 동기화

sam sync

코드와 인프라를 모두 동기화합니다.

6-3-2) 코드만 동기화

sam sync --code

Lambda 코드만 변경되었을 때 사용하는 명령입니다. CloudFormation을 다시 실행하지 않기 때문에 훨씬 빠르게 반영됩니다.

6-3-3) 특정 Lambda만 동기화

sam sync --code --resource-id HelloWorldFunction

특정 Lambda 함수만 업데이트합니다.

6-3-4) 자동 감시 모드

sam sync --watch

파일 변경을 감지하여 자동으로 AWS에 반영합니다.


7. 언제 사용할까?

AWS SAM은 다음과 같은 경우에 많이 사용됩니다.

  • Lambda 기반 애플리케이션 개발
  • API Gateway + Lambda 구성
  • DynamoDB 연동
  • 서버리스 프로젝트 배포
  • 개발 환경 자동 구축
  • CI/CD 파이프라인

8. SAM과 CloudFormation 비교

https://www.marcoml.com/en/post/aws-lambda-ci-cd-with-aws-sam-code-pipeline-and-cloud-formation/

항목 AWS SAM CloudFormation
사용 대상 서버리스 애플리케이션 모든 AWS 리소스
문법 간단한 YAML 상세한 YAML/JSON
학습 난이도 낮음 상대적으로 높음
내부 동작 CloudFormation 생성 직접 리소스 생성

9. 마치며

이번 글에서는 AWS SAM의 기본 개념과 배포 과정을 살펴보았습니다.

처음에는 단순히 Lambda를 배포하는 도구라고 생각했지만, 학습하면서 Lambda, API Gateway, DynamoDB와 같은 여러 AWS 서비스를 하나의 YAML 파일로 정의하고 관리할 수 있는 Infrastructure as Code(IaC) 도구라는 점을 이해할 수 있었습니다.

 

또한 SAM은 내부적으로 CloudFormation을 활용해 리소스를 생성하며, sam build, sam deploy, sam sync와 같은 명령어를 통해 개발부터 배포, 코드 변경 사항의 빠른 반영까지 지원한다는 점도 알게 되었습니다.

 

이를 통해 서버리스 애플리케이션을 반복적으로 개발하고 배포하는 과정이 훨씬 단순해지고 일관성 있게 관리된다는 점을 이해할 수 있었습니다.

 

'Data Engineering > AWS' 카테고리의 다른 글

Amazon ECS란  (0) 2026.07.09
AWS Batch란  (0) 2026.07.08
AWS Lambda란  (0) 2026.07.08
AWS EC2란  (0) 2026.07.08
AWS 데이터 이동 서비스 정리 | Data Exchange, Transfer Family, Snow Family  (0) 2026.07.06
'Data Engineering/AWS' 카테고리의 다른 글
  • Amazon ECS란
  • AWS Batch란
  • AWS Lambda란
  • AWS EC2란
jjaehyeok
jjaehyeok
jjaehyeok 님의 블로그 입니다.
  • jjaehyeok
    jjaehyeok 님의 블로그
    jjaehyeok
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • Navisafe (15)
        • Infrastructure (13)
        • Data Pipeline (0)
        • Trouble shooting (2)
      • Data Engineering (56)
        • Airflow (11)
        • Kafka (3)
        • Spark (0)
        • ELK (2)
        • Kubernetes (7)
        • AWS (33)
        • Flink (0)
      • CodingTest (31)
        • 문제 풀이(Lv1~Lv2) (21)
        • 문제 풀이(Lv3) (10)
        • SQL (0)
      • 알고리즘 정리 (3)
        • 자료구조 (스택, 큐, 해시) (3)
        • 정렬 & 그리디 (0)
        • DFS & BFS (0)
        • 이분탐색 (0)
        • DP (0)
      • 자격증 (1)
        • CKAD (1)
        • DEA-C01 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DynamoDB
    Kafka
    eks
    RDS
    Airflow
    Glue
    k8s
    ECR
    datatransfer
    Redshift
    EC2
    datasync
    batch
    DEA-C01
    trouble shooting
    S3
    AWS
    CKAD
    elk
    documentdb
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
jjaehyeok
AWS SAM(Serverless Application Model)란
상단으로

티스토리툴바