[TIL] AWS Lambda 소개

changhwan·2021년 12월 27일
0

Serverless

목록 보기
1/1
post-thumbnail

AWS Lambda란

AWS 람다는 아마존 웹 서비스에서 제공하는 서버리스 컴퓨팅 서비스 중 하나이다.

서버리스 컴퓨팅은 애플리케이션을 실행하기 위한 별도의 서버 셋업 없이 곧바로 코드를 실행해주는 서비스를 의미하며, 고정 비용 없이 사용 시간에 대해서만 과금을 책정한다.


AWS Lambda 특징

  • 어떤 일이 일어났을 때 트리거 되는 함수 (코드)
  • 이렇게 개발된 함수를 ‘Lambda Function’라고 지칭
  • 트리거 설정 가능 (API Gateway, S3, DaynamoDB, RDS)
  • 제한시간이 존재한다.
  • 각기 다른 코드로 독립적으로 구성 가능 (마이크로 서비스와 유사)
  • 관리의 이슈가 생길 수 있음
  • Lambda는 1ms 요금을 계산한다.
  • Go, Java, JS, Python, Ruby, C# 등을 공식 지원하고 있다.

요금 산정 기준

  • 요청 수, 코드를 실행하는데 걸리는 시간
  • 월 100만건, 40만 초까지는 무료
  • 사용한 만큼만 과금한다.
  • 다른 클라우드 컴퓨팅 자원보다 비싸다.

람다 함수 트리거

람다는 특정 이벤트를 기반으로 요청 받는 그 즉시 실행된다. API 게이트웨이나 애플리케이션 로드밸러서가 받은 요청을 기반으로 실행할 수도 있으며, AWS의 다양한 서비스와 연동도 가능하다.


람다를 호출하는 일반적인 패턴들

a. 클라우드 와치 이벤트

  • 클라우드 와치 이벤트 규칙의 소스는 크게 시간과 다른 서비스의 이벤트로 나뉜다.
  • 시간을 사용하는 경우 크론잡과 같이 실행 스케줄을 지정해 람다 함수를 실행하는 것이 가능하다.
  • 이벤트 기반으로 소스를 받는 경우 AWS의 다른 서비스들과 느슨하게 결합해서 람다를 실행할 수 있다.

b. S3 객체 이벤트

  • S3 버킷의 특정한 이벤트를 소스로 받아 람다 함수를 실행하는 것이 가능하다.
  • 예를 들어 사용자가 파일을 추가하거나 변경하면 자동적으로 메타 데이터를 추출하는 함수를 실행할 수 있다.
  • 또 이미지가 업로드 되거나 하면 특정 크기로 이미지 리사이즈를 하는 람다 함수를 실행할 수도 있다.

c. API 게이트웨이

  • HTTP 요청을 API 게이트웨이를 통해 람다로 처리할 수 있다.
  • 원래는 REST API만 지원해서 간단한 API를 구착하기에는 복잡한 편이었지만 API Gateway에 HTTP API 방식이 추가되면서 좀 더 쉽게 사용할 수 있게 되었다.

D. 로드 밸러서의 타깃 그룹

  • 람다 함수를 로드 밸런서의 타깃 그룹으로 지정해서 요청을 처리할 수 있다.
  • API 게이트웨이와 달리 ALB를 사용하는 경우 고정 비용이 발생한다.
profile
Junior Backend Developer

0개의 댓글