흰 스타렉스에서 내가 내리지

AWS Lambda 기초 본문

AWS

AWS Lambda 기초

주씨. 2023. 9. 21. 00:43
728x90

> Serverless

- 서버의 관리와 프로비전 없이 코드를 실행할 수 있음 

- 사용한 만큼만 비용을 지불 (OnDemand)

- 고가용성과 장애 내구성이 확보되어 있음

- 빠르게 배포하고 업데이트 가능 

- Serverless 환경을 잘 활용할 수 있는 아키텍처 필요

    - 병렬 처리

    - 이벤트 기반 아키텍처 등 

 

 

> AWS Lambda

"AWS Lambda는 서버를 프로비저닝 또는 관리하지 않고도 실제로 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있는 이벤트 중심의 서버리스 컴퓨팅 서비스이다. 200개가 넘는 AWS 서비스와 서비스형 소프트웨어 (SaaS) 애플리케이션에서 Lambda를 트리거할 수 있으며 사용한 만큼만 지불하면 됩니다."

 

- AWS의 Serverless 컴퓨팅 서비스 

    - 코드와 코드를 실행하기 위한 파일들을 업로드하면 서버 프로비전 없이 코드 실행 

- 다양한 AWS 서비스에서 Lambda를 활용 

- 다양한 언어 지원

    - Java, C#, Go, Node.Js, Python, Ruby, .NET

- Lambda는 크게 두 가지 방법으로 호출 

    - Event 기반 

    - AWS의 다른 서비스 혹은 어플리케이션에서 직접 혹은 API Gateway를 통해서 호출 

- 저렴한 가격

    - 처음 100만건 호출 무료, 이후 100만건 당 $0.2

 

 

> Deployment Package

- 함수의 코드와 코드를 실행하기 위한 런타임으로 구성 

- 용량 제한 

    - zip 파일 : 50mb

    - unzip 파일 : 250mb

    - 콘솔 에디터를 사용하려면 3mb

- S3에 업로드 가능

- 컨테이너 이미지, Lambda Layer 등으로 우회 가능 

 

 

> 일반 구성 (General Configuration)

- IAM 역할

- 메모리

    - 128 ~ 10,240MB (약 10GB)

- 제한 시간 

    - 최대 15분

- /tmp 디렉토리 스토리지

    - 512mb ~ 10,240mb (약 10GB)

 

 

> 트리거 (Trigger)

- AWS를 호출하는 서비스 

    - 예 : API Gateway, SQS, S3

- 각 서비스에서 호출 시 지정된 양식의 이벤트 내용을 전달 

 

> 기타 

- 권한 (Permissions)

    - IAM 역할로 부여된 AWS의 서비스를 사용할 수 있는 권한

- 태그

    - Lambda에 부여된 태그 

- 환경 변수 (Environment Variables)

    - Lambda 코드상에서 사용하는 환경 변수 

 

 

> 테스트 이벤트

- 람다 함수를 테스트하기 위한 내용을 템플릿으로 구성 가능 

- 프라이빗 

    - 함수 생성자만 작성 가능 (총 10개)

- 공유 가능 

    - 같은 계정의 다른 IAM 사용자에게 공유 가능 

- 다양한 서비스에서 Lambda 호출 시 전달하는 이벤트가 미리 지정되어 있음 

 

 

> Demo - 덧셈 하는 Lambda 생성 

- 두 숫자를 더하는 함수 생성 

함수 생성까지 시간이 좀 걸리는 데, 이는 기본 역할을 만들고 있기 때문이다. (최대 1분)

 

테스트 이벤트를 만들어 보자. 

 

"템플릿 - 선택 사항"으로 다양한 이벤트를 선택할 수 있다.

커스텀으로 정말 간단한 걸 만들어 보자.

 

 

 

기본으로 생성해준 코드 

 

body 부분에 event를 넣어보자 .

우리가 테스트 탭에서 이벤트 JSON에 작성한 내용이 handler 함수의 전달인자로 전달이 된 것을 알 수 있다.

 

모든 숫자를 더하는 로직을 한 번 작성해보자. 

이벤트 JSON은 여러 개를 동시에 만들어 놓을 수 있다. 

 

 

'AWS' 카테고리의 다른 글

Serverless - JWT  (0) 2023.09.21
Amazon API Gateway 기초  (0) 2023.09.21
Amazon EventBridge - 이벤트 매칭 규칙  (0) 2023.09.20
Serverless 서비스 기반 지진 알람  (0) 2023.09.20
Serverless Framework  (0) 2023.09.20