AWS 람다란 무엇입니까? 예제가 포함된 Lambda 함수

AWS Lambda 함수에 앞서 다음 사항을 이해해 보겠습니다.

서버리스 란 무엇입니까?

서버리스는 일반적으로 서버리스 애플리케이션을 가리키는 용어입니다. 서버리스 애플리케이션은 서버 제공이 필요하지 않고 서버를 관리할 필요도 없는 애플리케이션입니다.

AWS 람다는 무엇입니까?

AWS 람다 에서 제공하는 이벤트 중심의 서버리스 컴퓨팅 플랫폼입니다. Amazon 의 일부로 Amazon 웹 서비스. 따라서 어떤 AWS 리소스를 시작할지, 어떻게 관리할지 걱정할 필요가 없습니다. 대신 Lambda에 코드를 넣어야 실행됩니다.

AWS Lambda에서 코드는 S3 버킷의 파일 추가/삭제, SXNUMX 버킷의 HTTP 요청과 같은 AWS 서비스의 이벤트 응답을 기반으로 실행됩니다. Amazon API 게이트웨이 등. 단, Amazon Lambda는 백그라운드 작업을 실행하는 데에만 사용할 수 있습니다.

AWS Lambda 함수를 사용하면 운영 체제(OS) 액세스 제어, OS 패치, 적정 크기 조정, 프로비저닝, 확장 등을 관리하는 대신 핵심 제품과 비즈니스 로직에 집중할 수 있습니다.

AWS Lambda는 어떻게 작동합니까?

다음 AWS Lambda 예제는 블록 다이어그램과 함께 몇 가지 간단한 단계로 AWS Lambda의 작동 방식을 설명합니다.

AWS Lambda 블록 다이어그램
AWS Lambda 블록 다이어그램

1 단계 : 먼저 AWS Lambda에서 지원하는 언어로 AWS Lambda 코드를 업로드하십시오. Java, Python, Go 및 C#은 AWS Lambda 함수에서 지원되는 언어 중 일부입니다.

2 단계 : 다음은 AWS Lambda를 트리거할 수 있는 일부 AWS 서비스입니다.

3 단계 : AWS Lambda를 사용하면 코드와 해당 코드를 트리거해야 하는 이벤트 세부 정보를 업로드할 수 있습니다.

4 단계 : AWS 서비스에 의해 트리거될 때 AWS Lambda 코드를 실행합니다.

5 단계 : AWS는 AWS 람다 코드가 실행될 때만 요금을 청구하고, 그렇지 않은 경우에는 요금을 청구하지 않습니다.

이는 다음과 같은 시나리오에서 발생합니다.

  • S3 버킷에 파일 업로드
  • HTTP 가져오기/게시 끝점 URL이 적중되는 경우
  • Dynamo DB 테이블 추가/수정 및 삭제
  • 데이터 스트림 수집 과정에서
  • 푸시 알림
  • 웹사이트 호스팅
  • 이메일 전송

참고 : AWS Lambda 코드가 실행될 때만 AWS 서비스에 대한 비용이 청구되며, 그렇지 않으면 비용을 지불할 필요가 없다는 점을 기억해야 합니다.

AWS Lambda를 트리거하는 이벤트

다음은 AWS Lambda를 사용할 때 트리거되는 이벤트입니다.

  • 데이터 Dynamo DB 테이블 삽입, 업데이트 및 삭제
  • SNS에 푸시 알림을 포함하려면
  • CloudTrail에서 로그 기록을 검색하려면
  • S3 객체에 진입
  • DynamoDB 테이블에 데이터가 추가, 수정, 삭제될 때마다 AWS Lambda를 트리거할 수 있습니다.
  • 정기적인 시간 패턴으로 작업을 수행하도록 이벤트를 예약하는 데 도움이 됩니다.
  • S3 버킷의 객체 수정
  • 다음에서 보낸 알림 Amazon SNS.
  • AWS Lambda를 사용하여 CloudTrail 로그를 처리할 수 있습니다.
  • API 게이트웨이를 사용하면 GET/POST 메서드에서 AWS Lambda를 트리거할 수 있습니다.

AWS 람다 Concepts

기능:

함수는 AWS Lambda에서 실행되는 프로그램 또는 스크립트입니다. Lambda는 호출 이벤트를 함수에 전달하여 이벤트를 처리하고 해당 응답을 반환합니다.

런타임 :

런타임은 동일한 기본 실행 환경에서 실행되는 다양한 언어의 기능을 허용합니다. 이는 런타임에 기능을 구성하는 데 도움이 됩니다. 선택한 항목과도 ​​일치합니다. 프로그래밍 언어.

이벤트 소스:

이벤트 소스는 다음과 같은 AWS 서비스입니다. Amazon SNS 또는 맞춤형 서비스. 이 트리거 기능은 해당 논리를 실행하는 데 도움이 됩니다.

람다 레이어:

Lambda 레이어는 라이브러리, 사용자 정의 런타임 및 기타 중요한 기능 종속성을 위한 중요한 배포 메커니즘입니다. 또한 이 AWS 구성 요소는 사용되는 변경되지 않는 코드 및 리소스와 별도로 개발 기능 코드를 관리하는 데 도움이 됩니다.

로그 스트림:

로그 스트림을 사용하면 AWS Lambda 함수의 실행 흐름과 성능을 분석하는 데 도움이 되는 사용자 지정 로깅 문으로 함수 코드에 주석을 달 수 있습니다.

AWS 람다 사용 방법

이제 AWS Lambda 예제와 함께 AWS Lambda를 사용하는 방법을 알아 보겠습니다.

1단계) 1단계) AWS Lambda URL 열기
고토 https://aws.amazon.com/lambda/ 그리고 시작하세요

AWS 람다 사용 방법

2단계) 계정을 만드세요
다음으로, 계정을 만들거나 기존 계정으로 로그인하세요.

3단계) 코드를 편집하고 실행을 클릭합니다.
다음 Lambda 페이지에서는

  1. 코드 수정
  2. 실행을 클릭하십시오.

AWS 람다 사용 방법

4단계) 출력 확인
출력이 표시됩니다.

AWS 람다 사용 방법

AWS 람다 VS AWS EC2

다음은 AWS Lambda와 AWS Lambda의 몇 가지 주요 차이점입니다. EC2.

파라미터 AWS 람다 AWS EC2
정의 AWS Lambda는 PaaS(Platform as a Service)입니다. 백엔드 코드를 실행하고 실행하는 데 도움이 됩니다. AWS EC2는 서비스형 인프라(laaS)입니다. 가상화된 컴퓨팅 리소스를 제공합니다.
유연성 컴퓨팅 인스턴스에 로그인하는 데 유연성을 제공하지 않습니다. 사용자 지정 운영 체제 또는 언어 런타임을 선택할 수 있습니다. 다양한 인스턴스, 사용자 정의 운영 체제, 보안 패치, 네트워크 등을 선택할 수 있는 유연성을 제공합니다.
설치 과정 코드를 실행하고 AWS Lambda에 코드를 푸시하려는 환경을 선택해야 합니다. EC2에서는 처음으로 OS를 선택하고 필요한 모든 소프트웨어를 설치한 다음 코드를 EC2에 푸시해야 합니다.
환경 제한 소수의 언어로 제한됩니다. 환경 제한이 없습니다.

AWS 람다 VS AWS 엘라스틱 빈스토크

다음은 AWS Lambda와 Elastic Beanstalk의 몇 가지 주요 차이점입니다.

파라미터 AWS 엘라스틱 빈스토크 AWS 람다
주요 업무 해당 애플리케이션을 실행하는 인프라에 대해 걱정할 필요 없이 AWS 클라우드에서 앱을 배포하고 관리하세요. AWS Lambda는 백엔드 코드를 실행하는 데 사용됩니다. 애플리케이션을 배포하는 데는 사용할 수 없습니다.
AWS 리소스 선택 AWS 리소스를 자유롭게 선택할 수 있습니다. 예를 들어, 애플리케이션에 따라 최적의 EC2 인스턴스를 선택할 수 있습니다. EC2 인스턴스 유형과 같은 AWS 리소스를 선택할 수 없습니다. Lambda는 워크로드를 기반으로 리소스를 제공합니다.
시스템 유형 상태 저장 시스템입니다. 이는 무상태 시스템입니다.

AWS Lambda 사용 사례

AWS Lambda는 다음과 같은 광범위한 애플리케이션에 사용됩니다.

  • ETL 프로세스에 도움이 됩니다.
  • 실시간 파일 처리 및 실시간 스트림 처리를 수행할 수 있습니다.
  • 웹 애플리케이션 생성에 사용
  • 사용 Amazon Alexa Chatbots와 같은 제품 Amazon 에코/알렉사
  • 데이터 처리(실시간 스트리밍 분석)
  • 일상적인 작업의 자동 백업
  • 확장 가능한 백엔드(모바일 앱, IoT 장치)
  • 서버 측 백엔드 로직을 실행하는 데 도움이 됩니다.
  • 데이터를 필터링하고 변환할 수 있습니다.

Lambda 함수의 모범 사례

다음은 몇 가지 모범 사례입니다. AWS 람다 함수:

  • 올바른 "시간 초과"를 사용하십시오.
  • /temp 폴더에 500MB 크기의 로컬 저장소 기능을 활용하세요.
  • 현재 이벤트 처리와 직접적인 관련이 없는 시작 코드의 사용을 최소화합니다.
  • 요청 지연 시간을 보고 최적화하려면 Lambda 함수에 내장된 CloudWatch 모니터링을 사용해야 합니다.

AWS Lambda를 사용하지 말아야 할 경우

Lambda가 이상적인 옵션이 아닐 수 있는 상황은 다음과 같습니다.

  • 기본 호출에 의존하는 AWS Lambda 소프트웨어 패키지 또는 애플리케이션을 사용하는 것은 적절하지 않습니다. Windows RPC
  • MS-Office 문서 처리와 같은 라이센스 계약이 있는 맞춤형 소프트웨어 애플리케이션에 사용되는 경우, Oracle 데이터베이스 등
  • GPU 가속, 하드웨어 선호도와 같은 사용자 지정 하드웨어 프로세스에는 AWS Lambda를 사용해서는 안 됩니다.

AWS Lambda 사용의 장점

AWS 람다 사용의 장점/이점은 다음과 같습니다.

  • AWS Lambda는 매우 유연한 도구입니다.
  • VPC를 포함한 리소스에 대한 액세스 권한을 부여하는 데 도움이 됩니다.
  • 직접 작성자와 함께 WYSIWYG 에디터 콘솔에서.
  • 플러그인으로 사용할 수 있습니다. Eclipse and 비주얼 스튜디오.
  • 서버리스 아키텍처이므로 서버 관리나 프로비저닝에 대해 걱정할 필요가 없습니다.
  • 아무 것도 설정할 필요가 없습니다. 가상 기기.
  • 개발자가 인프라를 구축하지 않고도 이벤트에 대한 코드 응답을 실행하고 실행할 수 있도록 도와줍니다.
  • 코드가 실행될 때만 계산 시간이 필요합니다.
  • CloudWatch를 통해 실시간으로 코드 성능을 모니터링할 수 있습니다.
  • 이를 통해 프로비저닝 없이 코드를 실행하거나 다른 서버를 관리할 수 있습니다.
  • 필요할 때만 코드를 실행할 수 있도록 도와줍니다.
  • 자동으로 확장하여 하루에 몇 개의 요청을 처리하고 초당 수천 개가 넘는 요청을 지원할 수도 있습니다.
  • AWS Lambda는 외부 이벤트 타이머를 사용하여 예약된 작업을 수행하도록 구성할 수 있습니다.
  • AWS의 Lambda 함수는 외부 이벤트 및 타이머로 구성되어야 합니다. 일정을 잡는 데 사용할 수 있습니다.
  • Lambda 함수는 상태 비저장이므로 빠르게 확장할 수 있습니다.
  • AWS Lambda는 빠르므로 밀리초 내에 코드를 실행합니다.

AWS Lambda의 한계

AWS Lambda 사용의 단점/단점은 다음과 같습니다.

  • AWS Lambda 도구는 소규모 프로젝트에는 적합하지 않습니다.
  • AWS Lambda는 인프라를 전적으로 AWS에 의존하므로 코드에서 요구하는 경우 추가 소프트웨어를 설치할 수 없습니다.
  • 동시 실행은 100으로 제한됩니다.
  • AWS Lambda는 인프라 측면에서 AWS에 전적으로 의존했습니다. 코드에서 요구하는 경우 추가 소프트웨어를 설치할 수 없습니다.
  • 메모리 용량은 128MB에서 1536MB까지 다양합니다.
  • 이벤트 요청은 128KB를 초과할 수 없습니다.
  • Lambda 함수는 CloudWatch에만 로그를 작성하는 데 도움이 됩니다. 이는 기능을 모니터링하거나 문제를 해결할 수 있는 유일한 도구입니다.
  • 코드 실행 시간 제한은 단 5분입니다.

요약

  • 서버리스는 일반적으로 서버리스 애플리케이션을 가리키는 용어입니다.
  • AWS Lambda는 그러한 서버리스 컴퓨팅 서비스 중 하나입니다. 따라서 시작할 AWS 리소스나 리소스를 어떻게 관리할지 걱정할 필요가 없습니다.
  • 함수는 AWS 서버리스 Lambda에서 실행되는 프로그램 또는 스크립트입니다.
  • 런타임은 동일한 기본 실행 환경에서 실행되는 다양한 언어의 기능을 허용합니다.
  • 이벤트 소스는 다음과 같은 AWS 서비스입니다. Amazon SNS 또는 맞춤형 서비스.
  • Lambda 레이어는 라이브러리, 사용자 정의 런타임 및 기타 중요한 기능 종속성을 위한 중요한 배포 메커니즘입니다.
  • 로그 스트림을 사용하면 Lambda 함수의 실행 흐름과 성능을 분석하는 데 도움이 되는 사용자 지정 로깅 문으로 함수 코드에 주석을 달 수 있습니다.
  • AWS Lambda는 PaaS(Platform as a Service)입니다. 백엔드 코드를 실행하고 실행하는 데 도움이 됩니다.
  • AWS EC2는 서비스형 인프라(laaS)입니다. 가상화된 컴퓨팅 리소스를 제공합니다.
  • 해당 애플리케이션을 실행하는 인프라에 대해 걱정할 필요 없이 AWS 클라우드에서 앱을 배포하고 관리하세요.
  • AWS Lambda는 백엔드 코드를 실행하는 데 사용됩니다. 애플리케이션을 배포하는 데는 사용할 수 없습니다.
  • AWS Lambda는 다음과 같은 작업에 도움을 줍니다. ETL 프로세스.
  • AWS에서 Lambda 함수의 모범 사례는 올바른 "제한 시간"을 사용하는 것입니다.
  • 기본 호출에 의존하는 AWS Lambda 소프트웨어 패키지 또는 애플리케이션을 사용하는 것은 적절하지 않습니다. Windows RPC
  • AWS Lambda는 매우 유연한 도구입니다.
  • AWS Lambda 도구는 소규모 프로젝트에는 적합하지 않습니다.
  • AWS Lambda를 사용할 때 트리거되는 일반적인 이벤트는 Dynamo DB 테이블 데이터 삽입, 업데이트 및 삭제입니다.