AWS Lambda

양승현·2022년 7월 28일
0

aws

목록 보기
9/12

AWS Lambda

  • 서버를 관리하지 않아도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스이다.
  • 서버에 대한 요청을 처리하는 로직을 함수단위로 정의하여 요청이 들어올때마다 함수를 호출한다.
  • 사용한 만큼만 지불한다 즉 함수를 호출한 만큼 비용을 지불하는 방식이다.
  • C#, 파워셸PowerShell, 고Go, 자바Java, 자바스크립트JavaScript, 파이썬Python, 루비Ruby를 공식적으로 지원한다.

동작

    1. 사용자가 코드를 Lambda 함수에 업로드
    1. 트리거 구성
    1. 트리거 발동
    1. Lambda 함수의 코드가 요청이 들어오면 자동으로 실행
    1. 호출한 만큼 비용 지불

람다 호출 패턴

1. 클라우드 와치 이벤트(CloudWatch Events)

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

2. S3 객체 이벤트

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

3. 외부 이벤트

  • 아마존 이벤트브릿지Amazon EventBridge를 통해서 외부 서비스의 이벤트를 기반으로 람다 함수를 실행할 수 있다.

4. API 게이트웨이(API Gateway)

  • API 게이트웨이를 통해 HTTP 요청을 람다 함수를 사용해 처리할 수 있다.

5. 애플리케이션 로드 밸런서의 타깃 그룹

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

Lambda 장단점

  • 인프라 설계에 대한 부담을 줄일 수 있으며 코드 개발에 집중할 수 있다.
  • 트리거를 이용해 애플리케이션을 자동으로 확장 및 축소 가능하여 확장성이 뛰어나다.
  • 함수 최대 실행시간이 15분이며, 15분이 넘어가는 코드는 실행되지 않는다.
  • 요청이 들어올때마다 컨테이너를 통해 실행되어 EC2보다는 상대적으로 느리다.
  • 함수가 호출되는 만큼 비용이 부과되기 때문에 트래픽이 많은 서비스를 Lambda로 처리하는 경우 많은 비용이 청구될 수 있다.
  • 웹 백엔드 요청 처리 등 빠른 처리를 요구하는 코드인 경우 적합하다.

0개의 댓글