Topic

Serverless Application Model

JackerLab 2025. 5. 31. 14:02
728x90
반응형

개요

Serverless Application Model(SAM)은 AWS에서 제공하는 서버리스 애플리케이션의 배포를 간소화하기 위한 오픈소스 프레임워크입니다. YAML 문법 기반의 선언형 방식으로 Lambda, API Gateway, DynamoDB, S3 등 서버리스 리소스를 정의하고 자동으로 패키징, 배포, 로컬 테스트까지 지원합니다.


1. 개념 및 정의

AWS SAM은 서버리스 애플리케이션의 구성 요소를 코드로 관리할 수 있도록 도와주는 프레임워크입니다.

  • 서버리스(Serverless): 서버 인프라 관리 없이 코드 실행에 집중할 수 있는 아키텍처
  • SAM: AWS CloudFormation을 확장한 도구로, 서버리스 구성 요소를 간결하게 정의하고 CI/CD 파이프라인 통합이 가능

SAM은 반복 작업을 줄이고 인프라 정의와 애플리케이션 코드를 일관되게 관리할 수 있도록 합니다.


2. 특징

항목 설명 장점
선언형 YAML 템플릿 CloudFormation 기반 구성 인프라 코드 관리 간편
로컬 개발 지원 sam local 명령어 제공 로컬 디버깅 및 테스트 가능
단일 배포 명령 sam deploy CI/CD 자동화 용이

SAM은 AWS 리소스를 추상화하여 개발자가 코드와 인프라를 하나의 단위로 정의하고 관리할 수 있게 해줍니다.


3. 구성 요소

구성 요소 설명 예시
AWS::Serverless::Function Lambda 함수 정의 핸들러, 이벤트, IAM 권한 포함
AWS::Serverless::Api API Gateway 정의 REST API 경로 및 메서드 지정
AWS::Serverless::Table DynamoDB 테이블 정의 파티션 키, 읽기/쓰기 용량 포함
Globals 전체 리소스 공통 속성 정의 함수 런타임, 타임아웃 등

SAM은 이러한 리소스를 간결한 형식으로 정의할 수 있도록 하며, 전체 서버리스 아키텍처를 한 파일로 표현 가능합니다.


4. 기술 요소

기술 요소 설명 사용 목적
AWS CloudFormation 인프라 자동 배포 도구 SAM 템플릿 실행 기반
Docker 로컬 실행 환경 시뮬레이션 sam local로 로컬 테스트 지원
AWS CLI 배포 명령 수행 도구 sam build, sam deploy 실행

SAM은 AWS 생태계와 깊이 통합되어 있으며, GitHub Actions, CodePipeline 등과 함께 사용하여 DevOps 환경 구현이 가능합니다.


5. 장점 및 이점

항목 설명 기대 효과
개발 속도 향상 리소스 정의 및 배포 간소화 빠른 피드백 사이클
유지보수 용이 인프라와 코드 통합 관리 버전 관리 및 협업 수월
비용 절감 서버리스 구조 최적화 리소스 낭비 감소

서버리스 개발과 DevOps가 융합된 환경에서 SAM은 효율성과 생산성을 모두 끌어올릴 수 있습니다.


6. 주요 활용 사례 및 고려사항

사례 설명 고려사항
API 기반 백엔드 Lambda + API Gateway 조합 API 보안, Rate Limit 설정
이벤트 처리 파이프라인 S3 → Lambda → DynamoDB 이벤트 순서, 중복 처리 고려
CI/CD 통합 GitHub Actions + SAM 배포 환경 분리, 배포 전략 수립 필요

SAM은 작은 프로젝트부터 대규모 마이크로서비스 환경까지 다양한 스케일에서 활용 가능하지만, 리소스 종속성 및 권한 구성에 주의가 필요합니다.


7. 결론

Serverless Application Model은 AWS 서버리스 환경에서 인프라를 선언적으로 관리하고, 자동화된 배포 및 로컬 개발을 지원하는 강력한 도구입니다. 빠른 개발, 비용 효율성, 확장성까지 제공하는 SAM은 클라우드 네이티브 애플리케이션의 핵심 프레임워크로 자리잡고 있습니다.

728x90
반응형