AWS(Amazon Web Service)

[AWS] Lambda & Batch에 대하여 (+ Lightsail)

yunseohhe 2024. 9. 1. 12:26

Lambda

  • 서버가 필요하지 않고 가상 함수를 가지게 된다.(단, 시간의 제한을 받기 때문에  짧은 유형의 실행을 위한 것이다.)
  • 수요에 따라 실행한다.(= 반응형 서비스이다.)
  • 요청 당 및 컴퓨팅 시간당 비용을 지불하게 되는데 프리 티어도 넉넉하다.
  • 매달 백만 개의 Lambda호출과 40만 GB-초의 컴퓨팅 시간을 준다.(= 괜찮은 서비스를 Lambda에서 공짜로 실행할 수있다는 뜻이다.)
  • 전체 AWS 서비스와 통합이 된다. (단, 이벤트 기반이라는 점이다.)
  • 함수당 리소스를 가져오기 쉽다.
  • 함수당 10GB의 RAM을 사용할 수 있는데 RAM을 증가하면 CPU와 네트워크 품질 역시 개선되고 모든 것이 좋다.
  • 실제 도커 컨테이너를 Lambda에서 실행하게 해주지만 컨테이너 이미지를 반드시 Lambda 런타임 API에 구현되어야 한다.

가격

호출 기준

  • 요청마다 지불한다. 즉, 처음 백만 번의 Lambda 호출은 무료이다.
  • 이 이후에 백만 개의 요청당 0.20달러를 지불하게 된다.

기간 기준

  • 400,000GB-초의 컴퓨팅 시간이 무료로 제공된다.(즉, 함수가 1GB의 RAM을 갖는다면 400,000초이다.)
  • 이 이후로 600,000GB-초에 1달러를 지불한다.

 

 


 

Amazon API Gateway

  • 서버리스 HTTP API를 구축하는 사용 사례로 볼 수 있다.
  • 람다 함수는 API로 바로 노출을 못하고 API Gateway를 통해 노출해야 한다.
  • REST HTTP API를 클라이언트에게 제공하여 웹사이트에 직접 연결한다. → 그러면 클라이언트는 API Gateway에 통신한다.   API Gateway는 요청을 람다 함수에 프록시한다.(= 데이터 변환)  완전 관리 서비스에 사용되며 개발자가 클라우드에서 쉽게 만들고 유지, 모니터링하고 안전한 API를 사용하게 한다.   서버리스 기술로 완전히 스케일링 가능하다. 

(출처 : 구글 이미지)

 

 


AWS Batch

  • 완전 관리 배치 처리 서비스이다.
  • 어떤 규모에서도 배치 처리를 가능하게 한다.
  • 배치 작업은 "특정 시점"에 일어난다. 그리고 간단히 도커 이미지와 테스트 정의로 ECS 서비스에서 실행된다.
  • 동적으로 EC2 인스턴스 또는 Spot 인스턴스를 실행하여 해당 배치 작업을 실행하는 로드를 수용한다.
  • 배치는 배치 대기열처리에 적합한 양의 컴퓨팅과 메모리를 프로비저닝할 수 있다.
  • 자동으로 EC2 인스턴스 또는 Spot 인스턴스의 알맞은 개수로 스케일링 해주고 작업을 실행한다.
  • 비용을 최적화 할 수 있고 인프라에 덜 신경써도 된다. 즉, 배치 작업에만 집중할 수 있다.

(출처 : ccp 강의)

 

 

Batch vs Lambda

Batch

  • 시간 제약이 없다.
  • 런타임은 도커 이미지로 패키징 하기만 하면 원하는 만큼 가질 수 있다.
  • 스토리지의 경우, EC2 인스턴스의 스토리지에 의존한다. 람다 함수보다는 더 많다.
  • 관리 서비스이지만 EC2 인스턴스가 실제로 만들어져야 한다.

Lambda

  • 15분이라는 시간의 한계가 있다.
  • 몇 개의 프로그래밍 언어로만 접근할 수 있다.
  • 임시 디스크 용량이 제한되어 작업을 실행하기 원한다면 서버리스여야 한다.

 

cf ) 서버리스

  • 서버리스를 사용하면 기능을 서비스로 배포할 수 있다.
  • 서벌르 관리할 필요가 없다.
  • Lambda는 서버리스의 선구자이다.
  • 서버가 없다는 말이 아니다!!!

 

 


Amazon Lightsail

  • 독립 실행형 서비스이다.
  • 가상 서버 스토리지, 데이터베이스 및 네트워크를 한 곳에서 구축할 수 있다.
  • 가격이 저렴하고 예측 가능하다.
  • 클라우드 사용 경험이 거의 없고, 서비스의 복잡한 작동 방식을 익히고 싶지 않은 사람들을 위해 만들어진 서비스이다.
  • 네트워크 작동 방식이나 서버, 스토리지 작동 방식을 배우지 않고 서비스를 사용하는 것이다.
  • 고가용성 개념이 있지만 오토스케일링은 지원하지 않고 AWS에 제한적으로 통합된다.