티스토리 뷰

카테고리 없음

AWS SAM

tsgoing 2024. 10. 17. 23:18

AWS SAM(Serverless Applicaion Model)

- 서버리스 애플리케이션을 만드는 오픈소스 프레임워크

- JSON/YAML

- 클라우드 포메이션(IaC) 스택 형태로 배포되는 형태로 만들수 있음(카나리 블루/그린 배포)

 

SAM TEMPLATE

- Lambda function

- IAM role

- API Gateway

- DynamoDB table

 

SAM CLI를 통해서 로컬에서 개발하고 테스트할 수 있는 기능을 제공

 

 

 

sam local을 이용해서 로컬에서 람다 서버를 실행이 되고 로컬에서 람다 환경(서버리스 애플리케이션 환경) 컨테이너가 뜨게 되고 컨테이너 안에 환경이 property의 환경이 적용되서 로컬에서 컨테이너로 뜨게 됨

 

sam template 안에 서버리스 애플리케이션의 정의가 되어있음

Resources:
	HelloWorldFuctuin:
        Type: AWS::Serverless::Fuction // 람다함수 매핑
        Properties:
            CodeUri: hello-world/ // 람다함수 디렉토리
            Handler: app.lambdaHandler // 람다함수 핸들러
            Runtime: nodejs14.x
            Architectures:
                - x86_64
            Events:
                HelloWorld:
                    Type: Api // API Gateway가 /hello path로 GET으로 요청이 들어오면 람다함수를 호출하게 설정
                    Properties:
                        Path: /hello
                        Method: get

 

sam build를 하게 되면 npm 등 필요한 라이브러리들을 build 디렉토리에 다 가져와서 모아놓고 배포할 준비를 하게됨

sam build 
# local에서 실행이 되서 반환
sam local invoke 
# 해당 path로 컨테이너가 뜨고 이렇게 hello get요청을 날리게 되면 메시지가 떨어지고 관련된 로그 볼수 있음
sam local start-api

local에서 빠르게 개발하고 할수 있음

 

 

서버에서 올려서 테스트 할 상황이 생김

시스템 내에 다른거나 연동되거나 할때 로컬에서 테스트할때 시간이 걸리거나 잘 안되는 경우가 일 부 있음

 

SAM Acclerate- Beta 기능

내 코드가 변경되었을때 클라우드 포메이션 셀을 타지 않고 코드만 업데이트해서 빠른 코드 반영이 가능

 

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함