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의 작동 방식을 설명합니다.
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/ 그리고 시작하세요
2단계) 계정을 만드세요
다음으로, 계정을 만들거나 기존 계정으로 로그인하세요.
3단계) 코드를 편집하고 실행을 클릭합니다.
다음 Lambda 페이지에서는
- 코드 수정
- 실행을 클릭하십시오.
4단계) 출력 확인
출력이 표시됩니다.
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 테이블 데이터 삽입, 업데이트 및 삭제입니다.