CodeDeploy
CodeBuild 연계
앞서 CodeBuild 를 통해서 S3에 아티팩트 파일을 생성하였다.
CodeDeploy를 위해서는 appspec.yml이 필요하므로 빌드 시 zip 파일에
appspec.yml 파일과 그 안에서 사용할 shell 을 함께 넣어놓았다.
아티팩트 zip파일 :
appspec.yml
version: 0.0os: linuxfiles:- source: target/GBMP-1.0.wardestination: /home/ec2-user/build/hooks:BeforeInstall:- location: scripts/before_install.shtimeout: 300runas: rootAfterInstall:- location: scripts/after_install.shtimeout: 300runas: rootApplicationStart:- location: scripts/start_server.shtimeout: 300runas: rootApplicationStop:- location: scripts/stop_server.shtimeout: 300runas: root
files 는 war 파일 경로와 그 war 파일을 어디에 생성 시킬지 destination 경로를 적어준다.
before_install.sh :
#!/bin/bashrm -rf /home/ec2-user/build/GBMP*
after_install.sh :
#!/bin/bash#
start_server.sh :
#!/bin/bashcd /home/ec2-user/buildjava -jar GBMP-1.0.warexit 0
stop_server.sh :
#!/bin/bashisExistApp=`pgrep java`if [[ -n $isExistApp ]]; thenservice tomcat8 stopfi
CodeDeploy 순서 : 애플리케이션 생성 - 배포그룹 생성- 배포 생성
애플리케이션에서 애플리케이션 생성을 클릭한다.
애플리케이션 이름과 배포하려는 컴퓨팅 플랫폼(EC2/온프레미스) 환경으로 생성한다.
생성된 애플리케이션에 배포 그룹을 생성해준다.
배포그룹 이름과 서비스 역할 입력 후
배포하려는 인스턴스 선택(Name — 배포 EC2서버 태그 추가)
로드 밸런서는 지금 사용하지 않으므로 활성화 체크 해지 후 그룹 생성한다.
생성된 배포그룹 목록을 클릭 하여, 배포 생성한다.
배포 생성 클릭.
개정 위치에 S3에 올라간 버킷명/폴더명/파일명
개정 파일의 형식을 선택하여 배포만들기.
아래와 같이 배포 내역이 생성되고 배포 실패, 성공에 대한 내용이 노출된다.
deploy가 성공한다면 아래와 같이 war 파일이 해당 경로에 생성된다.