Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

AWS 서버리스 애플리케이션 모델(SAM) 자세히 살펴보기

AWS 서버리스 애플리케이션 모델(SAM) 자세히 살펴보기

AWS 서버리스 애플리케이션 모델 소개

AWS 서버리스 애플리케이션 모델(SAM)은 AWS 클라우드에서 서버리스 애플리케이션의 개발, 관리 및 배포를 단순화하도록 설계된 오픈 소스 프레임워크입니다. AWS CloudFormation을 확장하여 서버리스 애플리케이션에 필요한 AWS Lambda 함수, Amazon API Gateway API 및 Amazon DynamoDB 테이블과 같은 서버리스 리소스를 간소화된 방식으로 정의할 수 있습니다. AWS SAM에는 리소스를 정의하고 서버리스 리소스가 자동으로 생성 및 연결되도록 하기 위한 YAML 또는 JSON 형식의 템플릿 사양이 포함되어 있습니다.

개발자는 AWS SAM을 사용하여 서버리스 애플리케이션의 개발 프로세스를 가속화하고 애플리케이션 로직 작성에 더 집중할 수 있습니다. 또한 AWS SAM은 다른 AWS 서비스 및 개발자 도구와 원활하게 통합되므로 팀이 일관된 환경에서 서버리스 애플리케이션을 더 쉽게 개발할 수 있습니다. 또한 개발자는 서버리스 애플리케이션을 로컬 또는 원격으로 테스트, 디버그 및 배포할 수 있습니다.

AWS SAM의 주요 기능

AWS SAM은 서버리스 애플리케이션 개발을 보다 효율적이고 번거롭지 않게 만드는 일련의 강력한 기능과 함께 제공됩니다.

  • 단일 배포 구성: AWS SAM은 개발자가 서버리스 애플리케이션과 리소스를 단일 템플릿 파일로 정의할 수 있도록 하여 서버리스 배포를 간소화합니다. AWS CloudFormation은 템플릿이 배포될 때 필요한 리소스를 자동으로 프로비저닝하고 구성합니다.
  • 로컬 테스트 및 디버깅: 개발자는 AWS SAM CLI를 사용하여 서버리스 애플리케이션을 클라우드에 배포하기 전에 로컬에서 실행하고 디버깅할 수 있습니다. 이렇게 하면 실제 환경으로 푸시되기 전에 애플리케이션 논리 및 리소스 구성이 올바르게 작동합니다.
  • 기본 제공 모범 사례: AWS SAM 템플릿에는 단순화된 구문, CORS 및 필드 자르기 지원, 리소스 정책 자동 관리와 같은 몇 가지 기본 제공 모범 사례가 있습니다. 이러한 모범 사례는 개발자가 AWS 지침을 따르고 일반적인 서버리스 애플리케이션 문제를 방지하는 데 도움이 됩니다.
  • 정책 템플릿: AWS SAM에는 개발자가 서버리스 애플리케이션에서 리소스 액세스를 관리하는 데 사용할 수 있는 정책 템플릿이 포함되어 있습니다. 이러한 정책 템플릿을 사용하면 보안 모범 사례가 기본적으로 포함되어 IAM 정책 생성 및 관리가 크게 간소화됩니다.
  • 다양한 AWS 서비스 지원: AWS SAM 템플릿은 Lambda, API Gateway, DynamoDB, CloudWatch Events 및 SNS(Simple Notification Service)와 같은 수많은 AWS 서비스에 대한 리소스를 정의할 수 있습니다. 이 지원은 다양한 서비스의 통합을 용이하게 하여 복잡하고 기능이 풍부한 서버리스 애플리케이션을 생성합니다.

서버리스 애플리케이션 개발에 AWS SAM을 사용할 때의 이점

AWS SAM을 사용하여 서버리스 애플리케이션을 개발하면 개발자와 조직에 여러 가지 이점이 있습니다.

  • 단순화된 배포: AWS SAM은 단일 템플릿 파일을 기반으로 필요한 리소스를 자동으로 프로비저닝하고 구성하여 서버리스 배포의 복잡성을 줄입니다. 이러한 단순화를 통해 개발자는 인프라 관리가 아닌 애플리케이션 로직 작성에 집중할 수 있습니다.
  • 개발 시간 단축: AWS SAM은 서버리스 애플리케이션을 위한 간소화된 개발 프로세스를 제공하여 빠르게 발전하는 산업에서 중요한 개발 주기와 보다 효율적인 리소스 사용을 가능하게 합니다.
  • 일관된 개발 환경: AWS SAM은 다양한 AWS 서비스, 도구 및 IDE와 통합되어 생성 및 테스트에서 지속적인 통합 및 배포에 이르기까지 다양한 개발 팀 및 단계에서 일관된 워크플로우를 지원합니다.
  • 비용 효율성: AWS SAM으로 개발된 서버리스 애플리케이션은 AWS의 종량제 요금 모델을 활용하여 인프라 비용을 낮출 수 있습니다. 사용자는 사전 할당된 리소스가 아닌 애플리케이션에서 사용한 실제 리소스에 대해서만 비용을 지불하면 되기 때문입니다.
  • 사용자 지정 코드로 기능 확장: AWS SAM은 개발 프로세스를 간소화하는 동시에 사용자 지정 코드로 기능을 확장할 수 있는 유연성을 제공하므로 개발자가 서버리스 애플리케이션을 특정 요구 사항에 맞게 조정할 수 있습니다.

Serverless Application Development

AWS SAM은 서버리스 애플리케이션 개발에 단순성, 효율성 및 비용 절감을 제공합니다. 서버리스 컴퓨팅의 잠재력을 극대화하여 개발자가 인프라 관리보다 환상적인 애플리케이션을 만드는 데 더 집중할 수 있도록 합니다.

AWS SAM 시작하기

AWS Serverless Application Model(SAM) 사용을 시작하려면 AWS 계정이 있어야 하고 시스템에 AWS CLI 및 AWS SAM CLI를 설치해야 합니다. 계속하기 전에 자격 증명으로 AWS CLI를 구성해야 합니다. 모든 설정이 완료되면 다음 단계를 수행할 수 있습니다.

  1. 새 프로젝트 폴더 만들기: 터미널(또는 명령 프롬프트)을 사용하여 서버리스 애플리케이션을 위한 새 디렉터리를 만듭니다. 설치를 진행하려면 디렉토리로 이동하십시오.
  2. AWS SAM 애플리케이션 초기화: 터미널에서 다음 명령을 실행합니다.
 샘 초기화

이 명령은 새 SAM 애플리케이션을 초기화하여 template.yaml 파일과 예제 Lambda 함수가 있는 코드 폴더를 제공합니다. 지정된 옵션(예: Node.js, Python , Go)에서 서버리스 기능에 대한 런타임을 선택하고 애플리케이션에 대한 템플릿을 선택할 수 있습니다.

Try AppMaster no-code today!
Platform can build any web, mobile or backend application 10x faster and 3x cheaper
Start Free
  1. 생성된 파일 탐색: 선호하는 코드 편집기에서 프로젝트 폴더를 열고 생성된 파일을 검토하여 템플릿 구조와 Lambda 함수를 더 잘 이해합니다.
  2. 추가 리소스 생성 및 구성: template.yaml 파일을 사용하여 API, 데이터베이스 및 이벤트와 같이 서버리스 애플리케이션에 필요한 리소스를 정의합니다. 예제 Lambda 함수를 수정하여 고유한 논리를 구현할 수도 있습니다.
  3. 서버리스 애플리케이션을 로컬에서 테스트: AWS SAM CLI를 사용하여 서버리스 애플리케이션을 AWS 클라우드에 배포하기 전에 로컬에서 테스트하고 디버그하십시오. 터미널에서 다음 명령을 실행합니다.
 샘 로컬 호출

이 명령은 서버리스 기능을 호출하고 출력을 표시하여 애플리케이션을 디버깅하고 테스트할 수 있도록 합니다.

  1. 서버리스 애플리케이션 배포: 애플리케이션을 로컬에서 테스트한 후 다음 명령을 사용하여 AWS CloudFormation에 패키징하고 배포합니다.
 샘 패키지 --s3-bucket your-s3-bucket-name
sam 배포 --템플릿-파일 template.yaml --스택-이름 스택-이름 --capabilities CAPABILITY_IAM

<i>your-s3-bucket-name</i> , <i>template.yaml</i><i>your-stack-name</i> 적절한 값으로 바꿉니다. CAPABILITY_IAM을 사용하면 AWS CloudFormation에서 서버리스 애플리케이션에 필요한 IAM 역할을 생성할 수 있습니다.

서버리스 애플리케이션이 배포되면 AWS CloudFormation은 template.yaml 파일에 정의된 모든 리소스를 프로비저닝하고 애플리케이션 사용을 시작할 수 있습니다.

AWS SAM CLI

AWS Serverless Application Model 명령줄 인터페이스(SAM CLI)는 서버리스 애플리케이션을 개발, 테스트 및 배포하는 데 필수적입니다. 서버리스 애플리케이션을 효과적으로 관리할 수 있는 풍부한 명령 세트를 제공합니다. 다음은 자주 사용되는 몇 가지 AWS SAM CLI 명령입니다.

  • sam init: template.yaml 파일 및 예제 Lambda 함수로 사전 구성된 새 서버리스 애플리케이션을 초기화합니다.
  • sam build: 서버리스 애플리케이션을 빌드하고 Lambda 함수 코드 및 해당 종속성을 패키징합니다.
  • sam local invoke: 서버리스 애플리케이션을 로컬에서 호출하여 애플리케이션을 테스트하고 디버그할 수 있습니다.
  • sam local start-api: 서버리스 애플리케이션용 로컬 API 게이트웨이를 시작하여 서버리스 애플리케이션의 API를 테스트할 수 있습니다.
  • sam 패키지: 서버리스 애플리케이션의 코드와 종속성을 패키징하고 Amazon S3 버킷에 업로드합니다.
  • sam deploy: 서버리스 애플리케이션을 AWS CloudFormation에 배포하여 template.yaml 파일에 정의된 모든 리소스를 프로비저닝합니다.
  • sam logs: Lambda 함수에서 로그 이벤트를 검색하고 표시합니다.
  • sam validate: template.yaml 파일의 유효성을 검사하여 형식이 올바르고 모범 사례를 따르는지 확인합니다.

이러한 명령은 서버리스 애플리케이션 개발을 단순화하여 서버리스 애플리케이션을 쉽게 구축, 테스트 및 AWS 클라우드에 배포할 수 있도록 합니다.

AWS SAM 템플릿 구조

AWS SAM 템플릿은 서버리스 애플리케이션의 리소스, 속성 및 구성을 정의하는 YAML 또는 JSON 파일입니다. 템플릿은 애플리케이션 인프라의 청사진 역할을 하므로 서버리스 애플리케이션을 쉽게 버전화, 복제 및 공유할 수 있습니다. 다음은 일반적인 AWS SAM 템플릿의 주요 구성 요소에 대한 개요입니다.

  • AWSTemplateFormatVersion: 사용 중인 템플릿 형식 버전입니다(선택 사항).
  • 변환: AWS SAM 템플릿 버전입니다. 이 속성에는 "AWS::Serverless-2016-10-31"을 사용하십시오.
  • 리소스: 서버리스 리소스 및 해당 속성입니다. 이 섹션에서는 애플리케이션에 필요한 AWS Lambda 함수, API 게이트웨이 및 기타 종속 AWS 리소스를 정의합니다. 각 리소스에는 논리적 리소스 이름이 할당되며 템플릿의 다른 부분에서 이름을 참조할 수 있습니다.
  • 매개변수: 템플릿에서 사용할 수 있게 하려는 입력 매개변수 세트입니다(선택 사항).
  • 출력: 다른 AWS SAM 템플릿 또는 AWS CloudFormation 스택(선택 사항)에 노출하려는 출력 값 세트입니다.
  • 전역: 템플릿의 모든 AWS::Serverless::Function 리소스에 대한 전역 설정을 정의할 수 있는 섹션입니다(선택 사항).
  • 조건: 입력 매개 변수 또는 기존 리소스(선택 사항)를 기반으로 리소스 속성을 사용자 지정하는 데 사용할 수 있는 조건 집합입니다.

리소스를 정의할 때 다음과 같은 다양한 AWS 관련 리소스 유형을 사용할 수 있습니다.

  • AWS::서버리스::함수
  • AWS::서버리스::API
  • AWS::서버리스::심플테이블
  • AWS::서버리스::HttpApi

또한 타사 AWS SAM 확장에서 제공하는 사용자 지정 리소스 유형을 사용할 수 있습니다. 템플릿은 AWS CloudFormation에서 읽고 해석한 다음 선언에 따라 필요한 리소스를 프로비저닝합니다.

이제 AWS SAM 템플릿 구조를 더 잘 이해했으므로 template.yaml 파일 수정을 진행하여 서버리스 애플리케이션 리소스, 속성 및 구성을 정의합니다. 이렇게 하면 AWS 모범 사례에 따라 애플리케이션을 구축, 테스트 및 배포할 수 있습니다.

AWS SAM 템플릿 리소스

AWS SAM에서 템플릿은 AWS Lambda 함수, Amazon API Gateway API 및 Amazon DynamoDB 테이블을 포함하여 서버리스 애플리케이션의 리소스를 정의합니다. 템플릿은 AWS CloudFormation을 사용하여 배포할 수 있는 JSON 또는 YAML 파일입니다. AWS SAM은 다음과 같은 서버리스 애플리케이션을 위한 다양한 리소스 유형을 제공합니다.

AWS::서버리스::함수

이 리소스 유형은 서버리스 애플리케이션의 Lambda 함수를 나타냅니다. 런타임, 핸들러, 코드 소스 및 관련 이벤트와 같은 속성을 정의할 수 있습니다. 예를 들어:

 Resources: LambdaFunction: Type: AWS::Serverless::Function Properties: Runtime: nodejs14.x Handler: index.handler CodeUri: ./src Events: Api: Type: Api Properties: Path: /example Method: GET

AWS::서버리스::API

이 리소스 유형은 API Gateway REST API 를 나타냅니다. 단계 이름, 인증 및 메서드 설정과 같은 속성을 정의할 수 있습니다. 예를 들어:

Try AppMaster no-code today!
Platform can build any web, mobile or backend application 10x faster and 3x cheaper
Start Free
 Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: prod EndpointConfiguration: REGIONAL

AWS::서버리스::HTTPApi

이 리소스 유형은 API Gateway HTTP API를 나타냅니다. HTTP API를 사용하면 WebSocket을 포함하여 대기 시간이 짧고 비용 효율적인 API를 구축할 수 있습니다. 예를 들어:

 Resources: HttpApi: Type: AWS::Serverless::HTTPApi Properties: StageName: prod

AWS::서버리스::심플테이블

이 리소스 유형은 DynamoDB 테이블을 나타냅니다. 기본 키 및 속성 정의와 같은 속성을 정의할 수 있습니다. 예를 들어:

 Resources: DynamoDbTable: Type: AWS::Serverless::SimpleTable Properties: PrimaryKey: Name: id Type: String

다른 AWS SAM 리소스에는 AWS::Serverless::StateMachine(AWS Step Functions), AWS::Serverless::Application(중첩 애플리케이션) 및 AWS::Serverless::LayerVersion(Lambda 계층)이 포함됩니다.

AWS SAM 사용 모범 사례

AWS SAM을 사용하는 동안 모범 사례를 준수하면 서버리스 애플리케이션의 효율적인 배포 및 관리가 보장됩니다. 다음은 몇 가지 권장 사항입니다.

  1. 함수 및 템플릿 모듈화
    각 기능 또는 서비스에 대해 별도의 Lambda 함수 및 템플릿을 생성하여 서버리스 애플리케이션을 구성합니다. 이를 통해 유지 관리가 더 쉬워지고 문제를 더 잘 분리할 수 있습니다.
  2. AWS SAM 정책 템플릿 사용
    AWS SAM은 서버리스 애플리케이션에 대한 IAM 정책을 관리하는 데 도움이 되는 사전 정의된 정책 템플릿을 제공합니다. 이러한 템플릿을 활용하여 리소스에 대한 안전하고 일관된 권한 집합을 보장하십시오.
  3. 종속성을 효율적으로 관리
    npm 또는 pip와 같은 패키지 관리자를 사용하여 종속성을 효과적으로 구성합니다. 이를 통해 더 나은 버전 제어가 가능하고 종속성 충돌 위험이 줄어듭니다.
  4. 서버리스 애플리케이션 검증 및 테스트
    AWS SAM CLI를 사용하여 서버리스 애플리케이션을 AWS 클라우드에 배포하기 전에 로컬에서 검증하고 테스트합니다. 이를 통해 문제를 조기에 식별하고 더 원활한 배포를 보장할 수 있습니다.
  5. 성능 최적화 및 비용 절감
    AWS X-Ray 및 Amazon CloudWatch와 같은 도구를 사용하여 서버리스 애플리케이션의 성능을 분석하고 모니터링합니다. Lambda 함수의 메모리 크기, 제한 시간 및 동시성 설정을 구성하여 애플리케이션을 최적화합니다.

AWS SAM과 AppMaster.io의 통합

백엔드, 웹 및 모바일 애플리케이션을 생성하기 위한 강력한 노코드 플랫폼인 AppMaster.io를 AWS SAM과 통합하여 서버리스 기능을 활용할 수 있습니다. AppMaster.io를 AWS SAM과 연결하면 다음과 같은 많은 이점이 있습니다.

  1. AppMaster.io를 사용하여 서버리스 애플리케이션 설계
    AppMaster.io의 시각적 인터페이스를 통해 AWS SAM을 사용하여 서버리스 애플리케이션을 쉽게 생성할 수 있습니다. 코드를 작성하지 않고도 데이터 모델, 비즈니스 로직 및 API endpoints 생성할 수 있습니다.
  2. 자동 생성 문서의 이점
    서버리스 애플리케이션을 설계하는 동안 AppMaster.io는 서버 endpoints 및 데이터베이스 스키마 마이그레이션 스크립트에 대한 Swagger(OpenAPI) 문서를 자동으로 생성합니다. 이를 통해 AWS SAM API로 작업할 때 원활한 경험을 보장합니다.
  3. 동적인 대화형 웹 애플리케이션 만들기
    AppMaster.io의 강력한 기능을 사용하면 AWS SAM과 원활하게 작동하는 완전한 대화형 웹 애플리케이션을 개발할 수 있습니다. 이를 통해 확장 가능하고 효율적이며 비용 효율적인 애플리케이션을 만들 수 있습니다.
  4. AWS Lambda 이벤트 트리거 통합
    AppMaster.io를 사용하면 AWS SAM에서 생성된 Lambda 이벤트 트리거를 사용할 수 있으므로 서버리스 기능을 AppMaster.io의 비즈니스 로직과 연결할 수 있습니다. 이렇게 하면 서버리스 애플리케이션이 원활하고 효율적으로 실행됩니다.

No-code

AppMaster.io를 AWS SAM과 통합하면 서버리스 애플리케이션을 더 빠르고 효율적으로 구축하고 배포하여 궁극적으로 시간과 개발 비용을 절약 할 수 있습니다.

결론

AWS 서버리스 애플리케이션 모델(SAM)은 AWS 클라우드에서 서버리스 애플리케이션 개발 및 배포를 간소화하는 필수 프레임워크입니다. 개발자는 강력한 기능을 활용하여 기본 서버 인프라에 대한 걱정 없이 프로세스를 간소화하고 배포를 간소화하며 애플리케이션 수명 주기를 효율적으로 관리할 수 있습니다. AWS CloudFormation 및 AWS SAM CLI와의 통합은 개발자에게 포괄적이고 일관된 개발 환경을 제공합니다. Lambda, API Gateway 및 DynamoDB와 같은 다양한 AWS 서비스와 함께 작동하는 기능은 유연성과 적응성을 더욱 향상시킵니다. AWS SAM을 사용할 때 모범 사례를 통합하면 보다 효율적이고 확장 가능한 서버리스 애플리케이션으로 이어져 궁극적으로 비용을 절감하고 성능을 향상시킬 수 있습니다.

또한 AppMaster.io no-code 플랫폼은 AWS SAM과 원활하게 작동하여 no-code 개발과 서버리스 아키텍처의 이점을 완벽하게 결합합니다. 이러한 통합을 통해 비즈니스는 요구 사항이 변화함에 따라 민첩성을 유지하면서 개발 및 배포 시간을 단축할 수 있습니다. 서버리스 아키텍처가 점점 더 중요해짐에 따라 개발자가 최신 클라우드 기반 애플리케이션 산업에서 경쟁력을 유지하려면 AWS SAM 프레임워크와 모범 사례를 깊이 이해하는 것이 중요합니다.

AWS SAM의 주요 기능은 무엇입니까?

일부 주요 기능에는 단일 배포 구성, 로컬 테스트 및 디버깅, 기본 제공 모범 사례, 정책 템플릿 및 다양한 AWS 서비스 지원이 포함됩니다.

AWS SAM CLI란 무엇입니까?

AWS SAM CLI는 AWS SAM 템플릿을 사용하여 서버리스 애플리케이션을 생성, 테스트 및 배포하기 위한 명령줄 인터페이스입니다.

AWS SAM을 시작하려면 어떻게 해야 합니까?

AWS SAM CLI를 사용하여 AWS SAM 템플릿을 생성하고 AWS CloudFormation에 배포합니다. 템플릿 파일은 서버리스 애플리케이션의 리소스와 속성을 정의합니다.

AWS SAM을 AppMaster.io와 통합할 수 있습니까?

예, AppMaster.io의 no-code 플랫폼은 적절한 API endpoints 와 AWS SAM 생성 이벤트 트리거를 사용하여 AWS SAM과 연결할 수 있습니다.

AWS SAM이란 무엇입니까?

AWS Serverless Application Model(SAM)은 AWS 클라우드에서 서버리스 애플리케이션의 개발 및 배포를 간소화하는 오픈 소스 프레임워크입니다.

AWS SAM을 사용하면 어떤 이점이 있습니까?

이점에는 단순화된 배포, 개발 시간 단축, 일관된 개발 환경, 비용 효율성 및 사용자 지정 코드로 기능을 확장하는 기능이 포함됩니다.

AWS SAM 템플릿 구조는 무엇입니까?

AWS SAM 템플릿은 함수, API 및 이벤트와 같은 서버리스 애플리케이션의 리소스를 정의하는 YAML 또는 JSON 파일입니다.

AWS SAM 사용에 대한 모범 사례는 무엇입니까?

모범 사례에는 함수 및 템플릿 모듈화, AWS 정책 템플릿 사용, 효율적인 종속성 관리, 서버리스 애플리케이션 검증 및 테스트가 포함됩니다.

관련 게시물

PWA 도입으로 혜택을 보는 상위 5개 산업
PWA 도입으로 혜택을 보는 상위 5개 산업
Progressive Web Apps 도입으로 상당한 혜택을 얻고 있는 상위 5개 산업을 알아보고, PWA가 사용자 참여와 사업 성장을 어떻게 강화하는지 살펴보세요.
PWA가 전자상거래 플랫폼의 게임을 어떻게 변화시키고 있는가
PWA가 전자상거래 플랫폼의 게임을 어떻게 변화시키고 있는가
Progressive Web Apps가 향상된 사용자 경험, 향상된 성능, 증가된 전환율로 전자상거래를 어떻게 변화시키고 있는지 알아보세요. PWA가 전자상거래의 미래인 이유를 알아보세요.
PWA가 크로스 플랫폼 호환성을 위한 완벽한 솔루션인 이유
PWA가 크로스 플랫폼 호환성을 위한 완벽한 솔루션인 이유
최신 소프트웨어 개발에서 플랫폼 간 호환성을 보장하는 데 프로그레시브 웹 앱(PWA)이 필수 솔루션으로 떠오르는 이유를 알아보세요.
무료로 시작하세요
직접 시도해 보고 싶으신가요?

AppMaster의 성능을 이해하는 가장 좋은 방법은 직접 확인하는 것입니다. 무료 구독으로 몇 분 만에 나만의 애플리케이션 만들기

아이디어를 실현하세요