오늘은 AWS의 Lambda를 사용하는 방법에 대해서 정리해 보도록 하겠습니다.

 

1. Lamda의 단위는 함수

EC2의 경우는 한대의 서버인 Instance를 on/off시켜서 사용했었는데요.

Lamda는 컴퓨터를 켜고 끄는 개념이 없으므로,

하나의 함수를 생성해서 그것을 사용하는 개념입니다.

하나의 기본단위를 Lambda라고 보면 되겠네요.

 

2. 요금

가장 중요한 요금 먼저 알아보도록 하겠습니다.

먼저 Free Tier의 경우를 보도록 하겠습니다.

Free Tier의 경우는 아래까지는 무료로 사용할 수 있는데요.

 

구분 FreeTier해당건수
요청건수 월별 무료 요청 1백만 건
컴퓨팅 시간 월별 400,000GB-초 컴퓨팅 시간

 

요청 건수 또는 100밀리초당 시간당으로 요금을 측정합니다.

 

 

 

 

 

2. Lambda

하나의 큰 단위인 함수(function)을 생성하기 위해서, 주황색 버튼인 Create function버튼을 눌러줍니다.

 

 

이제 아래와 같은 화면을 볼 수 있는데요.

 

3. function

lambda_handler라는 이름의 함수를 만들면 그것을 실행시키는 것 인데요.

파라미터로는 아래 두개를 받습니다.

인자  
event  
context  

 

 

4. Error Log보기

모니터링 > CloudWatch에서 로그보기를 선택해 줍니다.

해당리스트에서 원하는 Log를 보면 됩니다.

 

 

 

 

4. Gateway와 연동하는 방법

Gateway와 Lambda를 연동해서 사용하기 전에 Gateway의 사용법에 관한 것은 아래 글을 참조해 주세요.

>> API Gateway 에 관한 정리 # AWS

 

4-1. Lambda형식

AWS의 공식문서의 API Gateway에서 Integrations(통합)부분을 보시면 Lambda와 결합해서 사용하는 방법에 대해서 나오는데요.

API Gateway interpretation에 맞는 형식으로 사용해주면 해당하는 출력을 볼 수 있습니다.

 

 

 

4-2. Path Parameter와 QueryString을 이용한 동적인 값 사용방법

해당 부분은 API Gateway의 Routes에 나와있는데요.

아래와 같이 사용해주면 됩니다.

path variable에는 "{ }" 를 사용해주면 되구요.

querystring에는 {?a=1&b=2} 와 같이 사용해주면 되는군요.

 

 

이제 해야할 것은 저런 형식으로 들어온 변수를 사용하는 것 인데요.

payload가 어떤 형식으로 들어오는지는 공식문서에서 Integrations를 찾고, Payload format을 찾아주면 됩니다.

 

 

 

 

queryString은 아래와 같이 들어오구요.

 

 

pathParameters는 아래와 같이 들어오고 있네요.

 

 

사실 위의 내용은 Lambda에서 인자로 들어오는 event를 찍어보면 내용을 볼 수 있습니다.

 

 

 

 

4. EC2 vs Lambda

둘중 어느 하나가 좋다고 하기보다는 상황에 맞게 사용하는 것이 좋을텐데요.

Lambda는 request수와 사용시간에 기반해서 요금을 책정하고,

EC는 계약된 컴퓨팅파워안에서 사용시간만큼만 과금됩니다.

 

 

 

 

4. Lambda의 사용

Lambda는 컴퓨팅 파워가 필요할 경우 특히 효율적인데요.

 

4-1. 결재모듈에 사용

기본 서버로 EC2를 아예 않사용할수도 있고,

EC2의 보조적 용도로 사용할 수도 있을 것 입니다.

예를 들면, 일반적인 Request는 EC2로 하고,

구매와 같이 중요하면서도 특정상황에 따라 폭증할수도 있는 경우는 Lambda를 사용할 수도 있을 것 같습니다.

비용대비 효과가 뛰어난 람다를 매출이 발생하는 부분에서 사용해준다면 매우 적절하다고 할 수 있겠지요.

 

4-2. 사용자 이미지 리사이징

사용자가 업로드함과 동시에 썸네일을 한다든가,

사용자가 요청할 때 리사이징을 한다든지 한다.

이미지리사이징에는 컴퓨팅파워가 필요하다.

 

아래에서는 코드를 amazon에서 올려놓은 것인데, 참조할 만 하다.

>> github.com/amazon-archives/serverless-image-resizing

 

404인 파일을 요청했을 때, Lambda로 리다이렉트로 하면,

Lambda에서 해당 사이즈의 파일을 S3에 넘겨준다.

그러면, 한번 해당사이즈 이미지가 있으면 다음부터는 그냥 사용하는 것이다.

 

 

 

 

 

728x90

+ Recent posts