Cloud & Platform
14강. Lambda
14강. Lambda 학습 내용을 정리한 백필 노트입니다.
이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.
목차
- Serverless
- Lambda
- (실습) Lambda 함수 생성 및 실행
- (실습) Lambda 함수 삭제
1. Serverless
Serverless 란?
- '서버가 없는 컴퓨팅'을 의미하지만, 실제로 서버가 없는 것이 아니라 **'(내가 관리할) 서버가 없다'**는 뜻입니다.
- 개발자가 서버에 대해 고려하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있도록 하는 컴퓨팅 모델입니다.
Serverless의 특징
- 서버 관리 부담 없음: 개발자는 코드 작성에만 집중할 수 있습니다.
- 이벤트 기반 실행: HTTP 요청, 데이터베이스 변경, 파일 업로드 등 특정 이벤트가 발생했을 때 코드가 실행됩니다.
- 비용 효율적: 코드가 필요할 때만 실행되며, 실행된 시간에 대해서만 비용이 청구됩니다.
- 순간적 확장성: 요청량에 따라 자동으로 확장 및 축소됩니다.
- 작은 코드 단위: 기능별로 작은 코드 단위(함수)로 개발합니다.
- 다양한 클라우드 서비스와 통합: 데이터베이스, 스토리지, 메시징, AI 등 다른 서비스와 쉽게 연동할 수 있습니다.
2. Lambda
AWS Lambda란?
- AWS에서 제공하는 대표적인 서버리스 컴퓨팅 서비스입니다.
AWS Lambda의 특징
- 서버리스 컴퓨팅: 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다.
- 이벤트 기반 실행: S3, DynamoDB, API Gateway 등 다양한 AWS 서비스나 다른 소스로부터의 이벤트에 의해 코드가 트리거됩니다.
- 다양한 프로그래밍 언어 지원: 여러 프로그래밍 언어를 지원하며 코드 버전 관리도 가능합니다.
- 자동 확장: 요청 수에 맞춰 자동으로 컴퓨팅 파워를 확장합니다.
- 비용 모델: 코드 실행 시간에 따라 초 단위로 비용이 청구됩니다.
- AWS 서비스와 쉬운 통합: S3, DynamoDB, SNS, API Gateway, CloudWatch 등 다른 AWS 서비스와 긴밀하게 통합됩니다.
- 권한 관리: 실행 역할(Role)을 통해 함수가 다른 AWS 서비스에 접근할 수 있는 권한을 세밀하게 관리할 수 있습니다.
3. 실습
(실습) Lambda 함수 생성 및 실행
- Lambda 서비스 접속: AWS 콘솔에서 'Lambda'를 검색하여 서비스 페이지로 이동합니다.
- 함수 생성: '함수 생성' 버튼을 클릭합니다.
- 생성 옵션 선택: '블루프린트 사용'을 선택하고 'hello-world-function'을 검색하여 선택합니다.
- 기본 정보 입력:
- 함수 이름: 원하는 함수 이름을 입력합니다 (예:
myFunction). - 런타임: 코드 실행 환경을 선택합니다 (예:
Node.js 18.x). - 아키텍처:
x86_64또는arm64를 선택합니다.
- 함수 이름: 원하는 함수 이름을 입력합니다 (예:
- 권한 설정: '기본 Lambda 권한을 가진 새 역할 생성'을 선택하여 함수가 CloudWatch Logs에 로그를 기록할 수 있도록 기본 권한을 부여합니다.
- 함수 생성 완료: '함수 생성' 버튼을 클릭하면 함수가 생성되고 코드 소스 및 기본 구성을 확인할 수 있습니다.
- 테스트 이벤트 구성:
- 'Test' 탭을 선택하고 새 테스트 이벤트를 생성합니다.
- 이벤트 이름: 테스트 이벤트의 이름을 지정합니다 (예:
MyEvent). - 템플릿: 'hello-world' 템플릿을 선택하면 샘플 JSON 데이터가 자동으로 채워집니다.
- '저장' 버튼을 눌러 이벤트를 저장합니다.
- 테스트 실행 및 결과 확인:
- 다시 'Test' 버튼을 클릭하여 함수를 실행합니다.
- 실행 결과 탭에서 응답(Response), 함수 로그(Function Logs), 그리고 **요약 정보(Duration, Memory Size 등)**를 확인할 수 있습니다.
(실습) Lambda 함수 삭제
- 삭제하려는 Lambda 함수 페이지의 우측 상단에 있는 '작업(Actions)' 드롭다운 메뉴를 클릭합니다.
- *'함수 삭제(Delete function)'**를 선택합니다.
- 삭제 확인 창이 나타나면 내용을 확인하고 '삭제(Delete)' 버튼을 클릭하여 함수를 영구적으로 삭제합니다.
- 함수 코드는 제거되지만, 관련된 로그나 역할 등은 계정에 보관될 수 있습니다.
4. 요약
- Serverless: 서버 관리에 대한 부담 없이 애플리케이션을 구축하고 실행할 수 있게 하는 컴퓨팅 패러다임입니다.
- AWS Lambda: AWS의 서버리스 컴퓨팅 서비스로, 이벤트 기반 실행, 자동 확장, 실행 시간에 따른 비용 청구, 다른 AWS 서비스와의 쉬운 통합 등의 특징을 가집니다.