cloud/AWS

AWS -Lambda

클라우디아랩 2021. 6. 21. 21:31

AWS Lambda란?

- 서버를 프로비저닝하거나 관리하지 않아도 코드를 실행할 수 있도록 해주는 컴퓨팅 서비스

- AWS Lambda는 필요할때만 코드를 실행하고 하루 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장 가능

- 코드가 실행될 때에만 요금이 부과됨

- AWS Lambda를 사용하면 S3버킷이나 DynamoDB 등의 리소스를 손쉽게 활용할 수 있는 사용자 지정로직을 개발 할 수 있고 트리거를 발생할때 함수를 지정할 수 있다.

 

AWS Lambda 장점

- 완전 관리형 서비스로 가용성이 뛰어나며, 내결함성을 갖추고 있어 별도의 인프라 관리나 패치가 필요하지 않는다.

- 각 리전에 있는 여러 가용 영역의 컴퓨팅 파워를 사용함으로써 개별 시스템이나 데이터 센터 시설의 장애가 발생하여도 서비스에 영향을 받지 않는다.

- 기본적인 언어를 지원함(Java, python, C#, PowerShell, Go, Node.js 등)

- 별도의 OS관리가 필요하지 않아 보안 패치나 업데이트 관리가 필요하지 않음

- Scale-up, Scale-out에 대한 조정관리가 필요 없음

- 요청에 따른 처리에 필요한 리소스의 사용료만 비용을 지불

 

구  분 내   용
서비스명 AWS Lambda
설명 서버에 대한 걱정 없이 코드 실행
사용한 컴퓨팅 시간에 대해서만 비용 지불
주요특징 기존코드 활용 가능
단순한 자원 모델을 가지며, 실행되는 메모리에 따라 CPU, N/W 자원 할당
여러 AWS서비스들과 통합되어 있으며, Event, Request 기반으로 실행 가능
자체 Editor, Zip 배포, Cloud9을 통해 개발 및 배포 가능
CloudWatch, X-ray를 통해 요청 수, 에러 수, 처리 시간, 처리량 모니터링 가능
AWS IAM Role을 사용한 권한 관리와 AWS 이벤트 소스의 자원 정책 적용
프리티어 월 1백만 건 무료 요청과 월 400,000초 컴퓨팅 시간
프리티어는 12개월 이후에도 종료되지 않으며, AWS 고객에게 무기한 제공

 

 

AWS Lambda 서비스 동작 방식

1) 이벤트소스로부터 함수 실행에 대한 트리거가 발생

2) Lambda 함수를 다양한 런타임과 라이브러리를 활용하여 개발(웹 기반의 전용 Editor에서 직접 개발 하거나 함수 실행에 필요한 메모리량, 실행 시간, 동시성 구성, 환경 변수설정 등 수행)

3) AWS의 다양한 리소스에 접근 가능하도록 권한을 설정

4) AWS 서비스와 연결 및 연동을 통해 다양한 서비스를 개발하거나 구현(서버리스 서비스 실행 또는 AI기반 서비스 및 API를 제공하여 다양한 비지니스 시나리오를 활용하여 구현가능)

 

 

AWS Lambda 기대효과

구분 내용
완전 관리형 서비스 가용성이 뛰어나며, 내결함성을 갖춘 인프라에서 코드 실행
OS 패치나 사용량 증가에 따른 서버 증설 및 관리 불필요
코드를 원활하게 배포하고 내장된 로깅 및 모니터링 기능 제공
기존 보유 코드 재활용 새로운 언어 및 도구, 프레임워크를 배울 필요 없음
기존 라이브러리 및 타사 도구 활용 가능
모든 코드나 라이브러리를 Layer로 만들어 손쉽게 공유 활용 가능
통합된 보안 모델 내장 SDK, IAM과 통합하여 코드가 안전하게 다른 서비스의 액세스 제공
기본적으로 VPC내부에서 코드가 실행되며, 리소스의 액세스 제어 가능
사용량 기반 지불 코드 실행에 필요한 컴퓨팅 시간 및 지원된 요청에 대해서만 비용 지불
100밀리초 단위로 청구 금액이 정산되기 때문에 비용 효율적인 서비스
높은 내결함성 각 리전의 여러 가용 영역의 컴퓨팅 파워를 활용하여 높은 내결함성
데이터센터나 시설에 장애가 발생되어도 코드에 대한 보호 기능
유지 관리 시간이나 예약된 가동 중단 시간 없음
자동 규모 조정 사용량 변화에 따라 고객이 관리할 필요 없으며, 자동으로 확장
하루 몇 개의 요청부터 1초당 수천 개의 요청까지 자동으로 쉽게 확장
이벤트 발생 빈도의 증가에 상관 없이 일관되게 높은 성능 유지

 

AWS Lambda의 서비스 모델

구분 서비스모델 구현 사례
Syncronous(Push) Amazon API Gateway와 연동으로 웹 애플리케이션을 통한 Request 수신 및 처리 결과에 대한 Feedback 제공(양방향) 웹 애플리케이션, 모바일 백엔드, IoT백엔드
Asynchronous(Event) Amazon SNS, Amazon S3 등의 이벤트 수신을 통해 트리거되어, 요청에 대한 처리 후 결과를 별도 저장 및 다른 서비스로 전송 처리 파일 또는 이미지 변환, 실시간 요청사항 처리, 타서비스 연동 및 전달
Stream-Base Amazon DynamoDB, Amazon Kinesis로부터 상태 변겨에 따른 트리거나 스트림베이스트의 요청에 따른 사항 처리 및 타서비스 연동 실시간 스트림 처리, 데이터 축출 및 변환 서비스

 

 

 

 

 

 

 

'cloud > AWS' 카테고리의 다른 글

AWS - 구성도 그리기 draw.io  (0) 2021.07.08
AWS - Direct Connect  (0) 2021.06.21
AWS - ElasticCache / Redis(Remote Dictionary Server)  (0) 2021.06.21
AWS - RDS(Relational Database Services)  (0) 2021.06.20
AWS- Amazon Auto Scaling  (0) 2021.06.18