컴퓨터과학과

서버 없는 서버, AWS Lambda

공부하는노년 2025. 5. 18. 14:49
반응형

 

서버 없는 서버, AWS Lambda

1. Lambda란 무엇인가?

AWS Lambda는 개발자가 애플리케이션을 구성할 때, 서버를 직접 설정하거나 유지보수하지 않고 필요한 순간에만 코드를 실행할 수 있게 해주는 완전관리형 서버리스 컴퓨팅 서비스입니다.

전통적인 서버 기반 환경에서는 EC2 같은 인스턴스를 실행하고, 그 위에 웹서버를 설치하고, 백그라운드에서 코드를 지속적으로 실행해야 했습니다. 그러나 Lambda는 서버 자체를 신경 쓸 필요가 없습니다.

  • 개발자는 함수(Function)만 작성하면 됨
  • AWS가 서버 실행, 리소스 할당, 코드 실행, 종료까지 모두 관리
  • 이벤트 기반 구조로 필요할 때만 실행됨


2. 주요 특징

■ 서버리스 (Serverless)

  • 사용자는 인프라를 구축하지 않음
  • 코드만 업로드하면 자동 실행

■ 이벤트 기반 실행

  • 파일 업로드(S3), HTTP 요청(API Gateway), DB 변화(DynamoDB), 스케줄(CloudWatch Event) 등 다양한 이벤트로 실행 가능

■ 초 단위 과금

  • 코드 실행 시간(밀리초 단위)과 리소스 사용량에 따라 과금
  • 미사용 시 비용 없음
  • 프리 티어: 월 100만 회 호출 및 40만 GB-초 제공

■ 다양한 언어 지원

  • Python, Node.js, Java, Go, C#, Ruby 등

■ 확장성과 고가용성

  • 자동 확장: 요청이 많아지면 동시에 수백~수천 건도 처리 가능
  • 멀티 AZ에서 자동 배포되어 장애에도 안정적

3. 동작 원리

Lambda는 다음과 같은 구조로 작동합니다.

[이벤트 발생] → [Lambda 함수 실행] → [결과 처리]

예를 들어:

  • 사용자가 이미지 파일을 S3 버킷에 업로드하면
  • Lambda 함수가 자동으로 트리거 되어
  • 해당 이미지를 리사이징 하거나 썸네일 생성 작업을 수행함

■ 트리거 예시

이벤트 소스 설명
Amazon S3 파일 업로드/삭제 시 자동 실행
API Gateway HTTP 요청 처리
DynamoDB 테이블 변경 감지
CloudWatch Events 정해진 스케줄(크론처럼) 실행
SNS, SQS 메시지 수신 시 실행

4. Lambda와 EC2 비교

항목 AWS Lambda   Amazon EC2
서버 관리 불필요 직접 관리 필요
비용 사용한 만큼 과금 시간 단위 과금
실행 방식 이벤트 기반 함수 실행 지속적으로 동작하는 서버
확장성 자동 확장 수동 확장 또는 Auto Scaling 설정
시작 시간 수 밀리초 (단, 콜드 스타트 존재) 수 분 이상 소요될 수 있음
용도 짧고 가벼운 작업 장시간 복잡한 작업

5. 활용 사례

✅ 웹 백엔드 처리

  • API Gateway와 연결하여 REST API 구성
  • DB 연동, 사용자 인증 처리

✅ 실시간 파일 처리

  • 이미지 업로드 후 자동 압축/리사이징
  • 로그 파일 분석 및 전송

✅ 자동화/스케줄링 작업

  • 매일 새벽 2시 백업 실행
  • 주간 이메일 리포트 자동 발송

✅ 머신러닝 전처리

  • 실시간 데이터 필터링, 라벨링
  • 모델 추론(소규모)

6. Lambda와 잘 어울리는 서비스

서비스 연동 이유
Amazon S3 파일 업로드 트리거
API Gateway 웹 API 호출 트리거
DynamoDB DB 변경 감지
CloudWatch Logs 로그 분석 및 모니터링
SNS, SQS 메시지 기반 비동기 처리

7. 마무리

AWS Lambda는 “서버 없이도 서버처럼” 작동하는 혁신적인 컴퓨팅 서비스입니다. 단순한 자동화부터, 대규모 분산 처리, API 백엔드, 실시간 이벤트 처리까지 매우 폭넓게 활용될 수 있습니다.

 

서버를 설정하고 유지하는 수고를 줄이고 싶다면, Lambda는 매우 강력한 선택지입니다.
클라우드 시대에 어울리는 개발 방식이자, 효율과 비용을 동시에 잡을 수 있는 기술입니다.