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

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



샘플 django 프로젝트 링크: GitHub

목차
  • Clone GitHub repo (Optional)
  • Preparing Django project files (Optional)
  • Create yaml files to automate AWS CI-CD (Optional)
  • Create roles in AWS
  • Launching EC2 instance for AWS CI-CD
  • Configure AWS Code Deploy
  • Configure AWS Code Pipeline

  • 1. GitHub 리포지토리 복제(선택 사항)

    • Open your chosen command-line interface
    • Create new project folder -->
    $ mkdir folder_name
    
    • Go in to your project folder -->
     $ cd folder_name
    
    • Clone the remote repository -->
    $ git clone [email protected]:vinclairvoyant/django-aws_cicd.git
    

    2. Django 프로젝트 파일 준비(선택 사항)

    For those who have cloned repo need not require to do any changes to the django files and can skip this step 2, but for others who are deploying their own django project shall continue with below steps:

    If you are deploying your own django application then make sure to allow all hosts by Changing ALLOWED_HOSTS in your django settings file as shown below. (Not recommended for security reasons, eventually we want to change this to an IP)



    필수 종속성을 설치하기 위한 requirements.txt 파일이 있는지 확인하십시오.

    3. yaml 파일을 생성하여 AWS CI-CD 자동화(선택 사항)

    For this basic tutorial we will create 3 files appspec.yml, before_install.sh & after_install.sh to automate the deployment process handled by AWS CI-CD.

    Folder/file structure:



    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 구성:

    Let's get started configuring AWS for CI-CD pipeline, for this we are going to be using 3 services mainly IAM roles, CodeDeploy & CodePipeline.

    4. AWS에서 역할 생성

    We want to create 2 IAM roles:

    AmazonEC2RoleforAWSCodeDeploy provides EC2 access to S3 bucket to download revision:

    Step 1:

    2 단계:

    3단계:

    4단계:


    태그를 확장하고 사용자를 대신하여 Auto Scaling과 상호 작용할 수 있는 CodeDeploy 서비스 액세스를 위한 AWSCodeDeployRole.

    1 단계:

    2 단계:

    3단계:

    4단계:

    5단계:

    6단계:


    5. AWS CI-CD용 EC2 인스턴스 시작

    When launching a new EC2 instance ensure to add AmazonEC2RoleforAWSCodeDeploy IAM role that we created.





    #!/usr/bin/env bash
    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
    
    


    인스턴스를 생성할 때 제공하지 않은 경우 인스턴스에 이름을 제공해야 합니다. 다음 단계에서 CodeDeploy 배포 그룹을 생성할 때 인스턴스 이름이 필요합니다.



    포트 8000을 허용하도록 EC2에 연결된 보안 그룹을 구성합니다.



    인스턴스를 시작한 후 상태 확인이 완료될 때까지 몇 분 동안 기다립니다.

    6. AWS 코드 배포 구성

    For creating CodeDeploy we first need to create application and then create deployment group, steps below:

    Step 1: Search for CodeDeploy service in AWS

    Step 2: On the left navigation panel open Deploy -> Select Applications and then click on Create application

    Step 3: Provide any application name of your choice, for Compute Platform choose EC2/On-premises from the drop down and then click on Create application

    Step 4: Will be redirected inside application that we just created, now click on Create deployment group

    Step 5: Enter a deployment group name of your choice and then choose the service role that we created for CodeDeploy, in this tutorial we named it CodeDeployRole

    Step 6: Environment configuration choose Amazon EC2 instances and then add the ec2 instance we created, for Key choose Name and for Value choose in this tutorial we named the instance aws-cicd.

    Step 7: Uncheck the Enable load balancing and then click on Create deployment group.



    7. AWS 코드 파이프라인 구성

    CodePipeline brings everything together to build the final CI-CD

    Initial Step: On left navigation panel open Pipeline then click on Pipelines and finally click on Create Pipeline

    1단계: 선택한 파이프라인 이름을 입력하면 역할 이름이 자동으로 생성됩니다. 이제 다음을 클릭하십시오.



    2단계: 드롭다운에서 GitHub(버전 2)를 선택하고 GitHub에 연결을 클릭합니다. 성공적으로 연결되면 리포지토리 이름, 분기 이름을 선택한 후 다음을 클릭합니다.





    3단계:
    빌드는 이 튜토리얼의 범위를 벗어납니다. 빌드 단계 건너뛰기를 클릭하십시오.

    4단계: 공급자 배포 드롭다운에서 AWS CodeDeploy를 선택하고 6단계에서 생성한 애플리케이션 이름과 배포 그룹을 선택한 후 다음을 클릭합니다.

    5단계: 페이지를 검토하고 페이지 하단으로 스크롤한 다음 파이프라인 생성을 클릭합니다.


    AWS에서 CI-CD 파이프라인 설정 및 생성을 완료했습니다. 배포 섹션 또는 왼쪽 패널 배포에서 세부 정보를 클릭하여 진행 상황을 확인한 다음 아래로 스크롤하고 이벤트 보기를 클릭하여 배포 상태를 볼 수 있습니다.



    애플리케이션 실행:



    EC2 인스턴스로 이동하여 퍼블릭 IPv4 DNS를 복사합니다.



    다음 URL을 사용하여 탐색:

    http://<Public IPv4 DNS>:8000
    


    이 django 앱이 실행되는 것을 볼 수 있습니다...

    좋은 웹페이지 즐겨찾기