AWS Lambda

come_true·2022년 4월 25일
0

스터디

목록 보기
8/10
post-thumbnail

📌 AWS Lambda

AWS가 제공하는 서버리스 FaaS 솔루션으로 함수의 인스턴스를 실행하여 이벤트 처리를 함

  • 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스
  • 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영체제 유지관리, 용량 프로비저닝 및 자동조정, 코드 및 보안 패치 배포, 코드 모니터링 및 로깅 등 모든 컴퓨팅 리소스 관리를 수행
➕ 서버리스 컴퓨팅 
애플리케이션을 실행하기 위해 별도의 서버 셋업 없이 곧바로 코드를 실행해주는 서비스

➕ 프로비저닝 
사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포 해두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해두는 것

✅ 언제 사용

코드를 계속 실행시키기보다는 특정한 시기에만 실행시키는 경우에 사용하면 유용

Lambda 함수는 호출당 최대 15분 동안 실행되므로 더 짧은 이벤트 기반 워크로드에 적합

ex) 서버를 띄우지 않고 간단한 코드를 실행시키고 싶을 때
특정 기간 또는 특정 주기로 코드를 실행시켜야 할 때
트리거가 실행될 때만 코드를 실행시키고 싶은 경우


✅ 특징

  • 필요시에만 코드를 실행하며 요청에 대해 자동으로 확장이 가능
  • 사용한 컴퓨팅 시간에 대해서만 요금을 지불하면 됨
  • 모든 유형의 어플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행할 수 있음

✅ 장점

  • 람다 함수를 실행하기 위해서 코드를 작성한 뒤 이벤트 트리거 만 정의하면 되고 높은 가용성을 제공함
  • 인프라에 대한 걱정 없이 코드 실행가능(NoOps 실현)
  • 트리거를 이용해 애플리케이션을 자동으로 확장/축소
  • 코드가 병렬로 실행되고 각 트리거는 개별적으로 처리되어 정확히 워크로드 규모에 맞게 조정됨
  • 100ms 단위로 코드가 실행되는 시간 및 코드가 트리거되는 회수를 측정하여 요금을 부과

✅ 단점

  • 서버 응답 시간
    - 계속해서 돌아가는 것이 아니라 요청이 올때 AWS가 Lambda를 깨우는데 시간을 사용하기 때문에 응답속도에 차이가 있음
    - 요청이 적을때는 의미가 없지만 요청이 많을 경우 차이가 나타남

  • AWS에 의존
    - 백엔드를 AWS Lambda에 배포했을 때 다른 곳으로 옮기고 싶을때 한 서버리스에서 다른쪽 서버리스로 마이그레이션 하는것이 어려움
    - EC2의 경우에는 실행되는 WAS 프로그램을 다른 클라우드 사업자의 컴퓨팅 리소스로 옮겨 실행하면 되지만 서버리스는 클라우드 사업자의 요구사항에 맞는 코드가 작성되어야함

  • 코드 용량이 작음
    - 용량이 최대 250MB

  • 처음 함수 호출 시 Cold Start를 하게되고 초기지연시간 발생


✅ AWS Lambda 함수

AWS Lambda에서 실행하는 코드는 Lambda 함수로 업로드 된다.
각 함수에는 이름과 설명, 진입점, 리소스 요구사항 등 구성정보가 포함되어 있다. 코드는 stateless 스타일로 작성되어야하는데 즉 기본 컴퓨팅 인프라에 대한 선호도가 없다고 가정해야합니다.


📑 References

0개의 댓글