일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 알고리즘
- Action
- CodeDeploy
- springboot
- Spring
- git
- redis
- Github
- EC2
- 토비의 스프링
- build_test
- QueryDSL
- db
- Airflow
- aws
- mutable
- java
- rds
- compiler
- string
- workflow
- kotlin
- template
- 사이드 프로젝트
- AOP
- JUnit
- immutable
- JPA
- Today
- Total
개발 일기
Github action 과 aws codeDeploy를 이용하여 SpringBoot 프로젝트 ec2에 배포하기 - 1 본문
안녕하세요 이번 포스팅에서는
github action과 aws codeDeploy를 이용하여
SpringBoot 프로젝트를 ec2에 배포해보겠습니다.
(CI CD 구축)
흐름도 첨부 예정
전체적인 흐름은 이러합니다
개발자 - Github action - aws cli s3 업로드 - codeDeploy ec2 코드 전송
AWS 권한 설정하기
aws cli를 이용할거기 때문에 문서를 찾아봅니다
Access Key Id 와 Secret Key 가 필요합니다.
일단 EC2 의 설정부터 시작하겠습니다.
1-1 EC2 역할 설정하기
IAM - 역할 메뉴로 이동합니다.
aws 검색창에 IAM으로 검색하면 IAM 메뉴로 이동할 수 있습니다.
역할 만들기를 클릭해줍니다.
해당 화면에서 EC2를 클릭하고 다음으로 이동합니다.
역할의 이름과 정책을 선택해줍니다.
현재 화면 진입전에 역할을 검색할 수 있는 보드가 나옵니다. 위의 4개의 역할을 골라줍니다.
역할을 생성후 EC2 대시보드로 돌아와 역할을 부여해줄 ec2의 IAM 역할을 변경해줍니다.
1-2 EC2에 Code Deploy Agent 설치 하기
EC2에 Code Deploy Agent를 설치를 진행하겠습니다.
s3에 배포후 ec2에 배포하기 위해서는 Code Deploy Agent가 필요합니다.
sudo yum update
sudo yum install ruby
sudo yum install wget
wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status
이 부분은 사진을 못 찍은 관계로 공식 문서를 링크로 첨부하겠습니다.
공식 문서에서 wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install
이 부분만 위의 링크로 변경해서 설치하시면 되니다.
아마존 리눅스 또는 RHEL용 CodeDeploy 에이전트 설치 - AWS CodeDeploy
네 번째 명령에서/home/ec2-user는 Amazon Linux 또는 RHEL Amazon EC2 인스턴스의 기본 사용자 이름을 나타냅니다. 사용자 지정 AMI를 사용하여 인스턴스를 만든 경우 AMI 소유자가 다른 기본 사용자 이름을
docs.aws.amazon.com
2-1 CodeDeploy 권한 설정하기
다시 IAM 역할로 돌아옵니다.
이번에는 CodeDeploy의 권한을 설정하겠습니다
CodeDeploy를 클릭 후 다음으로 넘어갑니다.
위와 같은 정책을 선택해준 후 역할 이름을 설정하고 역할을 생성합니다.
2-2 CodeDeploy 애플리케이션 생성하기
검색창에 CodeDeploy를 검색 후 이동합니다.
애플리케이션에서 애플리케이션 생성을 눌러줍니다.
CodeDeploy의 이름과 EC2/온프레미스를 선택한 후 생성을 눌러줍니다.
저는 이미 배포 그룹을 생성한 상태입니다.
생성한 CodeDeploy의 배포그룹을 생성해줍니다
배포 그룹 이름과
서비스 역할 - 위에서 만든 IAM 역할을 선택해 줍니다.
애플리케이션 배포 방법과
EC2 인스턴스의 태그 그룹과 값을 선택해서 EC2를 추가해 주고 그룹을 생성합니다.
CodeDeploy 생성이 끝났습니다.
3 S3 생성하기
검색창에 S3를 입력하고 이동 후 버킷 만들기를 눌러줍니다.
한국 기준
위와 같이 버킷 이름과 리전을 선택 후
퍼블릭 액세스 차단을 체크한 후
버킷을 생성해줍시다.
4. S3에 액세스 할 사용자 생성하기
외부에서 S3 버킷에 접근할 수 있도록 사용자를 생성하겠습니다.
IAM 메뉴의 사용자로 이동후 사용자 추가를 눌러줍니다.
체크박스를 체크하고 사용자 이름을 설정해줍니다.
권한에는 위와 같이 S3와 CodeDeploy의 권한을 부여하고 다음으로 이동합니다.
다음으로 이동시 액세스 키와 시크릿 키를 부여받을 수 있습니다
꼭 저장하여 잃어버리지 않게 하며 기억해 둡시다.
다음 포스팅에서 GitHub Action에서 사용할 키와 값이 됩니다.
aws 권한 설정은 끝났습니다 다음 포스팅에서는 배포를 진행해 보겠습니다.
'Spring' 카테고리의 다른 글
SpringBoot 2.5.X 버전 이상에서 QueryDsl 설정하기 (0) | 2021.08.05 |
---|---|
SpringBoot 에서 Test DB H2 로 설정하기 (0) | 2021.08.02 |
Github action 과 aws codeDeploy를 이용하여 SpringBoot 프로젝트 ec2에 배포하기 - 2 (0) | 2021.07.25 |
AWS RDS 와 Spring Boot 연동하기 (0) | 2021.07.23 |
Spring Boot 프로젝트 초기 생성 (0) | 2021.07.14 |