AWS Lambda는 이벤트에 대한 응답으로 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버리스 컴퓨팅 서비스입니다. AWS Lambda를 사용하여 사용자 지정 로직을 통해 다른 AWS 서비스를 확장하거나, AWS 규모, 성능 및 보안으로 작동하는 자체 백엔드 서비스를 만들 수 있습니다. AWS Lambda는 Amazon API Gateway를 통한 HTTP 요청, Amazon S3 버킷에 있는 객체에 대한 변경 사항, Amazon DynamoDB의 테이블 업데이트 또는 AWS Step Functions의 상태 전환과 같은 다양한 이벤트에 대한 응답으로 코드를 자동 실행할 수 있습니다.

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

AWS Lambda 함수

AWS Lambda 함수 소개

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

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

주요 제품 기능

사용자 지정 로직으로 다른 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가 함수를 실행하여 필요에 따라 컴퓨팅 리소스를 시작하고 관리하여 수신 요청에 맞춥니다.

사용자 지정 백엔드 서비스 구축

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

기존 보유 코드 사용

AWS Lambda를 사용하면 새로운 언어나 도구, 프레임워크를 배울 필요가 없습니다. 기본 라이브러리뿐 아니라 모든 타사 라이브러리를 사용할 수 있습니다. 또한 모든 코드(프레임워크, SDK, 라이브러리 등)를 Lambda Layer로 패키지를 만들어 관리하면서 여러 함수에서 쉽게 공유할 수 있습니다. Lambda는 기본적으로 Java, Go, PowerShell, Node.js, C#, Python 및 Ruby 코드를 지원하며, 그 밖에 프로그래밍 언어를 사용해 함수를 작성할 수 있도록 Runtime API도 제공합니다.

완전히 자동화된 관리

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

내장된 내결함성

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

자동 규모 조정

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

관계형 데이터베이스에 연결

Amazon RDS 프록시를 사용하여 관계형 데이터베이스에 대한 완전관리형 연결 풀을 활용합니다. RDS 프록시는 관계형 데이터베이스에 대한 수천 개의 동시 데이터베이스 연결을 효율적으로 관리하므로 관계형 데이터베이스와 상호 작용해야 하는 확장성이 높고 안전한 Lambda 기반 서버리스 애플리케이션을 쉽게 구축할 수 있습니다. 현재 RDS 프록시는 MySQL 및 Aurora를 지원합니다. Amazon RDS 콘솔 또는 AWS Lambda 콘솔을 통해 서버리스 애플리케이션의 RDS 프록시를 사용할 수 있습니다.

성능에 대한 세부적인 제어

프로비저닝된 동시성을 통해 서버리스 애플리케이션 성능을 보다 강력하게 제어할 수 있습니다. 프로비저닝된 동시성을 활성화하면 두 자리 수 밀리초로 응답하기 위해 기능을 초기화하고 최적의 준비 상태를 유지합니다. 프로비저닝된 동시성은 함수 시작 시간을 보다 강력하게 제어해야 하는 AWS Lambda를 사용하여 구축한 모든 애플리케이션에 안성맞춤입니다. 애플리케이션에 필요한 알맞은 동시성 크기를 쉽게 구성할 수 있습니다. 요구가 많은 시간에는 동시성 수준을 늘리고 요구가 적어지면 크기를 줄이거나 종료할 수 있습니다. 프로비저닝된 동시성을 활용하면 코드를 변경할 필요가 없습니다. 프로비저닝된 동시성은 컴퓨팅 리소스를 관리할 필요가 없어 지연 시간에 민감한 애플리케이션을 위해 일관된 성능을 효율적으로 유지할 수 있도록 합니다.

공유 파일 시스템 연결

AWS Lambda용 Amazon Elastic File System을 활용하면 대용량 데이터를 규모에 관계없이 짧은 지연 시간으로 안전하게 읽고, 쓰고, 유지할 수 있습니다. 또한 처리할 데이터를 임시 스토리지로 다운로드하기 위한 코드를 작성할 필요가 없습니다. 덕분에 시간이 절약되고 코드가 단순화되어 비즈니스 로직에 집중할 수 있습니다. Lambda용 EFS는 기계 학습 애플리케이션 구축이나 대규모 참조 파일 또는 모델 로드, 대용량 데이터 처리 또는 백업, 웹 콘텐츠 호스팅 또는 서버리스 애플리케이션과 인스턴스 또는 컨테이너 기반 애플리케이션 간의 파일 공유에 적합합니다.

Amazon CloudFront 요청에 대한 응답으로 코드 실행

Lambda@Edge를 사용하면 AWS Lambda가 오리진 서버와 최종 사용자의 콘텐츠 요청 또는 오리진 서버와 최종 사용자에 대한 콘텐츠 요청과 같은 Amazon CloudFront 이벤트에 대한 응답으로 전 세계 AWS 로케이션에서 코드를 실행할 수 있습니다. 따라서 더 짧은 지연 시간으로 좀 더 풍부하고 개인화된 콘텐츠를 최종 사용자에게 손쉽게 제공할 수 있습니다. 자세히 알아보기 »

여러 함수 오케스트레이션

AWS Step Functions로 워크플로우를 구축하여 복잡하거나 장기간 실행되는 작업을 위해 여러 AWS Lambda 함수를 조율할 수 있습니다. Step Functions를 사용하면 순차, 병렬, 분기 및 오류 처리 단계를 사용하여 Lambda 함수를 트리거하는 워크플로를 정의할 수 있습니다. Step Functions 및 Lambda를 통해 애플리케이션 및 백엔드에 대해 안정적이고 장기간 실행되는 프로세스를 구축할 수 있습니다.

통합된 보안 모델

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

AWS Lambda는 SOC, HIPAA, PCI, ISO를 준수합니다. 최신 Lambda 인증 및 규정 준수 준비도는 AWS 범위 내 서비스를 참조하십시오.

사용한 만큼만 지불하면 됩니다.

AWS Lambda를 사용하면 서버 단위가 아닌 실행 기간에 대해 요금을 지불합니다. Lambda 함수를 사용하면 코드 실행에 필요한 컴퓨팅 시간 및 지원된 요청에 대해서만 비용을 지불합니다. 100밀리초 단위로 청구 금액이 정산되기 때문에 비용 효율적이고, 하루에 몇 개의 요청부터 1초당 수천 개의 요청에 이르기까지 자동으로 쉽게 확장할 수 있습니다. 프로비저닝된 동시성을 사용하면 구성된 동시성 크기와 구성 기간에 대한 비용을 지불합니다. 함수에 대해 프로비저닝된 동시성이 활성화되고 이를 실행하면 요청 및 실행 기간에 대한 요금도 지불합니다. 요금에 관해 자세히 알아보려면 AWS Lambda 요금을 참조하십시오.

유연한 리소스 모델

함수에 할당할 메모리 양을 선택하면 AWS Lambda가 이에 맞춰 CPU 성능과 네트워크 대역폭, 디스크 I/O를 할당합니다.

Lambda를 원하는 운영 도구와 통합

AWS Lambda 익스텐션을 사용하면 모니터링, 통합 가시성, 보안, 거버넌스 등 원하는 도구와 손쉽게 통합할 수 있습니다. Lambda 익스텐션은 함수 코드가 실행되는 Lambda 익스텐션 환경 내에서 실행됩니다. Lambda 익스텐션을 사용하여 세부적인 진단 정보를 포착하고 함수 로그, 지표, 추적 정보를 원하는 위치로 전송할 수 있습니다. 또한 운영 오버헤드 없이 함수 성능에 미치는 영향을 최소화하면서 Lambda 익스텐션 환경 내 보안 에이전트를 통합할 수 있습니다.

AWS Lambda 요금에 대해 자세히 알아보세요

요금 페이지로 이동하기
시작할 준비가 되셨습니까?
가입
추가 질문이 있으십니까?
문의처