Lambda

AWS Lambda를 사용하면 서버를 프러비저닝하거나 관리할 필요 없이 코드를 실행할 수 있다. 사용자 애플리케이션이나 백엔드 서비스를 관리할 필요 없이 코드를 실행할 수 있다. API Gateway 와 Lambda를 조합하여 요청별로 특정 코드를 수행하도록 구성 가능하다.

  • API Gateway, Alexa Skills Kit, CloudFront, CloudWatch, DynamoDB, Kinessis, S3, SNS등을 트리거로 이용하여 특정 상황에서 코드를 실행시킬 수 있다.

    ex) SNS의 메세지 구독 대상에 Lambda를 포함시키면, 메시지 발송시 Lambda가 이를 전달받고 함수코드 실행

  • Lambda는 자동으로 scales out을 한다.

    (scale up : 장비를 업그레이드 하는 것, scale out : 장비를 추가하는 것)

  • Lambda 함수는 독립적이다. 하나의 이벤트 = 하나의 함수

  • 람다는 서버리스이다.

  • AWS 서비스 중 서버리스 = S3, API GATEWAY, Lambda, dynamo DB

    (EC2는 EC2인스턴스를 관리하기 때문에 서버리스가 아니다.)

  • Lambda함수는 다른 람다 함수를 트리거 할 수 있다. 함수가 다른 함수를 트리거할 때, 1이벤트는 x 함수를 트리거할 수 있다. 즉, 하나의 이벤트가 여러 함수를 트리거할 수 있다.

  • 아키텍처는 매우 복잡해질 수 있습니다. AWS X-ray 를 사용하면 무슨 일이 일어나고 있는지 디버깅 할 수 있습니다.

  • Lambda는 전 세계적으로 작업을 수행할 수 있으며, 이를 사용하여 S3 버켓을 다른 S3 버킷 등에 백업할 수 있다.

람다 트리거 완전 중요!

람다 트리거가 아닌 것은?으로 문제가 나올 수도 있다!!

API Gateway, Alexa Skills Kit, CloudFront, CloudWatch, DynamoDB, Kinessis, S3, SNS

Lambda를 사용하는 이유?

  • NO SERVERS!
  • Continuous Scaling
  • Super super super cheap!

Lambda@Edge

Lambda@Edge를 사용하면 서버를 프로비저닝하거나 관리하지 않고 글로벌 AWS 엣지 로케이션에서 코드를 실행할 수 있으므로 가장 짧은 네트워크 지연 시간으로 최종 사용자에게 응답할 수 있다. Node.js 또는 Python 코드를 AWS Lambda에 업로드하고 Amazon CloudFront 요청에 대한 응답으로 함수가 트리거되도록 구성하기만 하면 된다.

Lambda@Edge를 사용하려면 어떻게 해야 합니까?

Lambda@Edge를 사용하려면, 코드를 AWS Lambda에 업로드하고 Amazon CloudFront 요청에 대한 응답으로 트리거되도록 함수 버전을 연결하기만 하면 된다.

Lambda@Edge는 언제 사용해야 합니까?

Lambda@Edge는 최종 사용자가 전 세계에 분산되어 있고 지연 시간에 민감한 사용 사례에 최적화되어 있다. 사용자 특성(위치, 클라이언트 디바이스 등)을 바탕으로 콘텐츠를 제공하는 방법을 결정하려는 사용 사례의 경우, 중앙 서버로 다시 라우팅할 필요 없이 이제 사용자와 가까운 위치에서 바로 실행하고 지원할 수 있다.