티스토리 뷰
반응형
본 포스팅은 AWS 공식 문서 내용을 정리 & 자체번역 한 내용입니다. (이후 공식 번역이 지원되는 경우 공식 문서를 참고바랍니다.)
AWS Serverless Application Model (이하 AWS SAM)은 AWS에서 서버리스 애플케이션을 만들 수 있는 오픈소스 프레임워크 입니다.
여기서 서비리스 애플리케이션이란 단순히 AWS Lambda를 의미하는 것이 아니라, API, 데이터베이스, 이벤트매핑 등의 추가 리소스와의 조합을 의미합니다.
AWS SAM은 다음과 같은 구성 요소로 이루어집니다.
- AWS SAM template specification. 서버리스 애플리케이션 스펙(specification)을 정의하는데 사용됩니다. 서비리스 애플리케이션에서 사용되는 API, 권한, 설정, 이벤트들을 간결하고 깔끔한 문법(syntax)으로 정의 할 수 있습니다. AWS SAM 템플릿 파일은 배포가능한 단일 엔티티로 작동하도록 사용됩니다. 자세한 내용은 다음 링크 참고 AWS Serverless Application Model (AWS SAM) specification
- AWS SAM command line interface (AWS SAM CLI). AWS SAM 템플릿을 이용하여 서버리스 애플리케이션을 구축할때 사용합니다. CLI를 사용하면 Lambda 함수를 로컬환경에서 실행시키고 디버깅 할 수 있으며, 애플리케이션 패키징과 AWS 클라우드에 배포를 진행 할 수 있습니다. 자세한 내용은 다음 링크 참고 AWS SAM CLI command reference
이 가이드에서는 AWS SAM을 사용하여 간단한 서버리스 애플리케이션을 정의, 테스트, 배포 하는 방법을 소개합니다. 또한 로컬환경에서 테스트해보고 배포 할 수 있는 예제 애플리케이션도 제공합니다. 이 예제를 시작점으로 삼아 서버리스 애플리케이션을 개발 할 수 있습니다.
AWS SAM 사용의 이점
AWS SAM은 다른 AWS 서비스를 통합할수 있기 때문에 AWS SAM은 다음과 같은 이점을 제공합니다.
- 단일 배포(Single-deployment) 구성. AWS SAM은 관련된 구성 요소 및 리소스들을 단일 스택(single stack)에서 설정 할 수 있습니다. 예를들어 메모리나 timeout과 같은 설정을 공유할 수 있고 관련 리소스들을 지정된 단일 엔티티로 함께 배포 할 수있습니다.
- AWS ColudFormation의 확장. AWS SAM은 AWS CloudFormation을 확장하여 만들었기 때문에 AWS CloudFormation에서 제공한 신뢰할 수 있는 배포 기능을 갖추었습니다. AWS SAM 템플릿에서 AWS CloudFormation을 사용하여 리소스를 정의 할 수 있고, 전체 리소스, 내장함수 및 기타 템플릿 기능 까지 사용 할 수 있습니다.
- 모범 사례(best practice) 제공. AWS SAM을 사용하여 인프라 구성을 정의하고 배포 할 수 있습니다. 이는 모범적 사례를 사용하도록 강제 됩니다. 또한 단 몇줄의 설정으로 CodeDeploy를 통하여 안전하게 배포를 수행할 수 있으며 AWS X-Ray를 사용 할 수 있습니다.
- 로컬 디버깅 및 테스트. AWS SAM CLI를 사용하면 로컬 환경에서 서버리스 애플리케이션을 빌드, 테스트, 디버깅 할 수 있습니다. 실제 Lambda 실행 환경을 제공하여 문제를 사전에 파악 할 수 있도록 합니다. 코드를 디버깅 하기 위한 IDE 툴킷(AWS Toolkit for JetBrains,AWSToolkit for PyCharm,AWSToolkit for IntelliJ, AWSToolkit for Visual Studio)이 제공됩니다. 이렇게 하면 클라우드에서 발생 할 수 있는 문제를 빠르게 해결 할 수 있습니다.
- 개발 툴과의 심층적 통합. 서버리스애플리케이션을 구성하기 위한 AWS툴을 AWS Serverless Application Repository에서 찾을 수 있습니다. AWS SAM을 기반으로 한 서버리스 애플리케이션의 개발, 테스트, 디버깅을 할 수 있는 AWS Cloud9 IDE, CodeBuild, CodeDeploy, CodePipeline 를 사용하여 배포 파이프라인을 구축하는 AWS CodeStar가 제공되며, Jenkins 플러그인도 제공됩니다.
다음 단계
반응형
'AWS' 카테고리의 다른 글
AWS SAM 시작하기 (0) | 2022.07.24 |
---|---|
AWS 청구비용 환불 신청하기 (2) | 2022.02.06 |
AWS Lambda에서 AWS SQS 실행하기 (Node.js) (0) | 2021.08.16 |
Spring Cloud Function 프로젝트 AWS Lambda에 배포하기 (0) | 2021.05.23 |
댓글