Code States/TIL

[0509] 마이크로서비스 작성 - 마이크로서비스 배포 툴 (SAM 실습)

ki1111m2 2023. 5. 9. 13:06

학습 목표

  • 대표적인 FaaS 서비스인 AWS Lambda의 사용법을 이해할 수 있다.
    • Lambda를 실행하는 다양한 트리거의 종류를 확인할 수 있다.
    • Lambda의 작동 로그를 CloudWatch Logs를 통해 확인할 수 있다.
    • Lambda의 작동원리를 이해할 수 있다. (advanced)
  • API Gateway를 통해 Lambda를 실행할 수 있다.
    • API Gateway에 API 키 및 Authorizer로 액세스 제어를 적용할 수 있다.
    • HTTP 메서드별 라우팅을 적용할 수 있다.
    • 새로운 릴리스/다양한 Stage의 API를 배포할 수 있다.
  • SAM을 이용해 제공되는 다양한 마이크로서비스 애플리케이션을 배포할 수 있다.

AWS SAM cli 설치

AWS cli가 설치되어 있는 상태에서 homebrew를 사용하여 AWS SAM CLI를 설치함

정상적으로 설치된 것을 확인할 수 있음


SAM cli를 이용한 HelloWorld 애플리케이션 배포 튜토리얼

sam init 명령어를 통해 기본 템플릿 생성

생성된 폴더로 이동하여 sam build 명령어를 통해 애플리케이션 빌드

로컬 환경에서 애플리케이션 테스트를 해보기 위해 sam local invoke 명령어 사용하여 이미지 생성

sam local start-api 명령어 사용하여 애플리케이션 실행

curl 명령어를 통해 api 엔드포인트로 접근하면 정상적으로 응답을 받을 수 있음

AWS 클라우드에 애플리케이션을 배포하기 위하여 sam deploy 명령어 사용

성공적으로 배포된 것을 알 수 있음

AWS 콘솔을 통해 S3에 들어가보면 버킷이 생긴 것을 볼 수 있음

해당 부분에 있는 엔드포인트를 이용하여 curl 요청을 보냄

배포가 성공적으로 이루어졌음을 알 수 있음

로컬 변경 내용을 AWS 클라우드에 동기화하기 위하여 sam sync 명령어 사용

동기화가 완료되었음을 알 수 있음

로컬 환경에서 파일 수정

출력 메세지를 변경했다

터미널 창을 보면 수정사항이 반영되어 빌드 후 배포된 것을 알 수 있음

다시 curl 요청을 보내면 변경된 내용을 응답으로 받는 것을 알 수 있음

AWS 클라우드에서 애플리케이션을 삭제하기 위해 sam delete 명령어 사용