◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
SAM (Serverless Application Model)
- SAM은 Serverless 애플리케이션을 배포하는 데 사용하는 오픈 소스 프레임워크이다.
- SAM은 CloudFormation의 확장 기능이다
→ 배포 과정에서 SAM Template이 CloudFormation Template으로 변환 - Serverless 서비스인 Lambda, API Gateway, DynamoDB, S3 등을 배포한다.
💭 그럼 CloudFormation이 있는데 SAM은 왜 있는가???
CloudFormation와 AWS SAM은 모두 인프라를 코드로 관리하는 도구이지만, SAM은 Serverless 애플리케이션에 특화되어 있으며, 개발자에게 보다 간결하고 효율적인 경험을 제공한다.
하지만 SAM은 Serverless에만 특화된..
SAM Template
SAM 템플릿은 YAML 또는 JSON으로 작성된 구성 파일로, AWS 서버리스의 리소스를 정의한다.
SAM CLI (Command Line Interface)
SAM CLI는 로컬에서 서버리스 애플리케이션을 개발, 테스트, 디버그, 배포할 수 있도록 도와주는 도구이다.
이 도구는 로컬에서 애플리케이션을 디버깅하는 것부터 AWS 클라우드에 코드를 배포하는 것까지 개발 수명 주기의 모든 단계를 위한 명령을 제공한다.
SAM CLI 설정하는 법
SAM CLI 설치 방법
SAM을 통해 Deploy(배포) 하려면 "SAM CLI"를 설치해야한다.
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
새 SAM 애플리케이션 생성
아래 명령어를 통해 새로운 SAM 애플리케이션을 생성한다.
sam init
애플리케이션이 생성되면, 아래와 같은 기본 디렉토리 구조가 만들어진다.
my-sam-app/
├── hello_world/
│ ├── app.js # Lambda 함수 코드
│ └── package.json # 의존성 관리 파일
├── template.yaml # SAM 템플릿 파일
└── README.md
애플리케이션 빌드
cd sam-app
sam build
애플리케이션 배포
sam deploy --template-file packaged.yaml --stack-name YOUR_STACK_NAME --capabilities CAPABILITY_IAM
sam deploy --guided
🤔 문제
개발자는 AWS Serverless Application Model (AWS SAM)을 기반으로 한 기존 애플리케이션을 확장해야 합니다. 개발자는 AWS SAM CLI를 사용하여 프로젝트를 생성했습니다. 이 프로젝트는 다양한 AWS Lambda 함수를 포함하고 있습니다. 개발자가 AWS SAM 애플리케이션을 재배포하기 위해 사용해야 할 명령어 조합은 무엇인가요? (두 개 선택)
- sam init
- sam validate
- sam build
- sam deploy
- sam publish
정답
정답. 3번, 4번
기존의 AWS SAM 프로젝트를 redeploy(재배포) 하려면 두 가지 필수 명령어를 사용해야 한다.
–sam build
: Lambda 함수와 기타 리소스를 패키징하기 위해 프로젝트의 코드를 빌드한다.
–sam deploy
: 빌드된 리소스를 AWS 클라우드에 배포한다.
(이는 Terraform이나 CloudFormation도 유사하다)
sam init: 새로운 SAM 프로젝트를 생성할 때 사용.
sam validate:템플릿(SAM 템플릿)의 문법 오류를 확인.
sam publish: AWS Serverless Application Repository에 애플리케이션을 게시할 때 사용.
'클라우드(AWS)' 카테고리의 다른 글
[AWS] AppSync란? 쉽게 정리 (GraphQL 서비스) (2) | 2024.10.04 |
---|---|
[AWS] SDK란? 쉽게 정리 (Software Development Kit) (2) | 2024.10.03 |
[AWS] CI/CD 서비스 쉽게 정리: Code Pipeline, Code Commit, Code Build, Code Deploy, CodeGuru, CodeStar, CodeArtifact (0) | 2024.10.02 |
[AWS] CloudFormation이란? 쉽게 정리 (IaC, Template, Stack, StackSets, Service Role, Service Catalog) (0) | 2024.09.25 |
[AWS] Redshift란? 쉽게 정리 (데이터 웨어하우스) (1) | 2024.09.14 |