November 23, 2021
2021년 3월 초기에 작성했던 문서라 현재 AWS 콘솔과는 달라질 수 있다는점 꼭 확인해주세요!
IAM에서 CodeDeploy Role을 생성합니다.
CodeDeploy Role 이름을 지정하고 저장합니다.
원본 인스턴스에서 CodeDeploy를 설치하고 AMI 이미지를 따면 훨씬 편합니다.
Directory not empty @ dir_s_rmdir
에러가 발생합니다.sudo apt remove --purge ruby
sudo apt autoremove
sudo apt -y install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt update
sudo apt install -y ruby2.4
ruby --version
ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-linux-gnu]
자바추가 설치
# corretto 8 설치
wget -O- <https://apt.corretto.aws/corretto.key> | sudo apt-key add -
sudo add-apt-repository 'deb <https://apt.corretto.aws> stable main'
sudo apt-get update
sudo apt-get install -y java-1.8.0-amazon-corretto-jdk
# CodeDeploy 설치 및 실행
cd /home/ubuntu
wget <https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install>
chmod +x ./install
sudo ./install auto
# codeDeploy 확인
sudo service codedeploy-agent status
# 실행
sudo service codedeploy-agent start
Auto Scaling을 설정하려면 EC2 AMI가 필요합니다. 먼저 deploy할 EC2를 선택하여 AMI를 생성합니다.
재부팅 안함을 활성화 하여 원본 인스턴스를 재부팅을 막을 수 있습니다. 만약 선택하지 않으면 인스턴스가 재부팅하여 서버가 꺼지기 때문에 꼭 확인하셔야 합니다.
EC2에서 Load Balancer를 생성합니다.
Application Load Balancer를 선택하여 HTTP 및 HTTPS 트래픽을 다루는 Load Balancer를 선택합니다.
기본 구성
가용 영역
2단계 스킵합니다.
보안 그룹에서 80번을 열고 0.0.0.0/0으로 설정합니다. 필요하면 22 ssh 포트도 열어두셔도 됩니다.
4단계 라우팅 구성
대상 그룹
상태 검사
경로: / (여기서 Spring프로젝트/resource/static/index.html을 인지하여 연결확인합니다)
고급 상태 검사 설정
그대로 진행합니다.
1단계: Load Balancer 구성
HTTPS 프로토콜을 추가하고 Load Balancer 포트 443을 엽니다.
2단계: 보안 설정 구성
ACM 인증서를 선택합니다. ACM이 없다면 ACM을 생성하고 추가합니다.
3단계: 보안 그룹 구성
보안 그룹을 설정할 때 HTTPS를 추가하여 443포트도 열어두는 설정을 추가합니다.
4단계: 라우팅 구성
EC2 인스턴스와 ELB간의 통신은 8080으로 할 계획이기때문에 기존과 동일합니다.
5단계: 대상 그룹 설정
대상 그룹을 설정하지 않아도 됩니다. Auto Scaling AMI를 이용할 계획이기 때문에 설정할 필요가 없습니다.
HTTP:80에서 리다이렉션합니다.
다음은 AWS AutoScaling, Deploy, script를 이용하여 배포해보겠습니다!!