본문 바로가기

[개인 웹사이트 만들기]

AWS+Django 기반 웹사이트 제작 8 (웹사이트 개발, codepipeline 1/5)

반응형
본격적으로 웹사이트를 만들고 꾸미기 전에 ec2 서버에 ssh로 접속해서 코드를 작성하기에는 한계가 있으니
작업 PC에서 개발환경을 구축하고 테스트한뒤 aws에서 제공하는 codepipeline 서비스를 이용해서 배포한다.

 

  • CodeCommit
  • repository 생성 & git 연동
  • CodeBuild
  • CodeDeploy
  • CodePipeline

CodeCommit

AWS CodeCommit은 기업이 안전하고 조정성이 뛰어난 프라이빗 Git 리포지토리를 쉽게 호스팅할 수 있도록 지원하는 완전 관리형 소스 제어 서비스

 

CICD PipeLine 구성 전 Build에 필요한 buildspec.yml 파일과 Deploy에 필요한 appspec.yml과 scripts 파일을 미리 준비해야한다.

 

  • buildspec.yml 
  • appspec.yml
  • install_dependencies.sh
  • start_server.sh
  • stop_server.sh
  • validate_server.sh

buildspec.yml , appspec.yml 파일은 소스코드의 루트 티렉토리에, 스크립트 파일은/scripts 하위에 작성

 

buildspec.yml 

version: 0.2

phases: 
    install:   
        commands:     
             - echo install 
    pre_build:
        commands:     
            - echo pre_build 
    build:   
        commands:     
            - echo build 
    post_build:   
        commands:     
            - echo build completed 
artifacts: 
    files:   
        - '**/*'

appspec.yml 

version: 0.0
os: linux
files: 
    - source: /   
        destination: /var/www/ysy_project
hooks:
    BeforeInstall:   
        - location: scrtips/ install_dependencies.sh     
        timeout: 300     
        runas: root 
    ApplicationsStart:   
        - location: scripts/start_server.sh     
        timeout: 300 
    ApplicationsStop:     
        - location: scripts/stop_server.sh     
        timeout: 300     
        runas: root 
    ApplicationsService:   
        - location: scripts/validate_server.sh     
        timeout: 300     
        runas: root

 

scripts 디렉토리 생성 후 

 

install_dependencies.sh

cd /var/www/ysy_project
find . ! -name "my_settings.py" -delete

 

start_server.sh

#!/bin/bash
service httpd start

 

stop_server.sh

#!/bin/bash
isExistApp=`pgrep httpd`
if [[ -n $isExistAPP ]]; then
    service httpd stop
fi

 

validate_server.sh

#!/bin/bash
service httpd start
systemctl status httpd
반응형