🙈

⃝ 동글동글 ⃝

🪐ᐩ˖ 🍎

AWS

[Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - CodeDeploy편

JONG_UK 2023. 4. 3. 19:12
728x90
반응형
SMALL

AWS EC2(Instance, Elastic IP, Security Group, Load Balancer, Target Group), IAM, S3 Bucket, CodeDeploy, Route53, ACM + GitHub Actions를 이용하여 Spring Boot 프로젝트를 AWS에 자동 배포 및 HTTPS 통신을 하려고 합니다.

 

제가 했던 자동 배포 과정을 담고 있는 글이니 처음 글부터 하나하나 차근차근 봐주시면 감사하겠습니다.

 

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - EC2편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - IAM편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - S3 버킷편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - CodeDeploy편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - GitHub Actions편

 

구현 과정을 담기 이전에 각 파트별 개념을 먼저 짚고 시작해 보도록 하겠습니다.

4. [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 Https 통신 - CodeDeploy편

💡 CodeDeploy의 개념

AWS CodeDeploy 간단한 설명

- AWS에 애플리케이션(프로젝트) 배포를 자동화하는 서비스입니다. (아래는 공식문서)

 

CodeDeploy란 무엇인가요? - AWS CodeDeploy

또한 일반적으로 기존 환경의 인스턴스에서 실행되는 애플리케이션 수정이 있지만, 블루/그린 배포의 경우 반드시 이럴 필요는 없습니다.

docs.aws.amazon.com

자세한 내용은 아래 포스트를 참고해 주세요. 저도 지금은 아직 제대로 설명을 못하겠습니다... 조금 더 성장해서 수정하도록...

 

AWS CodeDeploy란,

AWS는 CodeDeploy를 통해 CD(Continous Delivery)를 진행한다.CodeDeploy는 Revision(code, dependencies,packages 등 필요한 파일들과 AppSpec.yml)이로컬에서 S3 Bucket, github, bitb

velog.io

 

⭐️ CodeDeploy 설정

CodeDeploy 세팅

먼저 아래 링크에서 콘솔에 로그인을 한 뒤 CodeDeploy를 검색하여 초기 화면으로 이동

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어, 상

aws.amazon.com

 

CodeDeploy 초기 화면에서 왼쪽 사이드바에서 '애플리케이션'을 눌러 애플리케이션 생성을 해봅시다!

 

 

컴퓨팅 플랫폼은 저희는 EC2를 사용하기 때문에 EC2/온프레미스를 설정해 줍시다. 그리고 생성!

 

 

아래와 같이 화면이 나오면 배포 그룹을 생성해 봅시다. 

배포 그룹은 저희가 GitHub Actions에서 push를 통한 자동 배포할 .jar 파일이 위치할 폴더라 생각하시면 됩니다.

 

 

전 dev라는 이름을 주었고, 서비스 역할에는 이전에 IAM에서 CodeDeploy용 역할을 만들었던 Test-CodeDeploy-Anything을 사용해 줍니다.

 

 

배포 유형은 일단 현재 위치, 그리고 환경 구성에서 저희는 Amazon EC2 인스턴스를 선택하고, 태그 그룹에 저희가 이전에 만들었던 EC2 인스턴스를 선택해 주면 됩니다.

- 배포 유형에 블루 / 그린을 선택하면 무중단 배포가 가능하다고 합니다.

 

배포 설정에서 배포 구성은 AllAtOnce를,

로드 밸런서는 활성화를 해제하도록 합니다.

- 로드 밸런서를 활성화하면 트래픽 분산에 좋다고 합니다. 아직 사용해 보지 않아서 모르겠습니다 ㅎㅎ..

 

배포 그룹 생성을 눌러 아래와 같이 생성되도록 합니다.

 

 

이제 CodeDeploy에서의 작업이 끝났습니다.

EC2에 CodeDeploy Agent를 다운로드하여야 하는 작업도 있기 때문에 EC2에 SSH로 접속하도록 합시다!!

 

CodeDeploy Agent 설치

 

저희는 Ubuntu 22 버전으로 EC2를 생성했습니다. 따라서 아래 공식문서에 들어가서 22버전에 맞는 CodeDeploy용 에이전트를 설치하도록 합시다!!

예시로 제가 코드를 먼저 보여드리겠습니다.

22버전도 아래의 6,7번째 라인 명령어를 실행하셔야 설치가 제대로 완료됩니다!

sudo apt update
sudo apt install ruby-full
sudo apt install wget
cd /home/ubuntu
wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto > /tmp/logfile
 

Ubuntu Server용 CodeDeploy 에이전트 설치 - AWS CodeDeploy

출력을 임시 로그 파일에 쓰는 것은 Ubuntu 20.04에서 install 스크립트를 사용하여 알려진 버그를 해결하는 동안 사용해야 하는 해결 방법입니다.

docs.aws.amazon.com

 

설치를 완료했다면 아래와 같이 입력하여 상태 확인을 해봅시다!

sudo service codedeploy-agent status

 

이 화면이 나오면 activate (running) 이라는 문구가 잘 출력되는 것을 볼 수 있을 것입니다. 그리고 :q 를 사용해서 나갈 수 있습니다!

 

여기까지 CodeDeploy 설치입니다! 

 

다음은 GitHub Actions에 자동 배포 파일을 설정해 보도록 합시다!

 

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - EC2편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - IAM편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - S3 버킷편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - CodeDeploy편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - GitHub Actions편

 

728x90
반응형
LIST