AWS Lambda는 서버리스 아키텍처를 구현하는 데 있어 매우 중요한 역할을 합니다.
AWS Lambda는 코드 실행에 필요한 인프라를 관리하므로, 개발자는 애플리케이션 코드에만 집중할 수 있습니다.
또한, AWS Lambda는 이벤트 트리거에 의해 호출되므로, 이벤트가 발생할 때마다 즉각적으로 실행됩니다.
AWS Lambda를 이용하면 서버 운영 및 관리에 대한 부담을 줄이면서도 확장성과 유연성을 확보할 수 있습니다.
이러한 AWS Lambda의 장점을 활용하여 다양한 애플리케이션을 구현할 수 있습니다.
이 블로그에서는 AWS Lambda의 개요, 함수 작성, 함수 배포, 함수 실행과 동시성 제어, AWS Lambda와의 연동, AWS Lambda 보안 등 다양한 주제를 다룰 예정입니다.
https://tobelinuxer.tistory.com/49
더불어 이전 포스트들에서 deploy한 결과가 어떻게 Lambda에 반영 됬는지도 함께 다루겠습니다.
아래와 같은 순서로 진행될 예정이며, 이 페이지에서는 1. 개요, 2. 함수 작성 을 다루도록 하겠습니다.
1. 개요
- AWS Lambda란?
- AWS Lambda의 특징
- AWS Lambda의 장점
2. 함수 작성
- 함수 코드 작성 방법
- 함수의 이벤트 트리거 설정
- 환경 변수 설정
- 실행 역할 설정
- 메모리 할당량과 실행 시간 제한 설정
- VPC 구성 설정
3. 함수 배포
- AWS Lambda 콘솔을 이용한 배포 방법
- AWS CLI를 이용한 배포 방법
- 함수 버전과 별칭
4. 함수 실행과 동시성 제어
- 함수 실행 방법
- 함수의 동시성 제어 방법
- 함수 실행 시간과 비용
5. AWS Lambda와의 연동
- S3 버킷과의 연동
- API Gateway와의 연동
- Amazon DynamoDB와의 연동
- AWS Step Functions와의 연동
6. AWS Lambda 보안
- 실행 역할을 이용한 권한 설정
- 환경 변수를 이용한 비밀 정보 관리
- AWS Key Management Service와의 연동
1. 개요
1.1 AWS Lambda란?
AWS Lambda는 Amazon Web Services(이하 AWS)에서 제공하는 서버리스 컴퓨팅 서비스입니다.
AWS Lambda를 이용하면 개발자는 서버 구성, 프로비저닝, 관리 등에 대한 부담을 덜 수 있으며, 단순히 함수 코드만 작성하고 배포함으로써 애플리케이션을 구현할 수 있습니다.
1.2 AWS Lambda의 특징
AWS Lambda는 다음과 같은 특징을 가지고 있습니다.
1. 서버리스 아키텍처
AWS Lambda는 개발자가 서버 인프라를 관리하지 않아도 됩니다.
따라서 개발자는 함수 코드 작성에만 집중할 수 있으며, AWS Lambda가 나머지 인프라를 관리합니다.
2. 이벤트 기반 아키텍처
AWS Lambda는 이벤트 트리거에 의해 함수가 호출됩니다.
이벤트 트리거는 AWS 서비스간의 이벤트, HTTP 요청, 스케줄러 등 다양한 방법으로 발생할 수 있습니다.
3. 높은 확장성
AWS Lambda는 자동으로 확장됩니다.
함수가 높은 부하를 갖게 될 경우, AWS Lambda는 자동으로 함수 인스턴스를 추가하여 부하를 분산합니다.
4. 다양한 프로그래밍 언어 지원
AWS Lambda는 Node.js, Python, Java, C#, Go, Ruby 등 다양한 프로그래밍 언어를 지원합니다.
5. 비용 효율성
AWS Lambda는 사용한 시간만큼 비용을 지불합니다. 따라서 함수 실행 시간이 짧을수록 비용이 적게 듭니다.
1.2 AWS Lambda의 장점
AWS Lambda는 다음과 같은 장점을 가지고 있습니다.
1. 빠른 개발
AWS Lambda를 이용하면 개발자는 인프라 관리를 하지 않아도 됩니다.
따라서 개발자는 단순히 함수 코드만 작성하고 배포함으로써 빠르게 개발할 수 있습니다.
2. 높은 확장성
AWS Lambda는 자동으로 확장됩니다. 따라서 개발자는 서비스 확장에 대해 걱정할 필요가 없습니다.
3. 비용 절감
AWS Lambda는 사용한 시간만큼 비용을 지불합니다. 따라서 함수 실행 시간이 짧을수록 비용이 적게 듭니다.
4. 안정성
AWS Lambda는 다양한 프로그래밍 언어를 지원하며, 이벤트 기반 아키텍처로 구현되어 있습니다.
따라서 안정적인 실행 환경을 제공하며, 서버 인프라에 대한 부담을 덜 수 있습니다.
5. 보안성
AWS Lambda는 실행 역할을 통해 AWS 리소스에 대한 권한을 제어할 수 있습니다.
또한, 환경 변수를 이용하여 비밀 정보를 안전하게 관리할 수 있습니다.
6. 유연성
AWS Lambda는 다양한 AWS 서비스와 연동할 수 있습니다.
따라서 개발자는 서버리스 아키텍처를 구현하면서 다양한 AWS 서비스를 활용할 수 있습니다.
7. 빠른 응답 속도
AWS Lambda는 함수가 호출될 때마다 빠르게 실행됩니다. 따라서 빠른 응답 속도를 보장할 수 있습니다.
AWS Lambda는 서버리스 아키텍처를 구현하기 위한 중요한 도구 중 하나입니다.
AWS Lambda는 빠른 개발, 높은 확장성, 비용 절감, 안정성, 보안성, 유연성, 빠른 응답 속도 등 다양한 장점을 제공합니다.
2. 함수 작성
AWS Lambda 함수 작성은 다음과 같은 단계로 이루어집니다.
1. 함수 코드 작성 방법
AWS Lambda 함수 코드는 다양한 방법으로 작성할 수 있습니다.
개발자는 다음 중 하나를 선택하여 함수 코드를 작성할 수 있습니다.
- AWS Lambda 콘솔에서 코드 직접 작성
- 로컬 컴퓨터에서 코드 작성 후 AWS CLI를 이용해 업로드
- AWS CodeCommit, GitHub, Bitbucket 등의 버전 관리 시스템에서 코드 가져오기
함수 코드는 Node.js, Python, Java, C#, Go, Ruby 등 다양한 프로그래밍 언어로 작성할 수 있습니다.
2. 함수의 이벤트 트리거 설정
AWS Lambda 함수는 이벤트 트리거에 의해 호출됩니다.
이벤트 트리거는 다양한 AWS 서비스와 연동할 수 있습니다.
예를 들어, S3 버킷에 새로운 파일이 업로드될 때마다 Lambda 함수가 호출되도록 설정할 수 있습니다.
3. 환경 변수 설정
AWS Lambda 함수에서는 환경 변수를 설정할 수 있습니다.
환경 변수는 함수 코드에서 사용될 수 있는 변수로, 비밀 정보를 포함할 수 있습니다.
예를 들어, 데이터베이스 액세스 키와 같은 비밀 정보는 환경 변수로 설정하여 코드에서 사용할 수 있습니다.
4. 실행 역할 설정
AWS Lambda 함수는 실행 역할을 가져야 합니다.
실행 역할은 AWS 리소스에 대한 권한을 제어하는 역할로, 함수가 필요한 AWS 리소스에 액세스할 수 있도록 권한을 부여합니다.
5. 메모리 할당량과 실행 시간 제한 설정
AWS Lambda 함수는 실행될 때 메모리 할당량과 실행 시간 제한을 설정할 수 있습니다.
메모리 할당량과 실행 시간 제한이 높을수록 더 많은 비용이 들어갑니다.
따라서 적절한 메모리 할당량과 실행 시간 제한을 설정하는 것이 중요합니다.
6. VPC 구성 설정
AWS Lambda 함수는 Virtual Private Cloud(VPC)에 연결하여 실행할 수 있습니다.
VPC 구성을 설정하면 함수가 VPC 내부의 리소스에 액세스할 수 있습니다.
위와 같이 AWS Lambda 함수 작성은 코드 작성 방법, 이벤트 트리거 설정, 환경 변수 설정, 실행 역할 설정, 메모리 할당량과 실행 시간 제한 설정, VPC 구성 설정 등 다양한 설정이 필요합니다.
지금 보시는 글은 ChatGPT의 도움을 받아 작성되었습니다.
'ChatGPT > AWS Serverless' 카테고리의 다른 글
[AWS][LAMBDA] 소개 - 3 (0) | 2023.04.04 |
---|---|
[AWS][LAMBDA] 소개 - 2 (0) | 2023.04.04 |
[AWS][LAMBDA] SERVERLESS FRAMEWORK 개발하기 - 2 (0) | 2023.04.04 |
[AWS][LAMBDA] SERVERLESS FRAMEWORK 개발하기 - 1 (0) | 2023.04.03 |
[AWS][SERVERLESS] 개발 환경 구축하기 - 2 (0) | 2023.04.03 |