AWS Lambda는 이벤트에 응답하여 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버 없는 컴퓨팅 서비스입니다. AWS Lambda를 사용하여 커스텀 로직으로 다른AWS 서비스를 확장하거나, AWS 규모, 성능 및 보안으로 작동하는 자체 백엔드 서비스를 만들 수 있습니다. AWS Lambda는 Amazon S3 버킷의 객체에 대한 변경 또는 Amazon DynamoDB의 테이블 업데이트와 같은 다양한 이벤트에 대한 응답으로 코드를 자동 실행할 수 있습니다.

Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 코드 모니터링 및 로깅 등 모든 컴퓨팅 리소스 관리를 수행합니다. 개발자는 코드를 제공하기만 하면 됩니다.

 

AWS Lambda 함수 소개

AWS Lambda에서 실행하는 코드를'Lambda 함수'라고 합니다. Lambda 함수를 만든 뒤에는 스프레드시트의 수식과 마찬가지로 트리거되는 즉시 언제든지 실행할 수 있습니다. 각 함수에는 코드뿐 아니라 함수 이름과 리소스 요구 사항을 비롯한 일부 관련 구성 정보가 포함되어 있습니다. Lambda 함수는'상태를 저장하지 않으며' 기본 인프라에 대한 선호도가 없으므로Lambda는 필요에 따라 많은 함수 사본을 빠르게 시작하여 수신 이벤트 비율에 따라 조정할 수 있습니다.

코드를AWS Lambda에 업로드한 뒤 함수를 특정AWS 리소스(예: 특정Amazon S3 버킷, Amazon DynamoDB 테이블, Amazon Kinesis 스트림 또는Amazon SNS 알림)와 연결할 수 있습니다. 그런 다음 리소스가 변경되면Lambda가 함수를 실행하여 필요에 따라 컴퓨팅 리소스를 관리함으로써 수신 요청에 맞출 수 있습니다.

AWS Lambda는 다음과 같이 8가지 주요 기능을 가지고 있습니다.

1. 커스텀 로직으로 다른AWS 서비스 확장: AWS Lambda를 사용하면Amazon S3 버킷과Amazon DynamoDB 테이블 등의AWS 리소스에 커스텀 로직을 추가하여 데이터가 클라우드를 통해 들어오거나 이동할 때 손쉽게 컴퓨팅을 적용할 수 있습니다.또한, 손쉽게AWS Lambda를 시작할 수 있습니다. 먼저 코드를 업로드(또는Lambda 콘솔에서 직접 개발)하고 메모리와 시간 초과 기간, AWS Identity and Access Management(IAM) 역할을 선택하여 함수를 작성할 수 있습니다. 그런 다음 특정Amazon S3 버킷이나Amazon DynamoDB 테이블, Amazon Kinesis 스트림 중에서AWS 리소스를 지정하여 함수를 트리거합니다. 리소스가 변경되면Lambda가 함수를 실행하여 필요에 따라 컴퓨팅 리소스를 시작하고 관리하여 수신 요청에 맞출 수 있습니다.

 

2. 커스텀 백엔드 서비스 구축: AWS Lambda를 사용하여 애플리케이션에 대한 새로운 백엔드 서비스를 생성할 수 있습니다. 이러한 애플리케이션은Amazon API Gateway를 사용한Lambda API 또는 커스텀API 엔드포인트 구축을 통해 온디맨드로 트리거됩니다. 커스텀 이벤트를 클라이언트에서 처리하는 대신Lambda를 사용하여 처리하면 클라이언트 플랫폼 변형을 방지하고 배터리 소모를 줄이며 더욱 쉽게 업데이트할 수 있습니다.

 

3. 완전히 자동화된 관리: AWS Lambda는 가용성이 뛰어난 내결함성 인프라에서 코드를 실행할 수 있도록 모든 인프라를 관리하므로 차별화된 백엔드 서비스 구축에 집중할 수 있도록 해 줍니다. Lambda를 사용하면 패치가 출시되어도 기본OS를 업데이트할 필요가 없으며 사용량이 증가함에 따라 서버 규모를 조정하거나 새로운 서버 추가에 대해 걱정할 필요가 없습니다. AWS Lambda는 코드를 원활하게 배포하고 모든 관리, 유지 관리 및 보안 패치를 수행하며 Amazon CloudWatch를 통해 내장된 로깅 및 모니터링 기능을 제공합니다.

 

4. 내결함성 기본 제공: Lambda에는 내결함성이 기본 제공됩니다. AWS Lambda는 각 리전에 있는 여러 가용 영역의 컴퓨팅 파워를 유지 관리하여 개별 시스템이나 데이터 센터 시설에 장애가 발생해도 코드를 보호할 수 있습니다. AWS Lambda 및 서비스에서 실행되는 함수 모두 예측 가능하고 안정적인 운영 성능을 제공합니다. AWS Lambda는 서비스 자체 및 서비스에서 운영하는 함수에 대해 높은 가용성을 제공하도록 설계되었습니다. 유지 관리 기간이나 예약된 가동 중지 시간이 없습니다.

 

5. 자동 조정: AWS Lambda는 필요한 경우에만 코드를 호출하고 특별히 구성하지 않아도 수신 요청에 따라 지원할 수 있도록 자동 확장됩니다. 코드에서 처리할 수 있는 요청 수에는 제한이 없습니다. AWS Lambda는 대개 이벤트가 발생한 후 밀리초 내에 코드를 실행합니다. 또한, Lambda는 자동으로 확장하므로 이벤트 발생 빈도가 증가해도 성능이 높게 유지됩니다. 코드 상태가 저장되지 않으므로Lambda는 배포와 구성에 대한 지연 없이 필요한 만큼 많은 인스턴스를 시작할 수 있습니다.

 

6. 통합된 보안 모델: AWS Lambda를 사용하면 내장된AWS SDK 및 AWS Identity and Access Management(IAM)와의 통합을 통해 코드가 다른AWS 서비스에 안전하게 액세스할 수 있습니다. AWS Lambda는 기본적으로VPC 내에서 코드를 실행합니다. 선택적으로 자체VPC 뒤에서 리소스에 액세스하도록AWS Lambda를 구성할 수 있으므로, 사용자 정의 보안 그룹과 네트워크 액세스 제어 목록을 활용하여Lambda 함수가VPC 내 리소스에 액세스하도록 할 수 있습니다.

 

7. 자체 코드 사용 가능: AWS Lambda를 사용하면 새로운 언어나 도구, 프레임워크를 배울 필요가 없습니다. 기본 라이브러리뿐 아니라 모든 타사 라이브러리를 사용할 수 있습니다. AWS Lambda는Java, Node.js 및Python 코드를 지원하며 향후 다른 언어도 지원할 예정입니다.

 

8. 사용량에 따라 지불: AWS Lambda를 사용하면 코드 실행에 필요한 컴퓨팅 시간 및 서비스된 요청에 대해서만 비용을 지불합니다. 100밀리초 단위로 청구 금액이 정산되기 때문에 비용 효율적이고, 하루에 몇 개의 요청부터1초당 수천 개의 요청에 이르기까지 자동으로 쉽게 확장할 수 있습니다.

 

출저: https://aws.amazon.com/ko/lambda/details/