CodeDeploy란?
Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스다.
이전 S3연동에서 업로드한 배포파일을 CodeDeploy를 통해 ec2서버에 전송 할 수 있다.
1. IAM 역할 추가
2. EC2 CodeDeployAgent 설치
- EC2에 접속해서 명령어 입력
1
aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/install . --region ap-northeast-2
내려받기가 성공했다면 아래와 같은 메시지가 콘솔에 출력
download: s3://aws-codedeploy-ap-northeast-2/latest/install to ./install
- install 파일에 실행 권한 추가
1
chmod +x ./install
- install 파일로 설치 진행
1
sudo ./install auto
TIP
설치중 ruby:No such file or directory 와 같은 에러가 발생한다면 sudo yum install ruby로 루비를 설치하면 됨
- 설치가 끝났으면 Agent가 정상적으로 실행되고 있는지 상태 검사
1
sudo service codedeploy-agent status
아래와 같이 running 메시지가 출력되면 정상
The AWS CodeDeploy agent is running as PID ****
3. CodeDeploy 권한 생성
IAM -> 역할만들기
사용사례 CodeDeploy지정 CodeDeploy는 권한이 하나밖에 없기에 바로 생성하면 된다. 이름 지정
4. CodeDeploy 생성
5. Travis, S3, CodeDeploy연동
- 아래 배포경로 생성
1
mkdir ~/app/step2 && mkdir ~/app/step2/zip
appstec.yml 파일생성
CodeDeploy연동은 appspec.yml파일로 세팅한다. -> 최상위 경로에 생성1 2 3 4 5 6 7
--- version: 0.0 os: linux files: - source: / destination: /home/ec2-user/app/travis/build overwrites: yes
- .travis.yml 파일 CodeDeploy설정 추가
1 2 3 4 5 6 7 8 9 10 11 12
- provider: codedeploy access_key_id: $AWS_ACCESS_KEY secret_access_key: $AWS_SECRET_KEY bucket: traivs-bucket #S3버팃명 key: travis.zip #배포파일명 bundle_type: zip #배포파일 확장자 application: travis-project #애플리케이션명 deployment_group: travis-group #배포그룹명 region: ap-northeast-2 wait-until-deployed: true on: all_branches: true
- CodeDeploy 배포, EC2 배포파일 확인