AWS Lambda 서비스를 이용하면 로드 밸런싱, 오토 스케일링등을 크게 신경 안쓰고 쉽게 서버를 배포할 수 있다.
AWS 키 발급
export AWS_ACCESS_KEY_ID='new_access_key_id' # 현재 셀의 환경변수 설정
export AWS_SECRET_ACCESS_KEY='new_secret_access_key_id' # 현재 셀의 환경변수 설정
가상환경(venv)에서 zappa 설치
pip install zappa
zappa 초기 설정
zappa init
# zappa 환경 이름 설정 (기본 dev)
# lambda 함수와 관련된 파일들을 관리할 zappa S3 버킷 이름 설정 (기본 랜덤값, 기본 해도 상관없음)
# Django settings.py의 경로 설정 (Django에서 쓸 settings.py 경로 입력 ex)myproject.settings)
# 글로벌적 서비스를 위해 모든 사용 가능한 리전에서 배포할건지 설정 (N 추천)
만들어진 zappa_settings.json 수정.
aws_region이랑 서버에서 사용할 env key값 넣기
{
"dev": {
"django_settings": "myproject.settings",
"aws_region": "ap-northeast-2", # 배포할 리전 꼭 설정
"exclude": [
"boto3",
"dateutil",
"botocore",
"s3transfer",
"concurrent"
],
"profile_name": null,
"project_name": "myproject",
"runtime": "python3.12",
"s3_bucket": "zappa-asdfasdf",
"environment_variables": { # env key는 이렇게 넣음
"SECRET_KEY": "",
"AWS_ACCESS_KEY_ID": "",
"AWS_SECRET_ACCESS_KEY": "",
"AWS_STORAGE_BUCKET_NAME": "",
"AWS_S3_REGION_NAME": ""
}
}
}
환경 변수는 settings.py에서 이런식으로 가져오면 된다
import os
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
Zappa 배포
zappa deploy dev(환경 이름)
코드 업데이트 됐을때 재배포
zappa update dev
배포 취소
zappa undeploy dev
settings.py ALLOWED_HOSTS 에 내 배포 주소 추가
ALLOWED_HOSTS = ['asdfasdf.execute-api.ap-northeast-2.amazonaws.com']
AWS IAM 키 permission error 주의. lambda 함수 권한이 있어야 함
'Django' 카테고리의 다른 글
Django apscheduler SQLAlchemy Connection timed out 오류 (0) | 2025.02.12 |
---|---|
Django collectstatic S3 파일 업로드 안되는 오류 (Django static파일 S3 연결하기) (0) | 2024.12.30 |
TDD (Test-Driven Development) (0) | 2023.11.16 |
Django 프로젝트(1) - Hot🔥Deal Blog (0) | 2023.11.08 |
Django와 SQLite3 (0) | 2023.10.23 |