AWS/Lambda

    AWS Lambda - Github Actions를 이용한 Serverless CI/CD

    1. Github Actions를 이용한 Serverless CI/CD Serverless 프레임워크를 사용해 내 AWS Lambda를 배포하였다. Github Actions를 사용해 수정 사항을 push 할 경우 Serverless가 자동으로 배포하도록 만들어보자. Severless Github Action 사용법 참고: https://github.com/serverless/github-action GitHub - serverless/github-action: A Github Action for deploying with the Serverless Framework :zap::octocat: A Github Action for deploying with the Serverless Framework - ..

    AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (2)

    AWS Lambda - 사용자 지정 Layer 생성, 설정하기(1) 1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하지만 람다에는 할당량이 있어서 함수의 용량은 donghyeok90.tistory.com 위 포스트에서 Layer로 등록할 zip 파일의 생성까지 완료했다. 이어서 Layer를 생성하고 Lambda에 추가하는 방법을 알아보자. 1) Lambda Layer 생성을 위해서, AWS 콘솔에 로그인한다. 2) 앞서 만든 zip파일을 업로드 하기 위해, 먼저 AWS S3로 가서 버킷을 만든다. 레이어에 추가할 zip파일..

    AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (1)

    1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하지만 람다에는 할당량이 있어서 함수의 용량은 50MB를 초과할 수 없다. 이런 제약을 해소하기 위해 계층(Layer)을 이용한다. Layer에 패키지들을 미리 설치해놓으면 aws는 람다가 실행될 때 Layer를 붙여준다. Layer를 이용하면, 공통된 패키지를 사용하는 다른 애플리케이션을 배포할 때도 유용하게 사용할 수 있다. Lambda의 할당량 참고: https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/gettingstarted-li..

    AWS Lambda - serverless 배포 region 변경하기

    serverless 프레임워크로 배포를 하면 기본값으로 us-east-1 region에서 배포를 한다. region을 ap-northeast-2(서울)로 변경해보자. 1. serverless.yml 파일을 연다. serverless.yml은 serverless 환경설정 파일이라고 생각하면 된다. 2. provider 밑에 region 값을 추가한다. 이대로 배포하면 에러가 발생한다. 3. org와 app을 삭제한다. org 정보를 삭제 했기 때문에 이대로 배포하면 또 에러가 발생한다. 4. 로컬에 credential 셋팅을 해준다. 터미널창에 아래 명령을 본인의 key값, secret key 값을 넣고 실행한다. \ 는 제외하고 한줄로 실행한다. serverless config credentials \ ..

    AWS Lambda - App에 필요한 패키지 설치하기. requirements.txt 사용

    개발한 API 서버의 py 파일만 가져와서 AWS Lambda에서 배포했더니 에러가 발생한다. Lambda는 에러메시지를 보여주는 터미널 창이 없으므로 CloudWatch에 들어가서 로그를 확인해본다. 내가 사용했던 라이브러리 모듈이 없어서 에러가 발생했다. 마찬가지로 Lambda는 터미널 창이 없으므로 pip install 같은 명령을 할 수가 없다. 해결방법은 requirements.txt 파일에 필요한 패키지들을 저장하면 serverless 배포할 때 알아서 설치한다. requirements.txt 참고: https://donghyeok90.tistory.com/143 특정 프로젝트에 있는 파이썬 패키지만 requirements.txt 로 만들기 - pipreqs 개발환경이 변경 되었을때 일일이 패..

    AWS Lambda - Serverless 프레임워크로 테스트 배포하기

    1. 서버리스 홈페이지 회원가입 https://www.serverless.com/ Serverless: Develop & Monitor Apps On AWS Lambda Easily develop and monitor auto-scaling applications on AWS Lambda, API Gateway, DynamoDB, etc., with the Serverless Framework and Serverless Monitoring Dashboard. www.serverless.com 2. AWS Credentials를 serverless에 적용 add Next IAM에서 받았던 credentials를 보고 key를 입력해준다. 참고: https://donghyeok90.tistory.com/19..

    AWS - Serverless 프레임워크 설치하기

    1. Serverless(서버리스)란? 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델 2. Serverless Framework AWS, Azure, GCP 등의 서버리스 서비스를 쉽게 사용할 수 있도록 도와주는 오픈소스 프레임 워크 3. Serverless 프레임워크 사용을 위한 Node.js 설치 Node.js 다운로드 링크 https://nodejs.org/en/download/ Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org LTS 버전으로 다운로드 쭉 next를 눌러서 기본값으로 설치 4. Serve..

    AWS - IAM 사용자 권한 설정하기

    1. IAM (Identity and Access Management) AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스 AWS 계정을 처음 생성 할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한을 지님 완전한 액세스 권한을 통합 인증(SSO) 자격 증명이라고 하며, 루트 사용자라고도 함 IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여 된 대상을 제어 일상적인 작업, 관리 작업의 경우에도 루트 사용자는 가능한한 사용하지 않는 것이 좋음 2. IAM 사용자 권한 부여하기 현재 나의 목적은 Lambda를 사용해서, Flask로 개발한 REST API서버를 Serverless(서버리스) 배포 하는 것이다. 따라서 그에 맞게 권한 설정하는 법을 알아본..