AWS Lambda 는 Serverless Computing Service 이다.
💡 Serverless Computing Service 애플리케이션을 실행하는 데 있어 별도의 서버 세팅없이 곧바로 코드를 실행해주는 서비스를 의미한다.EC2 인스턴스는 초 단위로 비용을 계산하는 반면 Lambda 는 1ms 당 요금을 정확히 계산하여 사용한만큼 비용이 발생한다.
이러한 서비스 유형을 FaaS(Function as a Server) 라고 부른다.
Lambda 는 C#, Powershell, Go, Java, NodeJS, Python, Ruby 를 공식적으로 지원하며, 공식 런타임이 없더라도 커스텀 런타임을 통해 지원하지 않는 언어를 사용할 수 있도록 확장할 수 있다.
또한 리눅스에서 실행가능한 임의의 바이너리를 포함하여 실행도 가능하다.
람다는 특정 이벤트를 기반으로 요청받은 즉시 실행된다.
API 게이트웨이나 로드밸런서가 받은 요청을 기반으로 실행할 수도 있으며, AWS의 다양한 서비스와 연동할 수 있다.
람다를 활용하는 몇 가지 유용한 사례를 레퍼런스로 남긴다.
AWS API Gateway 와 Lambda 를 활용하여 Serverless REST API 환경을 구축할 수 있습니다.
Lambda 프록시 통합을 사용하여 Hello World REST API 빌드
Serverless Framework 를 활용하여 200만뷰 트래픽 처리를 적은 비용으로 처리합니다.
300원에 200만뷰 소화하기 – 서버리스 아키텍처 AWS 람다(Lambda) 활용 사례
[AWS] 📚 람다(Lambda) 개념 & 사용법 💯 총정리
AWS Lambda 제대로 활용하기 – 모범 사례 소개
AWS Lambda 처럼 Serveless Computing 자원을 적절하게 활용하면 기존에 운영해오던 항시 운영(Warm Start) 서비스와 대비해 비교할 수 없을 정도로 효율적인 서비스 운영을 진행할 수 있다.
하지만 이러한 운영방식은 Stateless, Cold Start 와 같은 서버리스의 특징(단점이라 하기엔 조금 뭣하다..) 을 고려하여 설계해야하며 처음부터 염두해두고 설계하기엔 개인적으로 애매한 부분이 있는거 같다. ( 경험부족도 동반하여..)
앞으로 자기개발을 위한 프로젝트를 진행할 때 FaaS 를 활용할 수 없는 지 염두해두고 특정 도메인을 교체해보는 시도는 개발자 경험과 성장에 있어서 꽤나 중요한 포인트가 될 것 같다.
그럼 글을 마치며…
람다썬더!