Taeyoung Kim

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 함수 생성 및 실행

  1. Lambda 서비스 접속: AWS 콘솔에서 'Lambda'를 검색하여 서비스 페이지로 이동합니다.
  2. 함수 생성: '함수 생성' 버튼을 클릭합니다.
  3. 생성 옵션 선택: '블루프린트 사용'을 선택하고 'hello-world-function'을 검색하여 선택합니다.
  4. 기본 정보 입력:
    • 함수 이름: 원하는 함수 이름을 입력합니다 (예: myFunction).
    • 런타임: 코드 실행 환경을 선택합니다 (예: Node.js 18.x).
    • 아키텍처: x86_64 또는 arm64를 선택합니다.
  5. 권한 설정: '기본 Lambda 권한을 가진 새 역할 생성'을 선택하여 함수가 CloudWatch Logs에 로그를 기록할 수 있도록 기본 권한을 부여합니다.
  6. 함수 생성 완료: '함수 생성' 버튼을 클릭하면 함수가 생성되고 코드 소스 및 기본 구성을 확인할 수 있습니다.
  7. 테스트 이벤트 구성:
    • 'Test' 탭을 선택하고 새 테스트 이벤트를 생성합니다.
    • 이벤트 이름: 테스트 이벤트의 이름을 지정합니다 (예: MyEvent).
    • 템플릿: 'hello-world' 템플릿을 선택하면 샘플 JSON 데이터가 자동으로 채워집니다.
    • '저장' 버튼을 눌러 이벤트를 저장합니다.
  8. 테스트 실행 및 결과 확인:
    • 다시 'Test' 버튼을 클릭하여 함수를 실행합니다.
    • 실행 결과 탭에서 응답(Response), 함수 로그(Function Logs), 그리고 **요약 정보(Duration, Memory Size 등)**를 확인할 수 있습니다.

(실습) Lambda 함수 삭제

  1. 삭제하려는 Lambda 함수 페이지의 우측 상단에 있는 '작업(Actions)' 드롭다운 메뉴를 클릭합니다.
  2. *'함수 삭제(Delete function)'**를 선택합니다.
  3. 삭제 확인 창이 나타나면 내용을 확인하고 '삭제(Delete)' 버튼을 클릭하여 함수를 영구적으로 삭제합니다.
    • 함수 코드는 제거되지만, 관련된 로그나 역할 등은 계정에 보관될 수 있습니다.

4. 요약

  • Serverless: 서버 관리에 대한 부담 없이 애플리케이션을 구축하고 실행할 수 있게 하는 컴퓨팅 패러다임입니다.
  • AWS Lambda: AWS의 서버리스 컴퓨팅 서비스로, 이벤트 기반 실행, 자동 확장, 실행 시간에 따른 비용 청구, 다른 AWS 서비스와의 쉬운 통합 등의 특징을 가집니다.