서버리스 애플리케이션 배포 - AWS Serverless Application Model

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

서버리스 애플리케이션 배포

AWS SAM은 AWS CloudFormation를 기본 배포 메커니즘으로 사용합니다. 자세한 내용은 AWS CloudFormation 사용 설명서AWS CloudFormation란 무엇입니까?를 잠조하세요 서버리스 애플리케이션을 배포하기 위한 표준 입력은 sam build 명령을 사용하여 만든 빌드 아티팩트입니다. sam build에 대한 자세한 정보는을 잠조하세요서버리스 애플리케이션 실행.

AWS SAM 명령줄 인터페이스(CLI) 명령을 사용하여 애플리케이션을 수동으로 배포할 수 있습니다. 지속적인 통합 및 지속적인 배포(CI/CD) 시스템을 사용하여 애플리케이션 배포를 자동화할 수도 있습니다. Jenkins , GitLab CI/CD 및 Actions를 비롯한 AWS CodePipeline여러 일반 CI/CD 시스템을 사용하여 AWS SAM 애플리케이션을 배포할 수 있습니다. GitHub

CI/CD 시스템을 사용한 배포

AWS SAM은 조직이 선호하는 CI/CD 시스템을 위한 파이프라인을 만들 수 있도록 지원하여 배포 빈도 가속화, 변경 리드 타임 단축, 배포 오류 감소와 같은 CI/CD의 이점을 최소한의 노력으로 실현할 수 있습니다.

AWS SAM은 컨테이너 이미지 구축을 통해 서버리스 애플리케이션의 CI/CD 작업을 간소화합니다. AWS SAM이 제공하는 이미지에는 지원되는 여러 AWS Lambda런타임을 위한 AWS SAM CLI 및 빌드 도구가 포함되어 있습니다. 따라서 AWS SAM CLI를 사용하여 서버리스 애플리케이션을 더 쉽게 구축하고 패키징할 수 있습니다. 또한 이러한 이미지를 사용하면 작업팀들이 CI/CD 시스템용 이미지를 직접 만들고 관리해야 할 필요성이 줄어듭니다. AWS SAM 빌드 컨테이너 이미지에 대한 자세한 내용은을 잠조하세요이미지 리포지토리

여러 CI/CD 시스템이 AWS SAM 빌드 컨테이너 이미지를 지원합니다. 사용해야 하는 CI/CD 시스템은 여러 요인에 따라 달라집니다. 여기에는 애플리케이션이 단일 런타임을 사용하는지 다중 런타임을 사용하는지, 컨테이너 이미지 내에 애플리케이션을 구축할지 아니면 가상 머신(VM) 또는 베어메탈 호스트와 같은 호스트 머신에 직접 빌드할지 여부가 포함됩니다.

AWS SAM은 또한 AWS의 배포 모범 사례를 캡슐화하는 여러 CI/CD 시스템을 위한 기본 파이프라인 템플릿 세트를 제공합니다. 이러한 기본 파이프라인 템플릿은 표준 JSON/YAML 파이프라인 구성 형식을 사용하며, 내장된 모범 사례는 다중 계정 및 다중 지역 배포를 수행하고 파이프라인이 인프라를 의도하지 않게 변경할 수 없도록 확인하는 데 도움이 됩니다.

서버리스 애플리케이션을 AWS SAM 배포하는 데 사용할 수 있는 두 가지 기본 옵션이 있습니다. 1) AWS SAM CLI 명령을 사용하도록 기존 파이프라인 구성을 수정하는 것 혹은 2) 귀하 자신의 애플리케이션의 시작점으로 사용할 수 있는 예제 CI/CD 파이프라인 구성을 생성하는 것입니다.

이러한 각 옵션에 대한 자세한 내용은 다음 주제를 잠조하세요.

AWS SAM CLI를 사용한 배포

로컬에서 서버리스 애플리케이션을 개발하고 테스트한 후 sam deploy 명령을 사용하여 애플리케이션을 배포할 수 있습니다.

AWS SAM으로부터 프롬프트와 함께 배포 과정을 안내받으려면 --guided 플래그를 지정합니다. 이 플래그를 지정하면 sam deploy 명령은 애플리케이션 아티팩트를 압축하여 Amazon Simple Storage Service(S3)(.zip 파일 아카이브용) 또는 Amazon Elastic Container Registry(Amazon ECR)(컨테이너 이미지용)에 업로드합니다. 이 명령은 귀하의 애플리케이션을 AWS클라우드에 배포합니다.

예:

# Deploy an application using prompts: sam deploy --guided

AWS SAM CLI를 이용한 배포 문제 해결

AWS SAM CLI오류: “보안 제약 조건이 충족되지 않았음”

sam deploy --guided 실행 중에 질문 HelloWorldFunction may not have authorization defined, Is this okay? [y/N]을 묻는 메시지가 표시됩니다. 이 프롬프트에 N(기본 응답)으로 응답하면 다음 오류가 표시됩니다.

 
Error: Security Constraints Not Satisfied
            

귀하가 배포하려는 애플리케이션에 승인 없이 Amazon API Gateway API가 구성되어 있을 수 있다는 메시지를 프롬프트가 표시합니다. 이 프롬프트에 N으로 응답하는 것은 괜찮지 않다고 말하는 것입니다.

이 문제를 해결할 수 있도록 다음 옵션이 제공됩니다.

  • 권한 부여를 통해 애플리케이션을 구성하세요. 권한 부여 구성에 대한 자세한 내용은을 잠조하세요API Gateway API에 대한 액세스 제어

  • 이 질문에 Y로 응답함으로써, 권한 없이 구성된 API Gateway API가 있는 애플리케이션을 배포해도 괜찮다는 의사를 표시하십시오.

점진적 배포

AWS SAM 애플리케이션을 한 번에 모두 배포하지 않고 점진적으로 배포하려는 경우 귀하는 AWS CodeDeploy가 제공하는 배포 구성을 지정할 수 있습니다. 자세한 내용은 사용 설명서의 배포 구성 작업을 참조하십시오. CodeDeploy AWS CodeDeploy

점진적으로 배포되도록 귀하의 AWS SAM 애플리케이션을 구성하는 방법에 대한 자세한 내용은을 잠조하세요서버리스 애플리케이션의 점진적 배포.

자세히 알아보기

서버리스 애플리케이션 배포의 실제 사례는 전체 AWS SAM워크숍을 출처로 하는 다음 사항들을 잠조하세요.

  • 모듈 3 - 수동 배포 - AWS SAM CLI을 사용하여 서버리스 애플리케이션을 빌드, 패키징 및 배포하는 방법을 알아봅니다.

  • 모듈 4 - CI/CD - 지속적 통합 및 전달 (CI/CD) 파이프라인을 만들어 빌드, 패키지, 배포 단계를 자동화하는 방법을 알아봅니다.