[aws] Lambda 개념 및 사용법

2022. 6. 29. 18:26✅ STUDY/AWS

안녕하세요 :)

오늘은 AWS Lambda에 대해 설명드리려 합니다.


AWS Lambda

AWS Lambda

Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스 입니다.

[특징]

  • 자신의 코드에 대해서만 책임: Lambda는 사용자를 대신하여 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 코드 모니터링 및 로깅 등 모든 컴퓨팅 리소스 관리를 수행합니다. Lambda가 이러한 리소스를 관리하므로 컴퓨팅 인스턴스에 로그인하거나 제공된 런타임에 운영 체제를 사용자 지정할 수 없습니다. 개발자는 AWS Lambda 콘솔에서 코드를 작성하고, 메모리, 타임아웃, IAM 역할 선택을 수행하면 됩니다. Lambda는 실행되는 메모리에 따라 CPU, N/W 자원을 할당합니다.
  • 함수 요청 수와 코드를 실행하는 데 걸리는 시간에 따라 요금 청구: 함수 실행에 필요한 컴퓨팅 파워와 리소스 구동 시간 단위로 비용을 과금합니다. 기존 서버 인프라를 기반으로 하는 경우, 유휴 시간에도 컴퓨팅 파워에 대한 사용료를 지불해야 하지만, Lambda는 요청에 따른 처리에 필요한 리소스의 사용료만 비용을 지불함으로써 비용 효율적으로 서비스를 구현할 수 있습니다. (https://aws.amazon.com/ko/lambda/pricing/)
  • 필요 시에만 함수 실행: Lambda는 필요 시에만 함수를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장이 가능합니다. Lambda API를 사용하여 Lambda 함수를 호출하거나, Lambda가 다른 AWS 서비스의 이벤트에 응답하여 함수를 실행할 수 있습니다.
  • 다양한 언어와 라이브러리 지원: 다양한 언어와 라이브러리를 지원합니다. 기존의 코드나 프레임워크, SDK, 라이브러리 등을 Lambda Layer 패키지로 만들어 관리할 수 있으며, 여러 함수에서 손쉽게 사용할 수 있습니다. 기본적으로 Java, Go, PowerShell, Node.js, C#, Python 등의 언어를 사용하여 구현할 수 있습니다.
  • 함수 개발 환경: Lambda 함수를 자체 IDE에서 개발하거나 Zip 배포, Cloud9을 통해 개발 및 배포 가능합니다.

 

[동작 방식]

Lambda 함수의 호출은 이벤트 소스 또는 사전에 정의된 일정 또는 스케줄러를 통해 이벤트가 발생됩니다.

Lambda 함수의 실행 역할은 AWS 서비스 및 리소스에 액세스할 수 있는 권한을 함수에 부여하는 AWS Identity and Access Management(IAM) 역할입니다. 함수를 만들 때 이 역할을 제공하면 함수를 호출할 때 Lambda가 이 역할을 수임합니다.

Lambda 함수의 리소스 기반 권한 정책을 사용하여 리소스별로 다른 AWS 계정 또는 조직에 사용 권한을 부여할 수 있습니다. 다른 계정과 AWS 서비스에 Lambda 리소스를 사용할 권한을 부여하려면 리소스 기반 정책을 사용합니다. 리소스 기반 정책을 사용하여 AWS 서비스가 자동으로 해당 함수를 호출할 수 있도록 허용할 수도 있습니다.

AWS 서비스와 연결 및 연동을 통해 다양한 서비스를 개발하거나 구현할 수 있습니다. Lambda를 통해 다른 AWS 서비스를 실행하거나 제어할 수 있습니다.


[ AWS Lambda 사용법 ]


AWS Lambda 함수 생성 및 모니터링

1. AWS Lambda 콘솔을 이용하여, Lambda 함수를 생성합니다.

- python 3.8 런타임 환경을 사용해, 테스트용 함수를 생성합니다.

 

2. (참고) AWS Lambda 콘솔 - 구성에서 설정을 변경할 수 있습니다.

- Lambda의 기본 설정에서 메모리(124MB ~ 10240MB), 임시 스토리지(512MB ~ 10240MB), 제한 시간(최대 15분), 함수 실행 역할을 설정 가능

- 환경 변수 설정 가능


아래 처럼 설정하면 Lambda 함수 코드 내부에서 아래 코드처럼 읽을 수 있습니다.

import os

print(os.environ.get("ACCOUNT_NUMBER"))

 

3. 코드 소스를 일부 수정하여, 함수를 배포(업데이트)합니다.

 

4. 해당 함수를 실행하기 위해, 테스트 이벤트를 구성합니다.

 

5. 테스트 이벤트에 의해 실행된 함수의 모니터링과 로그를 확인합니다.

 


이상으로 AWS Lambda에 대해 알아봤습니다 🎈


참고) https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html

 

AWS Lambda란 무엇입니까? - AWS Lambda

AWS Lambda란 무엇입니까? Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/lambda-permissions.html

 

AWS Lambda 권한 - AWS Lambda

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com