

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Serverless Application Model (AWS SAM)란 무엇입니까?
<a name="what-is-sam"></a>

AWS Serverless Application Model (AWS SAM)는 코드형 인프라(IaC)를 사용하여 서버리스 애플리케이션을 빌드하기 위한 오픈 소스 프레임워크입니다. 개발자는 AWS SAM의 간편 구문을 사용하여 배포 중에 인프라로 변환되는 [CloudFormation](https://aws.amazon.com/cloudformation) 리소스와 특수 서버리스 리소스를 선언합니다. 작업 시 다음과 상호 작용 AWS SAM합니다.

1. AWS SAM CLI - 서버리스 애플리케이션을 개발, 로컬 테스트 및 배포하는 데 도움이 되는 명령줄 도구입니다.

1. AWS SAM 템플릿 - 서버리스 리소스를 정의 CloudFormation 하기 위한 간소화된 구문을 제공하는의 확장입니다.

**sam init** 명령을 사용하면 일반적으로 AWS SAM 템플릿, 애플리케이션 코드 및 기타 구성 파일이 포함된 프로젝트라고 하는 AWS SAM 프로젝트 디렉터리가 생성됩니다.

## 를 사용해야 하는 경우 AWS SAM
<a name="when-to-use-sam"></a>

AWS SAM 는의 모든 기능을 갖춘 간소화된 서버리스 개발을 원하는 시나리오에 이상적인 IaC 솔루션입니다 CloudFormation. 예를 들어 SAM을 다음에 사용할 수 있습니다.
+ **서버리스 애플리케이션:** SAM을 사용하여 최소한의 코드로 AWS Lambda 함수, Lambda 내구성 함수, Amazon API Gateway APIs, Amazon DynamoDB 테이블 및 기타 서버리스 리소스를 빠르게 정의할 수 있습니다.
+ **CloudFormation 기능 향상:** SAM을 기존 CloudFormation 템플릿과 결합하여 기존 인프라에 서버리스 구성 요소를 추가할 수 있습니다. SAM 리소스는 동일한 템플릿의 표준 CloudFormation 리소스와 함께 작동합니다.
+ **로컬 개발 및 테스트:** SAM CLI을(를) 사용하여 AWS에 배포하기 전에 개발 머신에서 Lambda 함수를 로컬로 테스트하고, API Gateway 엔드포인트를 시뮬레이션하며, 서버리스 애플리케이션을 디버그할 수 있습니다.
+ **서버리스용 CI/CD:** 스테이징 및 프로덕션 환경에 필요한 CloudFormation 인프라를 자동으로 생성하는 SAM 템플릿을 사용하여 배포 파이프라인을 구축할 수 있습니다.
+ **콘솔 생성 리소스에서 마이그레이션:** SAM 템플릿을 사용하여 AWS 관리 콘솔에서 생성된 Lambda 함수 및 API Gateway 리소스를 코드형 인프라로 변환할 수 있습니다.

** AWS SAM 다른 IaC 도구와 비교**
+ 템플릿 호환성을 유지하면서 서버리스 리소스 정의를 단순화하려면 CloudFormation 대신 SAM을 사용하세요.
+ 프로그래밍 방식 대신 인프라를 설명하는 선언적 접근 방식을 선호하는 AWS CDK 경우 대신 SAM을 사용합니다.
+ SAM CLI의 로컬 테스트 기능을 사용하여 CDK 애플리케이션을 개선 AWS CDK 하여 SAM을와 결합합니다.

## 주요 기능
<a name="what-is-sam-feature"></a>

AWS SAM 는 다음을 수행하여 개발자 경험을 개선하는 다양한 이점을 제공합니다.

**더 적은 코드를 사용하여 애플리케이션 인프라 코드 빠르게 정의하기**  
 AWS SAM 템플릿을 작성하여 서버리스 애플리케이션 인프라 코드를 정의합니다. 템플릿을에 직접 배포 CloudFormation 하여 리소스를 프로비저닝합니다.

**전체 개발 수명 주기에 걸쳐 서버리스 애플리케이션을 관리합니다.**  
개발 수명 주기의 작성, 구축, 배포, 테스트 및 모니터링 단계에 걸쳐 서버리스 애플리케이션을 관리하려면 AWS SAMCLI를 사용합니다. 자세한 내용은 [AWS SAM CLI](using-sam-cli.md) 단원을 참조하십시오.

** AWS SAM 커넥터를 사용하여 리소스 간에 권한을 빠르게 프로비저닝**  
 AWS SAM 템플릿의 AWS SAM 커넥터를 사용하여 AWS 리소스 간에 권한을 정의합니다.는 코드를 의도를 용이하게 하는 데 필요한 IAM 권한으로 AWS SAM 변환합니다. 자세한 내용은 [AWS SAM 커넥터를 사용하여 리소스 권한 관리](managing-permissions-connectors.md) 단원을 참조하십시오.

**개발 과정에서 로컬 변경 사항을 클라우드에 지속적으로 동기화**  
**sam sync** 명령을 사용하여 AWS SAM CLI 로컬 변경 사항을 클라우드에 자동으로 동기화하여 개발 및 클라우드 테스트 워크플로의 속도를 높입니다. 자세한 내용은 [를 사용하여 sam sync에 동기화 소개 AWS 클라우드](using-sam-cli-sync.md) 단원을 참조하십시오.

**Terraform 서버리스 애플리케이션 관리**  
 AWS SAMCLI를 사용하여 Lambda 함수 및 계층의 로컬 디버깅 및 테스트를 수행할 수 있습니다. 자세한 내용은 [AWS SAM CLI Terraform 지원](terraform-support.md) 단원을 참조하십시오.

## 관련 정보
<a name="w2aab5c15"></a>
+  AWS SAM 작동 방식에 대한 자세한 내용은 단원을 참조하십시오[AWS SAM 작동 방식](what-is-sam-overview.md).
+ 사용을 시작하려면 AWS SAM섹션을 참조하세요[시작하기 AWS SAM](serverless-getting-started.md).
+  AWS SAM 를 사용하여 서버리스 애플리케이션을 생성하는 방법에 대한 개요는 섹션을 참조하세요[사용 방법 AWS SAM](chapter-using-sam.md#chapter-using-sam.title).