네트워크 엔지니어 환영 2024. 1. 19. 20:46
반응형

Lambda란?

  • Serverless Service
  • 서버를 구축, 프로비져닝하고 필요한 패키지를 설치하는 등의 과정을 거치지 않고 코드를 실행하는 서비스 
  • 사용자는 애플리케이션이나 백엔드 서비스를 관리할 필요 없이 코드를 실행할 수 있음
  • CloudWatch, ALB, DynamoDB 등을 트리거로 이용하여 특정 상황에서 코드를 실행시키고 것이 가능
  • API Gateway와 람다를 조합하여 요청별로 특정 코드를 수행하도록 구성 가능
  • 람다의 최대 실행시간은 15분이므로 15분을 초과하는 작업에 대해서는 람다 비적합

 

Function의 정의와 구성

  • 코드를 실행하기 위해 호출할 수 있는 리소스
  • 이벤트를 처리하는 코드, 계층, 트리거, 전달 대상 등으로 구성됨
  • 함수코드 : 실제 호출되기 실행되는 코드, Runtime(코드 실행지원), IAM, VPC, Memory 등으로 구성됨
  • 트리거 : 함수코드를 발동시키는 서비스(S3, SNS, SQS, DynamoDB, CloudWatch Event, Cloudwatch Log 등)
    • SNS의 메시지 구독 대상에 람다를 포함시키면, 메시지 발송시 람다가 이를 전달받고 함수코드 실행
  • 전달대상 : 함수가 비동기식으로 호출되거나, 레코드를 처리한 경우 전달될 대상
    • SNS, SQS, 또다른 람다, EventBridge 이벤트 버스로 전달가능
    • SNS로부터 메시지를 전달받아 코드를 처리하고 이를 SQS로 보내 메시지 대기열에 적재할 수 있음

 

EC2 vs 람다

  • EC2 사용시 프로비져닝, 운영 체제, 네트워크 세부 설정, 보안 설정 등을 사용자가 원하는 방향으로 지정 가능
  • 람다 사용시 프로비져닝 필요없이 AWS가 모니터링, 프로비져닝, 보안패치 적용, 코드 배포를 모두 수행함