AWS lambda에 대해 알아보았다【초학자용 비망록】

1880 단어 람다AppRunnerAWS

소개



프런트 엔드 학습에 최근 AWS Amplify를 사용하기 시작했습니다. 어쩌면 요즘 프런트 엔드 엔지니어는 AWS의 다양한 서비스에 대한 이해를 피할 수 없다는 점에서 먼저 AWS Lambda에 대해 알아 보았습니다. (2021년 5월 현재)

AWS Lambda



AWS Lambda는 서버리스로 코드 실행 환경을 제공하고 소스 코드를 배포하는 것만으로 프로그램을 실행하는 서비스가 됩니다. 프로그램과는 별도로 트리거를 하는 이벤트를 준비하고, 이벤트가 불릴 때마다 배포한 프로그램이 실행됩니다.

예를 들어, API Gateway에 요청이 있을 때 보낸 내용에 따라 외부 DB 서비스와 상호 작용하고 결과를 반환하는 REST API와 같은 동작을 수행하거나 DynamoDB 테이블이 업데이트될 때 처리 또는 S3 버킷에 이미지가 업로드될 때 이미지를 변경하는 처리를 하거나 다른 AWS 서비스와 연계하여 이용하는 것이 주된 사용법이 됩니다.

AWS Lambda의 동작의 특징으로는, 평상시는 정지 상태로 대기, 요구가 있을 때 기동해 동작을 개시합니다. 이 때문에 정지 상태로부터의 기동이 들어가는 경우는 응답에 약간의 시간을 필요로 합니다. 이것을 콜드 스타트라고합니다. 또 기동 후는 잠시 동안은 기동한 채로 대기 상태가 되기 때문에 곧바로 실행할 수 있습니다. 이것을 웜 스타트라고합니다.

이용 요금에 대해서도 실행수와 실행 처리 시간에 따라 과금되기 때문에 정지 상태일 때는 요금이 들지 않는 것도 큰 특징입니다.

또한 AWS Lambda에서는 주로 다음 언어를 지원하며 프런트 엔드와는 별도의 언어로 작성할 수 있습니다.
- Node.js
- 파이썬
- 자바
- 루비
- Go
- .Net Core

부하에 맞추어 스케일링도 자동적으로 행해 주기 때문에 부하가 높은 서비스에도 유연하게 대응하는 것이 가능합니다. 단지 계정 하나의 동시 실행수가 도쿄 리전에서의 초기치가 초간 1000이 되고 있어 복수의 Lambda 함수를 실행하고 있는 경우는 모두를 아울러 1000이 되므로 주의가 필요할지도 모릅니다.

심플한 처리를 하기 위해 일부러 서버 환경을 준비하지 않고 간편하게 구축할 수 있는, 요구량에 따라 스케일링을 자동적으로 행해 준다는 점이 최대의 이점이라고 생각합니다.

AWS App Runner와의 트릭



요 전날 AWS App Runner라는 새로운 서비스 제공이 발표되었습니다. 기존의 컨테이너 혹은 GitHub의 소스 코드로부터 배포할 수 있어, 아직 Node.js와 Python만을 지원하면서 도메인의 결부등 실시할 수 있어 보다 유연한 백엔드의 구축을 실시할 수 있을 것 같습니다.

상세한 이해가 아직 되어 있지 않습니다만, Amplify의 백엔드 가까이의 이미지가 될까요? ? Ruby 등도 지원되면 Rails 환경을 Heroku처럼 구축할 수 있을까? ?

서비스의 진화가 빨라 이해가 따라잡지 않습니다만, 일단 아래와 같이 워크숍으로부터 시험해 보려고 합니다.

관련 기사



참고 사이트



람다



App Runner

좋은 웹페이지 즐겨찾기