Django 커머스 보일러플레이트 시리즈 |
(1) 프로젝트 요구사항과 다이어그램 모델링 |
(2) 장고/DRF 모델, 시리얼라이저, 뷰 |
(3) 유닛 테스트, drf-yasg API 문서화 |
(4) Nginx 웹 서버와 도커 컴포즈, AWS ECS 배포 |
(5) GitHub Actions CI/CD |
안녕하세요, 판다타입니다.
한동안 파이썬 웹 프레임워크 삼대장 플라스크(Flask), 장고(Django), 패스트API(FastAPI) 중, 회사에서는 사용하지 않는 장고를 이용해 e-커머스(e-commerce) 제작에 사용할 수 있는 보일러플레이트(boilerplate)를 만들어보았습니다. 진행한지는 꽤 되어서 한꺼번에 몰아서 작성하다보니 자세한 설명을 하기는 어렵고... 여러분의 장고 프로젝트 작성에 도움이 될까 하여 간단하게 몇 가지를 정리해보았습니다. 자세한 소스코드는 Djarf GitHub 저장소를 참고해주시고, 궁금한 점은 댓글이나 메일로 문의해주세요.
GitHub Actions workflows YAML 설정 파일 생성 (GitHub Actions ECS 배포자동화 by Woosik Kim 글 참고)
# .github/workflows/deployment.yaml
name: Deployment
run-name: Deployment of ${{ github.repository }} through AWS ECS
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
deployment:
runs-on: ubuntu-latest
env:
ECR_URI: ${{ secrets.ECR_URI }}
DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_HOST: ${{ secrets.DB_HOST }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: ap-northeast-2
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Transfers authority from AWS ECR to Docker
run: >
aws ecr get-login-password |
docker login --username AWS --password-stdin $ECR_URI
- name: Build Docker image with compose
run: docker compose build
- name: Push Docker image to AWS ECR with compose
run: docker compose push
- name: Install AWS ECS CLI
run: >
sudo curl -Lo /usr/local/bin/ecs-cli
https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-linux-amd64-latest
- name: Apply execute permissions to ECS CLI binary
run: sudo chmod +x /usr/local/bin/ecs-cli
- name: Deploy updating AWS ECS service with AWS CLI
run: >
aws ecs update-service --service djarf --task-definition djarf
--cluster djarf --force-new-deployment
'개발 > 웹' 카테고리의 다른 글
Django 커머스 보일러플레이트 - (4) Nginx 웹 서버와 도커 컴포즈, AWS ECS 배포 (0) | 2023.05.03 |
---|---|
Django 커머스 보일러플레이트 - (3) 유닛 테스트, drf-yasg API 문서화 (0) | 2023.05.02 |
Django 커머스 보일러플레이트 - (2) 장고/DRF 모델, 시리얼라이저, 뷰 (0) | 2023.05.01 |
Django 커머스 보일러플레이트 - (1) 프로젝트 요구사항과 다이어그램 모델링 (0) | 2023.04.30 |
Flask Microservice 구축 - GitHub Actions로 CI/CD 시스템 구축 (2) | 2023.03.01 |
댓글