-
AWS - EC2배포 자동화 [AWS Code Deploy & AWS S3]서버 & Dev ops 인프라/AWS 2021. 4. 23. 14:50
■ Code Deploy 계정 생성
연동한 Travis 계정에서 사용할 수 있는 계정을 생성
1) iam AWS 콘솔에서 검색
2) 계정 추가 선택
3) 사용자 + 유형 선택
4) 정책 설정 + 권한
> Travis용 계정 생성 완료
■ AWS S3 버킷 생성
> Build된 코드 보관용 S3 버킷을 만들기 위함
> 이 프로젝트의 경우 jar / React build가 해당
1) S3 콘솔에서 검색
2) bucket 생성
※ region은 EC2에서 설정한 값
■ IAM 롤 추가
1) 콘솔 IAM에서 다음 버튼을 클릭
2) EC2 선택
3) 정책 선택
4) EC2용 Role 생성
5) CodeDeploy 선택 - 2번째 role 추가
6) 정책 선택
7) CodeDeploy용 role 생성
■ 생성된 role 부여
1) EC2 롤 부여
2) EC2롤을 선택하여 추가
■ EC2에 role API 설치
1) role api 설치
> docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-linux.html
CLI에 최신버전 설치
1) sudo apt-get install unzip
2) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
3) unzip awscliv2.zip
4) sudo ./aws/install → /usr/loacl/bin/aws --version2) AWS 키 입력
root dir 한 folder 위로 이동
3) AWS Code Deploy CLI 설치
> aws s3 cp s3://aws-codedeploy-us-east-2/latest/install . --region us-east-2
> region에 맞게 설정, 다음과 같이 console navigation bar에서 확인 가능
> install 파일 권한 설정
chmod +x ./install
> install with ruby script
※ ./install auto OR ./install deb script가 동작 안할 시, ruby 문제로 밑의 script 사용
./ruby_setup.sh 실행
현재 폴더구조
home
└- ec2-user
└- app
└- app / git└- deploy.sh
└- nginx_setup.sh
└- ruby_setup.sh
------------------------- git repo 구조
└- awsEC2_React_Spring
└- (React - root dir)
└- myapp_spring (folder for Springboot)
> ruby_setup.sh
# remove ruby 2.5/rake if installed apt purge libruby ruby rake # add repositories for xenial and xenial-updates cat << EOF > /etc/apt/sources.list.d/xenial.list deb http://archive.ubuntu.com/ubuntu/ xenial main deb http://archive.ubuntu.com/ubuntu/ xenial-updates main EOF # priorise ruby/rake from xenial repository cat << EOF > /etc/apt/preferences.d/ruby-xenial Package: ruby Pin: release v=16.04, l=Ubuntu Pin-Priority: 1024 Package: rake Pin: release v=16.04, l=Ubuntu Pin-Priority: 1024 EOF # install ruby and dependent packages apt update apt install ruby gdebi-core # download and run codedeploy-agent installer curl -o /tmp/codedeploy-installer https://aws-codedeploy-eu-west-1.s3.amazonaws.com/latest/install chmod +x /tmp/codedeploy-installer /tmp/codedeploy-installer deb # delete installer script rm -f /tmp/codedeploy-installer # create systemd service file and enable it mv /etc/init.d/codedeploy-agent.service /lib/systemd/system/codedeploy-agent.service systemctl enable codedeploy-agent.service
> agent 실행 확인
sudo service codedeploy-agent status
■ EC2 인스턴스 booting script 설정
부팅시 자동으로 AWS CodeDeployAgent 실행되도록 설정
> /etc/init.d/에 스크립트 파일이 있으면 부팅시 자동으로 실행
> sudo vim codedeploy-startup.sh
#!/bin/bash echo '>Startig code deploy agent on Booting...' sudo service codedeploy-agent start
> chmod +x codedeploy-startup.sh : 권한 추가
참조 :
jojoldu.tistory.com/265?category=635883
반응형'서버 & Dev ops 인프라 > AWS' 카테고리의 다른 글
AWS - EC2배포 Jenkins (0) 2021.07.21 AWS - EC2배포 ubuntu [git pull + travis] (0) 2021.04.23 AWS RDS 설정 (0) 2021.04.16 AWS - React & Springboot 환경 연결 (0) 2021.04.16 AWS - github 통한 배포 전 React + Spring boot 환경 설정 (0) 2021.04.16