본문 바로가기
CLOUD/AWS

AWS에 수동 배포(SAM)

by Rainbound-IT 2021. 8. 23.
반응형

완전 자동화된 지속적 전달 파이프라인 구축을 시작하기 전에 이 장에서는 AWS SAM CLI를 사용하여 서버리스 애플리케이션을 구축, 패키징 및 배포하는 방법을 배웁니다.



이 워크샵은 배포 자동화에 관한 것이지만 이 장은 Serverless 애플리케이션을 패키징하고 배포하는 방법의 기초를 배우는 데 매우 중요합니다. 수동 배포를 수행하는 방법을 배우는 것은 소스 제어 리포지토리에 변경 사항을 커밋하기 전에 자신의 개인 스택을 만들고 자주 배포하여 변경 사항을 테스트하려는 개발자에게도 유용합니다.

 

Artifacts

 

아티팩트는 CI/CD 컨텍스트에서 빌드 프로세스의 출력을 나타냅니다. 아티팩트는 일반적으로 zip/tar 파일, jar 또는 바이너리 형태입니다. 그런 다음 이러한 아티팩트를 가져와 다른 환경(예: Dev, Test, Prod)에 배포합니다. 서버리스 프로젝트의 경우 Lambda 서비스에서 아티팩트를 선택하려면 아티팩트를 S3 버킷에 업로드해야 합니다. SAM CLI는 아티팩트를 S3에 업로드하고 배포 시 참조하는 이 프로세스를 관리합니다.

Zip 파일

서버리스 프로젝트에서 생성되는 첫 번째 아티팩트는 코드베이스로, zip 파일로 압축되고 패키지 단계에서 SAM CLI에 의해 자동으로 S3 버킷에 업로드됩니다(자세한 내용은 나중에 설명).

패키지 템플릿

패키지 단계에서 SAM CLI가 생성하는 두 번째 아티팩트는 패키지된 템플릿입니다. 이것은 S3 버킷에서 zip 파일(첫 번째 아티팩트)의 위치를 ​​참조한다는 점을 제외하고 기본적으로 프로젝트의 template.yaml 복사본입니다. 다음 이미지는 패키지된 템플릿의 예를 보여줍니다.

 


아마 S3 url을 참조 했을 것이다.

 


CodeUri가 로컬 디렉터리가 아닌 S3 버킷에서 zip 파일을 참조하는 방법에 주목하세요. 이것이 AWS Lambda가 배포 시 코드를 가져올 수 있는 방법입니다.

 

 

 

BUILD THE APP

 

SAM 프로젝트를 빌드하기 위해 sam build 명령을 사용할 것입니다. 이 명령은 애플리케이션의 기능을 반복하여 종속성을 포함하는 매니페스트 파일(예: requirements.txt 또는 package.json)을 찾고 배포 아티팩트를 자동으로 생성합니다.

sam-app 폴더의 루트에서 터미널에서 다음 명령을 실행합니다.

 

sam build

 

 

APP 배포

sam deploy 명령은 CloudFormation 스택을 시작하여 애플리케이션을 배포합니다. 이 명령에는 –guided 매개변수를 지정하여 활성화할 수 있는 안내 대화형 모드가 있습니다. 향후 배포를 위한 구성을 캡처하므로 처음으로 안내 모드로 배포하는 것이 좋습니다.

template.yaml이 있는 동일한 디렉터리 수준에서 다음 명령을 실행합니다.

sam deploy --guided

 

알아서 설정해준다.

 

설정후에 배포를 요청하는데 y를 입력합니다.

이 과정을 살펴보면

guided deployment는 여러 작업을 수행합니다.

내부에서는 다음과 같은 일이 발생합니다.

 

 

1) 코드베이스는 zip 파일로 패키징됩니다.
2) SAM은 계정에 S3 버킷이 없으면 생성합니다.
3) Zip 파일이 S3 버킷에 업로드됩니다.
4) SAM은 S3의 zip 파일 위치를 참조하는 패키지된 템플릿을 생성합니다. 

5) 이 템플릿은 S3 버킷에도 업로드됩니다.
6) SAM은 CloudFormation ChangeSets를 통해 배포를 시작합니다.

 

guided deployment 를 처음 수행할 때 지정된 배포 매개변수를 사용하여 프로젝트의 루트에 새 파일 samconfig.toml이 생성됩니다. 이렇게 하면 다음에 sam deploy를 실행할 때 사용자가  다시 입력하지 않고도 동일한 매개변수를 사용합니다. 

 

 

 

 

 

 

배포확인

콘솔에서 cloudfromation의 스택중 전에 입력한 스택이름으로 들어간뒤 출력탭에서 파랗게 표시된 url을 클릭하면 메세지가 나옵니다.

 

 

 

바로 이렇게 말이죠.

 

 

 

 

 

Reference:

 

Guided deployments 

https://aws.amazon.com/blogs/compute/a-simpler-deployment-experience-with-aws-sam-cli

 

A simpler deployment experience with AWS SAM CLI | Amazon Web Services

The AWS Serverless Application Model (SAM) CLI provides developers with a local tool for managing serverless applications on AWS. The command line tool allows developers to initialize and configure applications, debug locally using IDEs like Visual Studio

aws.amazon.com

 

반응형

댓글