AWS Lambda

Purple·2022년 4월 8일
0

DevOps

목록 보기
4/5

AWS Lambda

  • AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행하는 서버리스** 컴퓨팅 서비스이다.Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 코드 모니터링 및 로깅 등 모든 컴퓨팅 리소스 관리를 수행한다. Lambda를 사용하면 거의 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있다.
  • EC2에서는 컴퓨터 한대를 인스턴스라고 부른다. S3에서는 버킷이라고 한다. Lambda에서는 함수라고 부른다. Lambda는 함수를 실행하는 컴퓨터이기 때문이다.
  • AWS Lambda 에서 실행하는 코드는 'Lambda함수'로 업로드 된다. 각 함수에는 이름과 설명, 진입점, 리소스 요구 사항 등 연관된 구성 정보가 포함되어 있다.
  • 코드는 '상태 비저장' 스타일로 작성되어야 한다. 즉, 기본 컴퓨팅 인프라에 대한 선호도가 없다고 가정해야 한다. 로컬 파일 시스템 액세스, 하위 프로세스 및 유사한 아티팩트는 요청 수명 기간 이상 확장될 수 없으며 모든 지속 상태는 Amazon S3, DynamoDB, EFS*** 또는 다른 인터넷 사용 스토리지 서비스에 저장되어야 한다.
    • 상태 비저장이어야 하는 이유는 AWS Lambda에서 필요한 만큼 함수 사본을 빠르게 시작하여 수신 이벤트 비율에 따라 조정할 수 있기 때문이다. AWS Lambda의 프로그래밍 모델은 상태 비저장이지만 코드에서 S3, DynamoDB 등 다른 웹 서비스를 호출하면 상태 저장 데이터에 액세스 할 수 있다.

Lambda의 단점

  • ☝🏻 1. 24시간 내내 돌아가고 있는 상태가 아니고 요청이 들어올 때 AWS가 Lambda를 깨우는데 시간을 사용하기 때문에 응답의 속도에 차이가 있다.
  • ✌🏻 2. 서버 제공자에게 너무 의지하게 된다. 백엔드를 AWS Lambda에 배포했을 때 다른 곳으로 옮기고 싶을 때, 한 서버리스에서 다른 쪽 서버리스로 마이크레이팅 하는 것이 쉽지 않기 때문이다. EC2와 같이 AWS 서버를 빌려 사용하다가 구글 클라우드로 서버가 있을때는 마이그레이션이 비교적 쉽지만 서버리스는 어렵다.

**서버리스

  • 서버가 존재하지 않는 것이 아니라, 관리할 필요가 없는 것
  • 추상화된 서버라고 생각하면 좋다.
  • 애플리케이션을 빌드하거나 실행할 수 있는 클라우드 네이티브 개발 모델이다.
  • 애플리케이션의 스케일링을 클라우드 제공 업체가 관리해준다.가용성을 제공하기 위해 수평확장된 서버가 요청을 대신 수행하는 것이 가능하다.

***Elastic File System

  • 파일을 추가하고 제거할 때 자동으로 확장되고 축소되며 관리 또는 프로비저닝이 필요없다.
profile
다시 보면, 더 많은 것들이 보인다.

0개의 댓글