본문 바로가기
마이크로서비스 작성

Devops Day 45 (5.9) 마이크로서비스 작성_마이크로서비스 배포 툴

by Jackykim 2023. 5. 10.

SAM Hands-on

Lambda 함수를 배포하는 방법 :
Lambda는 컨테이너 이미지 및 .zip 파일 아카이브의 두 가지 배포 패키지를 지원합니다.
1. .zip 파일 아카이브로 정의된 Lambda 함수 생성

- Lambda 콘솔과 Lambda API를 사용하여 .zip 파일 아카이브로 정의된 함수를 만들 수 있습니다. 업데이트된 .zip 파일을 업로드하여 함수 코드를 변경할 수도 있습니다.

- 콘솔을 통해 직접 코드를 작성하는 것도 가능합니다.

2. 컨테이너 이미지

- FROM amazon/aws-lambda-nodejs:12와 같이 주어진 이미지 위에 애플리케이션을 올린 후 빌드하여 배포할 수 있습니다.

 

AWS에서 제시하는 애플리케이션 모델

Lambda 콘솔을 통해 직접 애플리케이션을 개발하는 것은 다소 불편합니다. 애플리케이션을 쉽게 테스트하고 배포할 수 있는 서버리스 애플리케이션 모델이 있습니다.

 

대표적인 기능 :

한 번에 배포

o    Lambda 함수, API Gateway 등의 리소스를 CLI 명령어 한 번으로 배포가 가능하게 만들 수 있습니다.

로컬에서의 테스트

o    꼭 배포하지 않아도 로컬 환경에서 테스트가 가능합니다.

AWS CloudFormation 기능을 이용한 단일 작업을 통한 리소스(인프라) 관리

o    AWS CloudFormation은 이후에 배우게 될 Terraform과 같은 Infrastructure as Code 도구입니다

 

SAM CLI 설치 및 실습 (윈도우 Ubuntu)
1. sudo apt update
2. wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
3. unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
4. sudo ./sam-installation/install


SAM CLI 와 AWS 연결
1. $ sam init

2. AWS Quick Start Templates 선택
3. Helloworld Example 선택
4. Python and zip 선택 (N)
5. X-ray tracing 미선택 (N)
6. Cloudwatch application 선택 안함 (N)
7. Project name 선택 (sam-app)
8. $ cd sam-app
9. $ sam build -> python3.9 설치가 되어 있어야함 (sudo apt install python3.9 + sudo apt install python3-pip) 이 cmd는 python으로 진행 선택 했을 경우

10. $ sam deploy –guided

11. AWS Lambda + AWS API Gateway 들어가면 함수 하나가 생성 됐습니다.

12. API Gateway에서 트리거로 테스트 할 수 있습니다. 이상 없이 완료되면 하단 페이지 처럼 나옵니다.

다르게 확인 하는 방법은 AWS Lambda에 들어가 API 게이트웨이 선택 후 구성 누르면 API 엔드포인트가 링크가 있습니다.

링크 들어가면 보이는 메시지 입니다

Ubuntu에서 curl method으로도 확인이 가능합니다.

13. 모든 내용 삭제할 경우 “sam delete” 하면 Lambda, API gateway 등 내용이 모두 삭제 됩니다.

 

주의 할 점 :
1. 한번 sam deploy --guided 으로 생성 후 S3 에서 삭제 할 경우 Cloudformation 들어가 생성 내용 삭제해야 문제가 없음 (다시 생성할때)
2. IAM 사용자로 access key + secret key 발급 받으면 정책 잘 설정해야됨 (필요한 정책이 없으면 생성이 안됨)