AWS Lambda

Serverless event-driven computing.

AWS Lambda는 Amazon Web Services(AWS)에서 제공하는 서버리스, 이벤트 기반 컴퓨팅 서비스입니다. 개발자는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다. 개발자는 코드를 Lambda 함수로 업로드하면 AWS가 해당 코드를 고가용성으로 실행하고 확장하는 데 필요한 인프라를 자동으로 처리합니다. 함수는 Amazon S3 버킷의 데이터 변경, Amazon DynamoDB 테이블 업데이트 또는 [API Gateway](/ko/terms/api-gateway) 요청과 같은 다양한 이벤트에 의해 트리거됩니다. 트리거가 발생하면 Lambda는 함수를 실행하여 필요한 컴퓨팅 리소스를 할당합니다. 요금은 요청 수와 실행 중 소비된 시간/메모리를 기준으로 하며, 넉넉한 무료 티어가 제공됩니다. 주요 기능에는 자동 확장, 상태 비저장 실행 환경(외부에서 상태 관리 가능), 여러 프로그래밍 언어(Node.js, Python, Java, C#, Go, Ruby, PowerShell 및 사용자 지정 런타임) 지원, 광범위한 AWS 서비스와의 통합이 포함됩니다. Lambda 함수는 일반적으로 수명이 짧으며 장기 실행 애플리케이션보다는 특정 작업을 위해 설계되었습니다. 단점으로는 잠재적인 콜드 스타트(함수가 최근에 호출되지 않은 경우 지연 시간), 실행 시간 제한, 메모리 및 임시 저장 공간 제한, AWS 생태계에 대한 벤더 종속성 등이 있습니다. 이벤트 처리, 마이크로서비스, 데이터 변환 및 백엔드 API에 이상적입니다.

        graph LR
  Center["AWS Lambda"]:::main
  Rel_api_gateway["api-gateway"]:::related -.-> Center
  click Rel_api_gateway "/terms/api-gateway"
  Rel_microservices["microservices"]:::related -.-> Center
  click Rel_microservices "/terms/microservices"
  Rel_serverless["serverless"]:::related -.-> Center
  click Rel_serverless "/terms/serverless"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 지식 테스트

1 / 4

🧒 5살도 이해할 수 있게 설명

AWS Lambda를 특정 요리(이벤트 발생)를 요청할 때만 요리하는 마법사 요리사라고 생각해보세요. 요리사에게 레시피(코드)를 주면, 즉시 적절한 도구를 사용하여 요리하고, 요리하는 데 걸린 시간만큼만 비용을 청구합니다.

🤓 Expert Deep Dive

AWS Lambda는 컨테이너 기반 실행 모델에서 작동합니다. 함수가 호출되면 Lambda는 마이크로 컨테이너를 프로비저닝하고 함수 코드를 로드한 다음 실행합니다. 자주 호출되지 않는 함수는 이 프로비저닝 단계에서 '콜드 스타트' 지연 시간이 발생합니다. 짧은 시간 내에 후속 호출은 기존 컨테이너('웜 스타트')를 재사용하여 지연 시간을 크게 줄입니다. Lambda 함수는 본질적으로 상태 비저장(stateless)이므로 필요한 모든 상태는 외부(예: DynamoDB, S3, RDS)에 영구 저장되어야 합니다. 동시성 모델을 통해 여러 함수 인스턴스를 병렬로 실행할 수 있으며, AWS가 계정 수준 동시성 제한까지 수요를 충족하도록 관리합니다. 프로비저닝된 동시성(Provisioned Concurrency)을 사용하면 지연 시간에 민감한 애플리케이션의 콜드 스타트를 완화하기 위해 지정된 수의 실행 환경을 따뜻하게 유지할 수 있습니다. 보안은 IAM 역할을 통해 관리되며, 함수에 다른 AWS 리소스에 액세스할 수 있는 세분화된 권한을 부여합니다. 이벤트 소스 매핑 메커니즘을 통해 Lambda는 Kinesis 스트림과 같은 이벤트 소스를 폴링하고 레코드 배치로 함수를 호출할 수 있습니다. 아키텍처 고려 사항에는 함수 메모리 할당 최적화(CPU 할당에도 영향), 종속성 관리, 잠재적 재시도로 인한 멱등성(idempotency) 설계가 포함됩니다.

📚 출처