반응형
◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
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 애플리케이션에 특화되어 있으며, 개발자에게 보다 간결하고 효율적인 경험을 제공한다.
AWS SAM은 Terraform이나 CloudFormation과 비슷한 서비스이다.
하지만 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
728x90
반응형