728x170
해당 글에서는 AWS 서비스 중 Lambda를 최초 구성하며 설정하는 방법에 대해 알아봅니다.
(Node 기반으로 구성하였습니다)
1) AWS Lambda
💡 AWS Lambda
- Amazon Web Services(AWS)에서 제공하는 이벤트 중심의 컴퓨팅 서비스입니다. 이 서비스는 코드를 서버에 배포하거나 서버를 관리하지 않고도 실행할 수 있게 해주며, 이를 통해 개발자는 인프라에 대한 걱정 없이 코드에 집중할 수 있습니다.
- AWS Lambda는 코드를 실행할 때 필요한 컴퓨팅 자원을 자동으로 관리해주고, 여러 AWS 서비스와 연동되어 다양한 유형의 애플리케이션과 백엔드 서비스를 구축할 수 있게 해줍니다.
- AWS Lambda를 사용하면 코드 실행에 따른 요금만 지불하므로, 비용 효율적인 솔루션을 제공합니다. 서버 유지 비용이나 대기 시간에 대한 요금이 발생하지 않습니다.
2) Lambda 생성
1. [AWS 콘솔] Lambda 서비스 - 함수 탭을 선택하고, ‘함수 생성’ 버튼을 누릅니다.
2. [함수 생성 페이지] 함수 이름, 런타임, 아키텍처를 선택하여 생성합니다
[ 더 알아보기 ]
💡 아키텍처 중 x86_64와 arm64의 차이는 무엇일까?
아키텍처 | 설명 |
x86_64 | 64비트 확장인 x64로도 알려진 인텔의 x86 아키텍처입니다. 이 아키텍처는 대부분의 데스크톱 컴퓨터와 노트북, 서버에서 널리 사용됩니다. |
arm64 | ARM의 64비트 확장인 ARMv8 아키텍처를 가리킵니다. 이 아키텍처는 대부분의 모바일 기기, 특히 스마트폰과 태블릿에서 널리 사용되며, 저전력 서버, 임베디드 시스템, 고성능 컴퓨팅(HPC)에도 사용됩니다. |
3. [코드 소스 페이지] 생성한 함수에서 ‘Test’ 버튼을 눌러 실행하며, 소스코드 변경 시 ‘Deploy’ 버튼을 눌러줍니다
[ 더 알아보기 ]
💡 AWS의 Deploy는 무엇을 의미하는 것일까?
- 애플리케이션의 새 버전을 실행하거나 업데이트를 하는 과정을 의미합니다.
- 이 과정을 통해 코드 변경사항을 배포 환경에서 안전하게 적용하며 개발, 테스트, 스테이징, 그리고 프로덕션과 같은 다양한 환경이 될 수 있습니다.
4. [테스트 이벤트 구성 페이지] 최초 테스트 이벤트를 구성합니다
💡 [테스트 이벤트 구성 페이지] 최초 테스트 이벤트를 구성합니다
- Lambda 내에서 이벤트는 람다 함수를 자동으로 트리거하거나 호출하는 특정 활동을 의미합니다.
- 이벤트 이름을 지정하며, 이벤트 JSON 부분에서는 람다함수에서 받을 수 있는 파라미터를 지정할 수 있습니다.
5. [코드 소스 페이지] 'Test' 버튼을 눌러서 실행하며 수행이 잘 됨을 확인하였습니다.
3) Lambda 내에 AWS Service 사용 권한 부여
💡 Lambda 내에 AWS Service 사용 권한 부여
- AWS Service에 접속을 하는 경우 ‘access denied’가 발생함에 따라 이에 대한 Lambda 내에 Service 이용 권한을 부여합니다.
1. [Lambda > 함수] Lambda 페이지 내에 하단에 구성 > 권한 > 역할 이름이 존재하는데 이를 선택합니다.
2. [IAM > 역할 > 함수] 새로 띄어진 화면 내에 권한 추가 > 정책 연결을 선택합니다.
3. [정책연결] 해당 페이지에서 연결하려는 정책을 검색하여 ‘정책 추가’ 버튼을 누릅니다.
4) Layer 생성 : 외부 라이브러리 호출
💡 AWS Lambda Layer
- 람다 함수의 코드와 리소스를 관리하는 방법 중 하나입니다. 이는 공통적으로 사용되는 라이브러리, 사용자 정의 런타임, 또는 다른 함수에서 쉽게 공유할 수 있는 리소스를 람다 함수와 분리하여 패키징하는데 사용됩니다.
- 이를 통해 코드를 더욱 모듈화하고, 라이브러리와 리소스를 여러 함수에서 재사용할 수 있게 됩니다. 계층은 버전 관리가 가능하며, 각 함수는 특정 버전의 계층을 사용하도록 설정할 수 있습니다.
- 최종적으로 이를 사용하여 코드의 중복을 줄이고, 배포 패키지의 크기를 줄이며 함수의 실행시간을 단축할 수 있습니다.
1. [터미널] 빈 디렉터리에 npm으로 생성
💡 빈 디렉터리에 npm으로 생성
- 빈 디렉터리에 npm으로 client-dynamodb, lib-dynamodb 라이브러리를 설치하였습니다.
2. 생성된 node_modules를 확인하고 압축합니다
💡 생성된 node_modules를 확인하고 압축합니다.
- 이를 통해 node_modules.zip 파일이 생성되었습니다.
3. [AWS 콘솔] Lambda 서비스 - 계층 탭을 선택해주고 ‘계층 생성’을 선택합니다.
4. [계층 생성 페이지] 이름과 업로드 버튼을 눌러서 압축한 node_modules.zip 파일을 업로드합니다
💡 선택사항으로 적혀 있지만 ‘호환 런타임’을 반드시 설정해야 계층이 확인됩니다.
5. [계층 페이지] 생성된 계층을 확인합니다
5) 함수 - Layer 연결
💡 함수 - Layer 연결
- 함수 - Layer 연결의 주요 목적은 AWS Lambda 함수를 보다 효과적으로 관리하고, 공통적으로 사용되는 라이브러리, 사용자 정의 런타임, 또는 다른 함수에서 쉽게 공유할 수 있는 리소스를 람다 함수와 분리하여 패키징하는 것입니다.
- 이를 통해 코드를 더욱 모듈화하고, 라이브러리와 리소스를 여러 함수에서 재사용할 수 있게 됩니다. 계층은 버전 관리가 가능하며, 각 함수는 특정 버전의 계층을 사용하도록 설정할 수 있습니다.
1. [함수] 구성한 함수로 접근하여 아래 페이지로 이동합니다. - ‘Add a layer’ 버튼을 누릅니다
2. [계층 추가] 이전에 구성한 ‘myTestLayer’라는 계층을 선택하고, 버전을 선택하면 완료됩니다.
3. Lambda 내에 추가한 라이브러리를 import하여서 잘 수행됨을 확인하였습니다.
오늘도 감사합니다😀
그리드형
'AWS > 환경 설정 및 구성' 카테고리의 다른 글
[AWS] AWS Lambda + S3 Bucket 활용하기 -1: Node 기반 Lambda 구성 (0) | 2024.07.06 |
---|---|
[AWS] AWS Lambda + DynamoDB 활용하기 -1 : Node 기반 Lambda 구성 (0) | 2024.07.05 |