반응형
개요
- AWS Lambda와 서버리스(Serverless) 아키텍처는 클라우드 컴퓨팅 환경에서 중요한 개념으로 인식되고 있음
- 이러한 개념들은 애플리케이션의 확장성, 유지 보수, 그리고 운영에 큰 이점을 제공하고 더 높은 수준의 추상화에서 작업할 수 있게 해주는 역할을 함
728x90
Serverless
- 정의:
- 서버 관리와 운영을 최소화하며, 애플리케이션 개발에 집중할 수 있게 해주는 클라우드 네이티브 개발 모델
- 백엔드 서비스를 완전히 관리하는 서드파티 서비스를 활용하며, 개발자는 코드 작성에만 집중할 수 있음
- 특징:
- 자동 프로비저닝 및 자동 확장: 서버리스 플랫폼은 자동으로 리소스를 프로비저닝하고 확장
- 이벤트 기반: 대부분의 서버리스 애플리케이션은 이벤트에 응답하여 작동
- 마이크로 서비스 구조: 서버리스는 작고 독립적인 기능을 가진 마이크로서비스를 쉽게 구축하고 배포할 수 있게 도와줌
- 사용 사례:
- 실시간 데이터 처리, 실시간 분석, 백엔드 API, 자동화된 작업 및 워크플로우 등에 활용할 수 있음
AWS Lambda
- 정의:
- AWS Lambda는 이벤트에 응답하여 코드를 자동으로 실행하는 컴퓨팅 서비스
- 이 서비스는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있게 해줌
- 특징:
- 이벤트 기반: AWS Lambda는 다양한 이벤트 소스로부터 이벤트를 받아 처리할 수 있음.
- ex) S3 버킷에 파일이 업로드 되면, Lambda 함수를 트리거하여 파일을 핸들링할 수 있음
- ex) DynamoDB의 특정 필드가 True로 바뀌면, Lambda 함수를 트리거하여 유저에게 알림을 줄 수 있음
- 자동 확장: 트래픽이 증가하면 Lambda는 자동으로 확장하여 이를 처리할 수 있음
- 상태 없음(Stateless): 각 Lambda 호출은 독립적으로 처리되며, 상태 정보는 외부 데이터베이스(RDS, Dynamo 등)나 스토리지 시스템(S3 등)에 저장해야 함
- 바인딩된 자원: Lambda 함수는 메모리, 실행 시간, 그리고 동시 실행 수 등의 자원을 미리 정의해야 함
- 이벤트 기반: AWS Lambda는 다양한 이벤트 소스로부터 이벤트를 받아 처리할 수 있음.
- 자원 제한:
- 디스크 공간 : 임시 디스크 공간(ephemeral)은 512MB로 제한
- 배포 패키지 크기 : 기본 배포 패키지 크기는 50MB로 제한
- 메모리 범위: 할당할 수 있는 메모리 범위는 128MB에서 10,240MB까지이며, 메모리는 64MB 증분으로 설정 가능
- 실행 시간 제한 : 함수의 최대 실행 시간 제한은 15분
- 요청 제한 : 동기 호출의 요청 및 응답 본문 페이로드 크기는 최대 6MB, 비동기 호출은 128KB로 제한됨
- 계산 리소스 : 선택한 메모리 양에 따라 비례하여 CPU 파워와 기타 리소스가 할당됨
- 사용 사례:
- 실시간 파일 처리 : Amazon S3 버킷에 새로운 파일이 업로드되면 AWS Lambda 함수를 트리거하여 파일을 자동으로 처리할 수 있음
- 이미지 파일이 업로드되면 Lambda 함수를 사용하여 이미지를 자동으로 리사이징, 최적화 또는 변환할 수 있음
- 로그 분석 : AWS Lambda를 사용하여 실시간 로그 분석을 수행할 수 있음
- AWS CloudTrail 이벤트를 분석하여 이상 행동이나 보안 위반을 식별하고 알림을 보낼 수 있음
- 백엔드 API : AWS Lambda와 API Gateway를 함께 사용하여 서버리스 백엔드 API를 구축할 수 있음
- 사용자 요청을 처리하고, 데이터를 검색하거나 수정하고, 다양한 백엔드 서비스와 통신할 수 있음
- 실시간 파일 처리 : Amazon S3 버킷에 새로운 파일이 업로드되면 AWS Lambda 함수를 트리거하여 파일을 자동으로 처리할 수 있음
SMALL
반응형