- 서버리스 환경을 구축하고자 한다.
- 장고에서 작업한 파일을 올려서 할것이다.
- 이때 zappa를 사용할 것이다
zappa 설치
- Zappa는 서버리스 아키텍처를 구성할 수 있게 해주는 프레임워크입니다. AWS Lambda와 API Gateway를 사용하여 Python 애플리케이션을 쉽게 배포하고 실행할 수 있도록 도와주는 친구
- 이를 통해 AWS 리소스를 쉽게 활용할 수 있으며, 서버리스 아키텍처를 쉽게 구축할 수 있습니다.
- 기존 짱구 사진올렸던 것 django파일을 그대로 사용하였다.
pip install zappa
![](https://velog.velcdn.com/images/jujuju914/post/f4b979ed-b49b-4750-962c-e52d41e205fb/image.png)
- 이런 에러가 뜬다.
- 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')
![](https://velog.velcdn.com/images/jujuju914/post/9ccbb2b9-3deb-435f-8b04-78755adc7d59/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/51a5997a-3767-44fb-bfc6-59c4020cc32c/image.png)
- 압축을 풀어주고 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
![](https://velog.velcdn.com/images/jujuju914/post/a53e7e35-adc6-4986-b74c-ff22b41b6b4e/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/4676ab85-468a-42c2-907e-bc18f9626a28/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/82ada9f4-4f29-486c-b003-d3638f3522a0/image.png)
- 이런 친구들이 설치가 되지 않았었다. 설치해주고 인스톨앱 해주고 호스트 모두 허락해주었다.
zappa update dev
- 해주면 지우고 다시 올릴필요가 없다. 다시 지우려면
zappa undeploy dev
- 해주면 해제가 되지만 zappa가 업로드 하면서 aws에는 많은 파일들 만들어 놓았기 때문에 지워줘야한다. Lambda, API Gateway, CloudFormation, IAM role
![](https://velog.velcdn.com/images/jujuju914/post/f95247c7-ac7c-4580-876d-04d7ce1a2172/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/2cc3ceb8-bc2f-43ad-b8a5-4141ea2e820d/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/da99ade0-10bb-4a05-9f79-4d7f8e62914f/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/320cf19d-b00b-4fa1-b405-44fb89511a5c/image.png)
- Lambda, API Gateway, CloudFormation, IAM role 자동으로 생성된것을 확인
![](https://velog.velcdn.com/images/jujuju914/post/7936a117-7d86-47c4-a280-d14b297a5f3e/image.png)
![](https://velog.velcdn.com/images/jujuju914/post/46b6ec4a-c197-495e-bd42-2603e5730552/image.png)