[AWS] AWS Lambda

AWS Lambda

AWS Lambda 는 AWS 플랫폼에서 함수를 실행하여 데이터를 간편하게 처리할 수 있게 해주는 서비스이다.

Lambda Logo

Table of Contents

About

Lambda 를 사용한다면 시스템 자원을 프로비저닝할 필요 없이 Serveless로 코드를 실행시킬 수 있다.

AWS Lambda 를 통해 필요할 때만 코드를 실행시킬 수 있다. 코드가 실행될 때에만 비용이 부과됨으로 인해 코드 실행되지 않는 상황에서의 비용을 감소시킬 수 있다.

만약 동시다발적으로 여러 이벤트가 발생할 경우, 람다는 함수를 복사하여 병행적으로 실행시킨다.
람다 함수의 크기는 workload의 사이즈와 일치한다.

FaaS

FaaS : Function as a Service
Lambda는 서버리스 FaaS 에 해당하는 타입이다.

↑ return to TOC

Lambda + Other Services

보통 Lambda 는 함수를 호출하기 위해 다른 AWS 서비스와 통합되어 사용된다.
람다와 통합되는 서비스는 함수(JSON 형식)에 Data 를 Event로 전송시킨다.
람다는 전달해야 하는 이벤트를 객체로 변환시킨 후 함수로 전달한다.

람다와 함께 사용되는 아마존의 서비스는 아래와 같다.

4 Groups

위의 서비스들을 네 가지 타입으로 grouping 할 수 있다.

  1. 이벤트를 읽는 서비스
    Lambda 함수를 동기적으로 호출하는 서비스
    • Amazon Kinesis
    • Amazon DynamoDB
    • Amazon Simple Queue Service
  2. 동기 호출
    Lambda 함수를 동기적으로 호출하는 서비스
    • Elastic Load Balancing
    • Amazon Cognito
    • Amazon Lex
    • Amazon Alexa
    • Amazon API Gateway
    • Amazon CloudFront
    • Amazon Kinesis Data Firehose
    • AWS Step Functions
    • Amazon Simple Storage Service 배치
  3. 비동기 호출
    Lambda 함수를 비동기적으로 호출하는 서비스
    • Amazon Simple Storage Service
    • Amazon Simple Notification Service
    • Amazon Simple Email Service
    • AWS CloudFormation
    • Amazon CloudWatch Logs
    • Amazon CloudWatch Events
    • AWS CodeCommit
    • AWS Config
    • AWS IoT
    • AWS IoT Events
    • AWS CodePipeline
  4. 통합 서비스
    다른 방식으로 Lambda와 통합되는 서비스
    • Amazon Elastic File System
    • AWS X-Ray

↑ return to TOC

Lambda Function

Invocation Type

Invocation Type 을 통해 람다를 동기 또는 비동기로 설정할 수 있다.

Invocation Type 이 가질수 있는 값은 총 세가지다.

  1. RequestReponse
    동기적으로 다루고 싶을 때
  2. Event
    비동기적으로 다루고 싶을 때
  3. DryRun

Invocation Pattern

Invocation 패턴은 총 두개로 나뉜다.

  1. Push Model
    다른 AWS 서비스에서 특정 이벤트가 발생시 람다 함수를 호출 하는 모델.
    • 예) ‘S3 버켓에 새 객체가 추가된 경우’를 이벤트 발생이라 볼 수 있다.
  2. Pull Model
    Data Source에 새 Record가 도달 했을 때 람다 함수를 호출하는 모델.
    • 예) Amazon Kinesis에 생긴 New Record
      • 여기서 Record 는 스트림에 저장되는 Data 단위를 말한다.

Push Model

Pull Model

↑ return to TOC

References

AWS Lambda

↑ return to TOC