AWS a to z - Serverless

NTbell·2025년 2월 21일
0

⚡ Serverless란?

  • 서버 관리를 거의 하지 않는 방식 (서버를 직접 띄울 필요 없음, 서버 메트릭 관리 불필요, 용량과 세팅을 유연하게 조절 가능)
  • 코드만 배포하면 실행됨 → 즉, 함수를 배포하는 개념
  • Lambda → 익명 함수로, 어떤 코드든 실행할 수 있기 때문에 '람다'라고 명명됨
  • Serverless = FaaS(Function as a Service)
  • 서버가 없는 것이 아니라 관리하지 않고 프로비저닝하지 않는 것

🌐 Serverless 서비스 종류 (AWS)

서비스설명
🖥️ AWS Lambda가상 함수 실행, 서버 관리 불필요
📦 DynamoDBNoSQL 기반의 완전 관리형 데이터베이스
🔐 AWS Cognito사용자 인증 및 관리 서비스
🌍 AWS API GatewayAPI 요청을 처리하고 관리하는 서비스
📂 Amazon S3객체 스토리지 서비스
📩 AWS SNS & SQS메시징 및 이벤트 서비스
📊 AWS Kinesis Data Firehose실시간 데이터 스트리밍 서비스
🔄 Aurora Serverless자동 확장되는 관계형 데이터베이스
🔗 Step Functions서버리스 워크플로우 관리
🐳 AWS Fargate컨테이너 기반 서버리스 서비스

⚙️ AWS Lambda

  • 가상 함수로 서버를 관리할 필요 없음
  • 요청 시에만 실행되므로 비용 절감 가능
  • 자동 확장 지원
  • 짧은 수행 시간을 가짐 → 긴 작업이나 높은 성능이 필요한 경우 적절하지 않음

Lambda를 사용하는 이유

  • 💰 쉬운 과금 체계 → 요청 수와 컴퓨팅 시간 기반 과금
    • Free Tier: 100만 요청 & 40만 GB 연산 시간 무료
  • 🔗 AWS 서비스들과 연동 용이
  • 📌 다양한 언어 지원 (Node.js, Python, Java, C#, Go 등)
  • 📊 CloudWatch 기반 모니터링 가능
  • 함수 단위로 리소스 할당 가능 (최대 10GB RAM)
  • 📈 RAM 증가 시 CPU와 네트워크도 자동 증가

📜 지원 언어

  • Node.js, Python, Java, C#, Go, Ruby, PowerShell 등
  • 사용자 정의 Runtime API 제공

🔗 주요 연동 서비스

서비스설명
🌐 API GatewayHTTP 요청을 Lambda로 전달
📊 Kinesis실시간 데이터 스트리밍
📦 DynamoDB서버리스 NoSQL 데이터베이스
📂 S3객체 스토리지 서비스
🌍 CloudFrontCDN 배포 및 캐싱
📊 CloudWatch로그 및 모니터링
📩 SNS/SQS메시징 서비스
🔐 Cognito사용자 인증 및 관리

💰 Lambda 요금

  • 📌 콜당 요금
    • 처음 100만 회 요청 무료
    • 이후 100만 회당 $0.20
  • ⏳ 수행 시간 요금
    • 월 40만 GB 수행 시간 무료
    • 메모리 사용량 * 수행 시간으로 계산됨
    • 60만 GB 당 $1

⚠️ Lambda의 제약 사항

⏳ 함수 실행 제한

  • 메모리: 128MB ~ 10GB
  • 최대 실행 시간: 15분 (이보다 긴 작업은 적절하지 않음)
  • 환경 변수 크기: 4KB
  • 함수 컨테이너의 디스크 용량: 512MB ~ 10GB
  • 동시 실행 제한: 기본 1000개 (별도 확장 가능)

📦 배포 제한

  • 함수 최대 크기: ZIP 기준 50MB
  • 압축되지 않은 크기: 250MB (소스 코드 + 라이브러리 포함)너무 무거운 애플리케이션은 Lambda에 적합하지 않음!
  • 실행 시 /tmp 디렉토리를 사용하여 추가 파일 로드 가능
  • 환경 변수 최대 크기: 4KB

⚡ Lambda SnapStart

  • Java 11 이상의 Lambda 성능을 10배 향상
  • 함수 초기화 후 메모리와 디스크 스냅샷 저장
  • 새 버전 배포 시 초기화 과정 필요
  • 기본적으로 초기화된 상태에서 대기

🌍 Edge Function - Edge 커스터마이징

  • CloudFront와 결합하여 사용자 가까운 곳에서 로직 실행
  • 서버리스 환경에서 전 세계에 서비스를 제공할 수 있음
  • CloudFront Functions & Lambda@Edge 두 가지 방식 제공
  • 사용한 만큼 비용 지불

🌎 Edge Function 사용 사례

  • 🔒 웹사이트 보안 & 개인정보 보호
  • 🌍 동적 웹사이트 엣지 운영
  • 🔍 검색 최적화
  • 🖼️ 실시간 이미지 변환
  • 🔄 A/B 테스트
  • 🔑 사용자 인증 & 권한 처리

RDS & Aurora에서 Lambda 호출

  • DB 이벤트를 기반으로 Lambda 트리거 가능
  • 지원되는 DB: PostgreSQL RDS, Aurora MySQL
  • Lambda 호출을 위해 DB의 Outbound 트래픽 허용 필요
    • 🌐 Public 접근 허용
    • 🔄 NAT Gateway 사용
    • 🔗 VPC Endpoint 설정
  • IAM 정책과 Lambda 리소스 기반 정책 필요
profile
최종빈의 컴퓨터교실

0개의 댓글

관련 채용 정보