본문 바로가기

AWS/AWS Lambda

[AWS Lambda] 로컬 환경 구축(node.js + serverless) - Windows

현재 프로젝트에서 AWS Lambda를 사용하게 됐다.

접속 때마다 브라우저로 접속해서 코드 수정하고 CloudWatch로 log 확인하는 것이 번거로울 것으로 예상한 리더님께서 로컬 환경 구축에 대한 가이드를 주셨다. Mac을 사용하고 계시기 때문에 내 노트북에는 맞지 않아 따로 정리해두려고 한다.

 

따라서 요점! 오늘은 윈도우 기반으로 AWS Lambda 로컬 환경을 구축해보려고 한다.

더보기

Mac 기반 환경설정 참고는 다른 블로그에 있다! (리더님께서 참고하신 게시글)

https://daddyprogrammer.org/post/9131/aws-lambda-setup-develop-environment/

 

Node.js 설치

https://sober-developer.tistory.com/9

 

[Node.js] 설치하기

Window 기반 설치! 먼저 Node.js 홈페이지에 접속한다. 나는 현재 AWS Lambda 개발을 위해 다운받는 것이므로 AWS Lambda 런타임 설정으로 되어 있는 16 버전을 사용하려고 한다. 원하는 버전을 클릭 후 파

sober-developer.tistory.com

 

AWS CLI 설치

aws가 서비스하는 컴퓨팅 리소스들을 터미널에서 명령줄 인터페이스로 관리할 수 있도록 도와주는 awscli 설치!

https://sober-developer.tistory.com/10

 

[AWS CLI] 설치하기

Windows 기반 설치! GitHub의 AWS CLI changelog를 참조하여 최신버전이 언제 release 됐는지 확인한다. Windows용 AWS CLI MSI 설치 관리자(64비트)를 다운로드하여 실행한다. (msiexec 명령을 실행하여 MSI 설치..

sober-developer.tistory.com

 

AWS 인증설정

개발 PC에서 AWS의 리소스에 접근하려면 액세스 키를 발급받아 세팅해야 한다.

발급 받는 유저가 AdministratorAccess 권한이 부여되어 있으면 따로 권한 작업은 필요 없으나, 권한이 제한된 계정의 경우 추가로 권한 부여 작업이 필요하다.

 

  • AWSLambdaFullAccess: 람다 함수 생성 시 사용
  • IAMFullaccess: 생성할 람다 함수의 IAM 역할(role) 생성 시 사용

권한 부여 방법을 모르겠다면 여기!

 

권한 설정이 마무리되면 우측 상단에 있는 [본인의 아이디]를 클릭하면 [보안 자격 증명]에 들어갈 수 있다.

여기서 [액세스 키(액세스 키 ID 및 비밀 액세스 키)]를 열어 새 엑세스 키 만들기를 실행한다.

생성 후 발급되는 AWSSecretKey는 한 번만 확인이 가능하므로 잘 보관한다.

 

발급 정보로 개발 PC에 AWS 프로필을 등록한다.

 

옵션을 주지 않고 실행 시 default 프로필로 생성되고, %USERPROFILE%\.aws\하위에 관련 파일이 생성된다.

// 확인하고 싶다면
type %USERPRIFILE%\.aws\credentials

특정 이름의 프로필로 생성하려면 다음과 같이 진행한다.

aws configure --profile <원하는 유저 이름>

awscli로 인증 설정이 잘 됐는지 확인한다. 인증 설정이 안 되어 있다면 아래 명령어 실행 시 결과를 얻지 못한다.

문제 없이 설정되었다면 json으로 결과가 출력된다.

// defualt profile
aws ec2 describe-instances
// 특정 프로파일 지정
aws ec2 --profile <특정 유저 이름> describe-instances

혹시 오류가 떴다면 이쪽 참고  

 

[AWS CLI] An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provide

aws cli로 인증 설정이 제대로 되었는지 확인하는 과정에서 aws ec2 describe-instances 를 입력했을 때 발생한 에러이다. 1. 최신 AWS CLI 버전 실행 중인지 확인 (정상작동중이었음) 이 문서를 참고-> github

sober-developer.tistory.com

 

Serverless Framework 설치

// curl
curl -o- -L https://slss.io/install | bash
// npm 이용
npm i -g serverless
// 설치 확인
sls --version

 

awslogs 설치

lambda 함수가 aws에 배포된 상태에서 실행 로그를 확인하려면 cloudwatch를 통해 확인해야 함. 매번 웹 콘솔을 열고 확인하기 불편하기도 하고 tail 로그는 웹 브라우저보다 터미널에서 확인하는 게 좋으므로 awslogs를 설치하여 원격에서 실행되는 lambda의 실행로그를 로컬 pc의 터미널에서 실시간으로 확인하자.

 

https://github.com/jorgebastida/awslogs 

 

GitHub - jorgebastida/awslogs: AWS CloudWatch logs for Humans™

AWS CloudWatch logs for Humans™. Contribute to jorgebastida/awslogs development by creating an account on GitHub.

github.com

  1. 설치 과정

 - 먼저 설치에 이용할 python과 pip 설치 여부 확인 및 설치 (자세한 설명)

// 파이썬이 있는지 확인
python --version
// 없다면 명령 프롬프트에 python 입력하면 Microsoft Store에서 python 설치 화면으로 바로 이동하여 설치 진행
// python 있다면 
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
//다운로드 완료 시 설치를 위해 명령어 한 번 더 입력
python get-pip.py

 

 - pip 이용하여 awslogs 설치

pip install awslogs

이렇게 쭉 나오다가 마지막 쯔음

 WARNING: The script awslogs.exe is installed in '<경로>' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

이런 경고가 뜨면 환경변수 path에 저 <경로> 부분을 복사해서 추가하면 된다. (환경변수 설정 자세히)

 

'AWS > AWS Lambda' 카테고리의 다른 글

[AWS Lambda] 로컬 환경 구축(node.js + serverless) - macOS  (0) 2022.09.19