AWS
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 S3 - 파이썬 boto3로 파일 업로드
Flask를 사용하여 클라이언트로부터 파일을 받으면 AWS S3에 저장하는 API를 만들고자 한다. 먼저 boto3 라이브러리가 필요하다. 1. boto3 AWS에서 제공하는 Python용 AWS SDK Boto3를 사용하면 Python 애플리케이션, 라이브러리 또는 스크립트를 Amazon S3, Amazon EC2, Amazon DynamoDB 등 AWS 서비스와 쉽게 통합할 수 있다. 공식문서: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html 설치방법 pip install boto3 2. config.py 파일 Secure coding하기 위해 민감한 정보를 관리하는 파일 class Config : # AWS ..
AWS S3 - 버킷(스토리지) 만들기
1. AWS S3 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성 할 수 있는 관리 기능을 제공 2. S3 버킷 만들기 버킷 이름은 세계적으로 고유해야 하기 때문에 자신의 ID를 붙여 이름을 짓는 것이 일반적이다. 객체소유권은 버킷 용도에 맞게 설정한다. 퍼블릭 액세스도 마찬가지로 용도에 맞게 설정한다. 버킷만들기 클릭 버킷 생성 확인
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..