AWS에서는 다양한 웹서비스 기술을 제공한다.
그중 하나 널리 알려져 있고, 실제 대기업에서도 많이 사용하고 있는 LAMBDA에 대해서 설명하고자 한다.
1. LAMBDA란
AWS Lambda는 Amazon Web Services(AWS)에서 제공하는 서버리스 컴퓨팅 서비스로, 사용자가 서버를 직접 관리하지 않고도 코드를 실행할 수 있도록 지원하는 서비스이다.
여기서 서버리스 컴퓨팅이란 사용자는 서버를 프로비저닝하거나 관리할 필요가 없다는 뜻이다.
즉, AWS Lambda는 사용자의 코드를 실행하기 위한 리소스를 자동으로 관리하고 제공한다고 생각하면 된다.
좀 더 자세히 예시를 들어보자면,
우리가 Spring boot로 API를 만들고 배포를 하게 된다면 EC2와 같은 서버에 올려둔 후, 인바운드 혹은 아웃 바운드 규칙을 설정해주어야 실제 작동이 된다. 이것이 우리가 흔히 사용하는 서버형 방식이다.
하지만 여기서 서버리스는 지금 위에 말한 과정을 직접 할 필요없이 서버를 프로비저닝하거나 관리할 필요가 없고 즉 코드만 람다 함수에 정의를 해주면 된다는 것이다.
2. 이벤트 기반 실행
그럼 LAMBDA가 실행되는 조건은 무엇일까
람다는 조금 쉽게 말해 하나의 API라고 생각을 할수도 있겠다. 하지만 기본 API(Appilcation Programming Interface)와는 조금 다른 점이 있다.
- Lambda 함수는 이벤트를 트리거로 실행된다.
- 예: S3 버킷에 파일 업로드, DynamoDB 테이블 업데이트, API Gateway 요청, CloudWatch 알람, SNS 메시지 등
- 함수가 호출되면 AWS Lambda가 실행 환경을 생성하고 코드를 실행합니다.
즉 기본적인 API Gateway요청 뿐만 아니라 S3에 업로드 되었을 때, 혹은 DB 테이블이 업데이트 되었을때 등 다양한 트리거로 작동할 수 있다.
이부분은 다른 포스팅에서 좀 더 자세하게 설명해보겠다.
3. 장점
LAMBDA에서는 대표적으로 아래와 같은 장점들이 있다.
- 비용 효율성: 사용한 만큼만 지불
- 신속한 개발: 서버 관리 부담 감소
- 유연성: 다양한 AWS 서비스와 통합 가능
- 안정성: AWS의 높은 가용성 및 내구성 활용
하지만 개인적으로 최대장점은 확장성이 유연하다는 점이다.
즉 자동 확장이 된다는 점인데 쉽게 말해서 EC2의 Auto Scaling Group을 지원해준다고 생각하면 된다.
자동확장에는 아래와 같은 기능을 지원해주는데 꼭 다양하게 사용해보았으면 좋겠다.
- AWS Lambda는 요청 수에 따라 자동으로 확장된다
- 요청이 많아지면 동시에 여러 인스턴스를 실행하고, 요청이 적을 때는 실행을 멈춤.
여기까지가 간단하게 LAMBDA의 개념에 대해서 설명하였고 다음 포스팅 부터는 내가 실제로 LAMBDA를 메인으로 활용하여 진행한 프로젝트를 설명해보도록 하겠다.
'AWS' 카테고리의 다른 글
AWS Storage: EC2-EBS와 EFS (0) | 2025.01.22 |
---|---|
AWS CLOUD: EC2와 EC2 Purchasing Option (0) | 2025.01.20 |
AWS: AWS Identity & AccessManagement (AWS IAM)란 (0) | 2025.01.08 |
AWS CLOUD: LAMBDA 활용2 (0) | 2024.12.30 |
AWS CLOUD: LAMBDA 활용1 (3) | 2024.12.30 |