[클라우드] AWS-Lambda-Zappa-django

이정훈·2023년 3월 16일
0

클라우드

목록 보기
8/14
post-thumbnail
  • 서버리스 환경을 구축하고자 한다.
  • 장고에서 작업한 파일을 올려서 할것이다.
  • 이때 zappa를 사용할 것이다

zappa 설치

  • Zappa는 서버리스 아키텍처를 구성할 수 있게 해주는 프레임워크입니다. AWS Lambda와 API Gateway를 사용하여 Python 애플리케이션을 쉽게 배포하고 실행할 수 있도록 도와주는 친구
  • 이를 통해 AWS 리소스를 쉽게 활용할 수 있으며, 서버리스 아키텍처를 쉽게 구축할 수 있습니다.
  • 기존 짱구 사진올렸던 것 django파일을 그대로 사용하였다.
pip install zappa

  • 이런 에러가 뜬다.
  • kappa==0.6.0 이 친구의 setup.py에 문제가 있다 뭐가 없다 에러가 있다 그러니깐 이친구를 손봐줘야 한다.
    요기서 찾아주세요! kappa==0.6.0
  • kappa-0.6.0.tar.gz 파일을 받아 프로젝트가 있는 폴더로 옮겨준다.(윈도우에서 압축을 풀어줄수 없으니깐 풀 수 있는 환경으로 가서 작업해줘야한다.)
tar zxvf .\kappa-0.6.0.tar.gz
def open_file(fname):
    return open(os.path.join(os.path.dirname(__file__), fname), 'r', encoding='UTF8')


  • 압축을 풀어주고 setup.py 부분을 수정해줘야한다.
pip install -e . 
pip install zappa
  • 압축을 해제하고 그 폴더안에서 kappa-0.6.0 을 설치해주면 된다. 그럼 zappa를 성공적으로 설치 완료 이제 배포를 해주면되는데 이친구는 파일이 크기때문에 한번에 함수가 올라갈 수 없다.
    그래서 aws에서는 S3를 거쳐서 올라가야만 한다.

zappa를 이용한 업로드

aws configure
AWS Access Key ID [****************FA5X]: 
AWS Secret Access Key [****************QxgM]: 
Default region name [ap-northeast-2]: 
Default output format [None]: 
  • aws와 연결이 되어야하니깐, 발급받은 엑세스키를 입력해준다.
zappa deploy dev
환경은? dev
너가 사용할 버킷은? 만들어놓은 버킷으로 지정
글로벌로? 아니요!
이렇게 작성해봤는데 너가 설정한게 맞니? 네!
  • 그럼 lambda에 올라가서 api 까지 설정해 준다.
  • 그럼 api 주소로 가면 django프로젝트가 올라간것을 확인할 수 있다.
  • 중간중간 에러가 나왔는데 오류들을 확인해 보면
pip install pillow
pip install mysql-connector-python
pip install django-storages



  • 이런 친구들이 설치가 되지 않았었다. 설치해주고 인스톨앱 해주고 호스트 모두 허락해주었다.
zappa update dev
  • 해주면 지우고 다시 올릴필요가 없다. 다시 지우려면
zappa undeploy dev
  • 해주면 해제가 되지만 zappa가 업로드 하면서 aws에는 많은 파일들 만들어 놓았기 때문에 지워줘야한다. Lambda, API Gateway, CloudFormation, IAM role



  • Lambda, API Gateway, CloudFormation, IAM role 자동으로 생성된것을 확인

  • 이 주소로 들어가면 확인 할 수 있다.
profile
싱숭생숭늉

0개의 댓글