Django 프로젝트를 위한 AWS DevOps: 간단한 단계로 AWS CodeCommit 및 GitHub를 사용하여 CI-CD를 자동화합니다.

6114 단어
이 안내서는 내부적으로 AWS CodeCommit 및 GitHub를 사용하여 CI-CD 워크플로를 설정하는 데 필요한 모든 단계를 다룹니다. 샘플 django 애플리케이션을 복제하고, CodeDeploy 에이전트 파일을 구성하고, AWS에서 CI-CD 파이프라인을 구성합니다.

샘플 django 프로젝트 링크: GitHub

내용물
  • GitHub 저장소 복제(선택 사항)
  • Django 프로젝트 파일 준비(선택 사항)
  • yaml 파일을 생성하여 AWS CI-CD 자동화(선택 사항)
  • AWS에서 역할 생성
  • AWS CI-CD용 EC2 인스턴스 시작
  • AWS 코드 배포 구성
  • AWS 코드 파이프라인 구성

  • 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을 추가해야 합니다.

    좋은 웹페이지 즐겨찾기