송민준의 개발노트

[AWS] CodeDeploy + Github Action 구성 본문

AWS

[AWS] CodeDeploy + Github Action 구성

송민준 2023. 1. 9. 00:40

개발 및 인프라 환경

1. AWS (EC2(ubuntu), RDS(Mysql), S3, CodeDeploy)

2. Github (Action)

3. Spring Boot(2.5)

 

1. IAM 생성

- 역할생성

1) EC2 역할( 이름은 적당하게 EC2-IAM... )

권한 추가

2) CODE_DEPLOY 역할

codedeploy 선택
r권한 추가

- 사용자 추가

S3FullAccess
deployFullAccess도 추가

- 생성 후 뜨는 Access key, Secret Key 백업!

 

2. EC2 생성

- 프리티어 사양으로 Ubuntu 22 LTS 기본옵션으로 생성

- 인스턴스 태그추가(Codedeploy에서 연결하기 위한 키) 

- 보안그룹에서 인바운드규칙 추가 (사용할 포트, db 포트, 접근 IP 구성)

- Elastic IP 발행

- Elastic IP 인스턴스에 연결

- 키값으로 putty 연결 해서 설치

sudo apt update
sudo apt upgrade
sudo apt install openjdk-11-jdk (버전에 맞춰서)

sudo apt-get install ruby-full ruby-webrick wget -y
cd /tmp
wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/releases/codedeploy-agent_1.3.2-1902_all.deb
mkdir codedeploy-agent_1.3.2-1902_ubuntu22
dpkg-deb -R codedeploy-agent_1.3.2-1902_all.deb codedeploy-agent_1.3.2-1902_ubuntu22
sed 's/Depends:.*/Depends:ruby3.0/' -i ./codedeploy-agent_1.3.2-1902_ubuntu22/DEBIAN/control
dpkg-deb -b codedeploy-agent_1.3.2-1902_ubuntu22/
sudo dpkg -i codedeploy-agent_1.3.2-1902_ubuntu22.deb
systemctl list-units --type=service | grep codedeploy
sudo service codedeploy-agent status

- 인스턴스 IAM 연결

1에서 만들어놓은거 연결

 

3. CodeDeploy 생성

- 서비스 역할은 1번에서 생성한 CODE_DEPLOY 역할 선택

- 환경 구성은 Amazon EC2 인스턴스 선택( 키값 2번에서 만들었던 인스턴스 태그 키 추가)

- 로드밸런싱은 설정안했다면 체크 박스 해제

 

4. S3 기본 옵션으로 생성

- S3는 CodeDeploy에서 배포할 파일을 보관하는 임시 저장소로 쓴다.

5. RDS 생성 - Mysql 8.x (생략)

 

6. github 세팅

- Security-Secrets-Actions에 Repository secrets 등록

AWS_ACCESS_KEY_ID : AWS IAM 등록 때 생성된 access key
AWS_SECRET_ACCESS_KEY :  AWS IAM 등록 때 생성된 secret key
AWS_REGION : ap-northeast-2

그 외 jwt key, db 정보와 같은 비공개해야 하는 정보들을 여기에 추가하면 된다.

 

 

 

 

 

 

참고 블로그

https://goodgid.github.io/Github-Action-CI-CD-AWS-EC2/

 

Github Action으로 CI/CD 구축하기 - 1편 : AWS EC2 생성 및 설정

Index

goodgid.github.io

https://github.com/aws/aws-codedeploy-agent/issues/301

 

CodeDeploy agent is not supporting ruby v3.0.1 · Issue #301 · aws/aws-codedeploy-agent

When I tried to install codedeploy agent on my server: $ bundle install Fetching gem metadata from http://rubygems.org/........... Resolving dependencies... Bundler found conflicting requirements f...

github.com

https://zzang9ha.tistory.com/339

 

GitHub Action을 통한 CI 구축하기 (SpringBoot + Maven)

• 안녕하세요~ 이전에 운영하던 블로그 및 GitHub, 공부 내용을 정리하는 Study-GitHub 가 있습니다! • 네이버 블로그 • GitHub • Study-GitHub • 🐔 📎 GitHub Action을 통한 Build 자동화 (SpringBoot + Maven)

zzang9ha.tistory.com

https://sarc.io/index.php/aws/1327-tip-codedeploy-missing-credentials

 

[Tip] CodeDeploy 실패서, 조치방법.(Missing credentials)

Tech Note 정보 혀뇽뇽이 님이 작성하신 글입니다. 카테고리: [ Amazon Web Services ] 게시됨: 09 August 2018 작성됨: 09 August 2018 최종 변경: 09 August 2018 조회수: 9386  CodeDeploy 실패 원인은 많지만, Console에서

sarc.io

https://blog.naver.com/PostView.naver?blogId=adamdoha&logNo=222397017342&categoryNo=96&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=search 

 

[AWS] EC2에 배포한 SpringBoot Application과 RDS를 연결할 때(Communications link failure)

EC2와 RDS를 연결할 때, RDS에 무지성 오픈을 멈출 때가 왔다. 테스트는 상관 없지만, 무지성 오픈...

blog.naver.com

 

'AWS' 카테고리의 다른 글

ec2 배포  (0) 2020.04.06
AWS RDS(MariaDB) 해보기  (0) 2020.03.31
AWS Amazon Linux 1 써보기  (0) 2020.03.29
AWS RDS Oracle 시간대 변경  (0) 2020.02.05
ubuntu 파일 경로 설정 및 파일생성 권한  (0) 2020.02.04