티스토리 뷰

반응형

본 포스팅은 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 SAM 시작하기

반응형
댓글