Django 프로젝트를 위한 AWS DevOps: 간단한 단계로 AWS CodeCommit 및 GitHub를 사용하여 CI-CD를 자동화합니다.
샘플 django 프로젝트 링크: GitHub
내용물
1. GitHub 레포 복제
$ mkdir folder_name
$ cd folder_name
$ git clone [email protected]:vinclairvoyant/django-aws_cicd.git
2. Django 프로젝트 파일 준비
저장소를 복제한 사용자는 django 파일을 변경할 필요가 없으며 이 단계를 건너뛸 수 있지만 자신의 django 프로젝트를 배포하는 다른 사용자는 아래 단계를 계속해야 합니다.
자체 django 애플리케이션을 배포하는 경우 아래와 같이 django 설정 파일에서 ALLOWED_HOSTS를 변경하여 모든 호스트를 허용해야 합니다. (보안상의 이유로 권장하지 않으며, 결국 이를 IP로 변경하고자 함)
필수 종속성을 설치하기 위한 requirements.txt 파일이 있는지 확인하십시오.
3. CodeDeploy yml 파일을 생성하여 AWS CI-CD 자동화
이 기본 자습서에서는 appspec.yml, before_install.sh 및 after_install.sh 파일 3개를 생성하여 AWS CI-CD에서 처리하는 배포 프로세스를 자동화합니다.
폴더/파일 구조:
manage.py 파일이 있는 루트 프로젝트 디렉터리 내에 appscpec.yml 파일을 만듭니다.
Step 1: Create CodeDeploy appspec.yml file
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/django-aws_cicd
hooks:
BeforeInstall:
- location: scripts/before_install.sh
AfterInstall:
- location: scripts/after_install.sh
mkdir scripts
vi scripts/before_install.yml
Step 2: Create before_install.yml file
#!/usr/bin/env bash
# clean codedeploy-agent files for a fresh install
sudo rm -rf /home/ubuntu/install
# install CodeDeploy agent
sudo apt-get -y update
sudo apt-get -y install ruby
sudo apt-get -y install wget
cd /home/ubuntu
wget https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/install
sudo chmod +x ./install
sudo ./install auto
# update os & install python3
sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-pip python3-venv
pip install --user --upgrade virtualenv
# delete app
sudo rm -rf /home/ubuntu/django-aws_cicd
vi scripts/after_install.yml
Step 3: Create after_install.sh file
#!/usr/bin/env bash
# kill any servers that may be running in the background
sudo pkill -f runserver
# kill frontend servers if you are deploying frontend
# sudo pkill -f tailwind
# sudo pkill -f node
cd /home/ubuntu/django-aws_cicd/
# activate virtual environment
python3 -m venv venv
source venv/bin/activate
install requirements.txt
pip install -r /home/ubuntu/django-aws_cicd/requirements.txt
# run server
screen -d -m python3 manage.py runserver 0:8000
AWS CI-CD 설정을 시작하기 전에 django 파일 내부에서 로컬로 수행된 모든 변경 사항이 github에 푸시되는지 확인해야 합니다.
AWS CI-CD 구성:
CI-CD 파이프라인용 AWS 구성을 시작하겠습니다. 이를 위해 주로 IAM 역할인 CodeDeploy 및 CodePipeline의 3가지 서비스를 사용할 것입니다.
4. AWS에서 역할 생성
2개의 IAM 역할을 생성하려고 합니다.
AmazonEC2RoleforAWSCodeDeploy는 버전을 다운로드할 수 있도록 S3 버킷에 대한 EC2 액세스를 제공합니다.
태그를 확장하고 사용자를 대신하여 Auto Scaling과 상호 작용할 수 있는 CodeDeploy 서비스 액세스를 위한 AWSCodeDeployRole.
5. AWS CI-CD용 EC2 인스턴스 시작
새 EC2 인스턴스를 시작할 때 IAM을 추가해야 합니다.
Reference
이 문제에 관하여(Django 프로젝트를 위한 AWS DevOps: 간단한 단계로 AWS CodeCommit 및 GitHub를 사용하여 CI-CD를 자동화합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ionvin/aws-devops-for-your-django-project-automate-your-ci-cd-with-aws-codecommit-github-in-simple-steps-5a92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)