AWS 노트

AWS Lambda

Jonchann 2020. 4. 3. 18:34

Lamda

  • 서버의 프로비저닝(Provisioning)[각주:1]이나 별도의 서버 관리 불필요
    • 어떠한 어플리케이션 / 백엔드도 코드를 Lambda에 업로드하면 서버를 관리하지 않고 바로 실행 가능
      • 관리1: 서버 및 운영 체제 유지 관리
      • 관리2: 용량 프로비저닝 및 자동 조정
      • 관리3: 코드 및 보안 패치 배포
      • 관리4: 코드 모니터링 및 로깅
    • 고가용성을 위한 스케일링 혹은 실행을 위한 모든 것은 Lambda가 해줌
    • 다른 AWS 서비스에서 자동적으로 코드를 트리거하도록 설정 가능
    • 웹 또는 모바일 어플에서 직접 호출하도록 설정 가능
    • 대신 제공된 런타임에서 인스턴스를 컴퓨팅하거나 운영체제를 사용자가 지정하는 일은 불가능
      • 자체 컴퓨팅 리소스를 관리하고 싶다면 EC2나 Elastic Beanstalk을 추천
  • 컴퓨팅(계산 처리)하는 시간에만 요금 발생
  • 하루에 리퀘스트를 초당 수천 개 까지도 확장 가능
  • Lambda에서 사용할 수 있는 언어
  • 사용자는 본인 코드에 대해서만 책임을 가짐

Lambda를 사용할 수 있는 경우

  • 트리거 빌드
    • S3 버킷 또는 Amazon DynamoDB 테이블 데이터 변경에 대한 응답 코드
    • Amazon API Gateway를 사용해 HTTP 요청에 대한 응답 코드
    • AWS SDK로 만든 API로 코드 호출
  • Kinesis에 저장된 스트리밍 데이터 처리
  • AWS 규모, 성능, 보안에 따라 작동하는 자체 백엔드 생성
  • 서버리스 어플리케이션 빌드(Lambda Application)
    • Lambda 함수, 이벤트 소스 등의 리소스 조합
    • AWS CloudFormation 및 기타 도구를 사용해 어플리케이션의 구성 요소를 하나의 자원으로 배포, 관리 가능한 단일 패키지로 수집 가능
      • 자원을 정의하는 템플릿 생성
      • 어플리케이션을 스택으로 관리 가능
        • 더 안전하게 리소스 추가 또는 수정 가능
      • 한 부분이라도 업데이트 실패하면 이전 구성으로 자동 롤백
      • 동일한 템플릿에서 여러 환경 생성 가능
    • AWS CodePipeline, AWS CodeBuild, AWS ServerlessApplicationModel command(SAM CLI) 등과 같은 추가 개발자 도구와도 통합 가능
      • AWS SAM(Serverless Application Model)은 Lambda 어플리케이션 개발에 초점 맞춰 간소화된 구문으로 AWS CloudFormation 확장
      • SAM CLI: AWS SAM 어플리케이션을 관리, 테스트할 때 사용 가능한 별도의 command
    • AWS Serverless Application Repository로 간편하게 배포 가능한 Lambda 어플리케이션 모음 제공
  1. 사용자의 요구에 맞게 시스템 자원을 할당 배치 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것 [본문으로]

'AWS 노트' 카테고리의 다른 글

AWS Lambda Python 실행기 (2)  (0) 2020.04.06
AWS Lambda Python 실행기 (1)  (0) 2020.04.03
AWS IAM  (0) 2020.04.03
AWS EC2, CLI  (0) 2020.04.03
AWS 인스턴스, AMI  (0) 2020.04.03