극락이들의 CleanCode 가이드 문서입니다.
⇒ 궁금한 점이 있으면 데이비(
)에게 질문해주세요!
)에게 질문해주세요!Infra 구성을 위해 해당 페이지를 참고하였습니다.
Back-End Infra Architecture

구성
- Github actions (java with gradle)
- AWS S3
- AWS RDS
- AWS EC2 (Ubuntu 20.04 LTS)
- AWS Code Deploy
- Docker
- NGINX
- AWS Certificate Manager
- AWS Route 53
- AWS Elastic Load Balancer (Application Load Balancer L7)
배포 순서
main branch로 push 했을 때의 배포 과정입니다.- Github Repository의
mainbranch로 push를 합니다.
- github action에 적용된
Java with Gradleworkflow가 실행되고 build가 됩니다.
- build된 결과물
jar파일을AWS S3에 저장합니다.
- Code Deploy를 통해 ec2 instance에 실행되고 있는 docker conatiner로 Spring Boot를 실행합니다.
접근
- 배포 서버
- Client 는 https://api.jungdam.tk 를 통해 접근합니다.
- Route 53에 적용된 HTTPS 인증서를 확인하여 HTTPS 접근이 가능해집니다.
- Application Load Balancer를 통해 ec2 instance로 라우팅 되고 원하는 리소스를 응답 받습니다.
- 테스트 서버
- Client는 https://test-api.jungdam.tk 를 통해 접근합니다.
- Route 53에 적용된 HTTPS 인증서를 확인하여 HTTPS 접근이 가능해집니다.
- Application Load Balancer를 통해 ec2 instance로 라우팅 되고 원하는 리소스를 응답받습니다.
📝 TODO
CI/CD
Spring Boot (Gradle) Repository 만들기
Github Actions 만들기 ← 프로젝트 Repo 에도 적용해야함
AWS IAM을 생성하여 외부 접근 허용
AWS S3 설정 후, Github Secret 설정 ← 프로젝트 Repo 에도 적용해야함
Github Workflow에 s3로 보내는 job 적용
S3로 파일보내기
AWS IAM 역할을 만들어
S3 ↔ EC2 와 연결하기역할 만들기
EC2 생성
EC2 IAM 역할 수정
EC2 재부팅
EC2 instance에 codedeploy 설치 (
aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/install . --region ap-northeast-2)CodeDeploy를 위한 IAM 역할 생성
CodeDeploy Application 생성하기
배포 그룹 생성
SpringBoot 프로젝트 폴더에 appspec.yml 설정
ec2 환경에 디렉토리 생성
/home/ubuntu/app/deploy github workflow deploy job 추가
Code Deploy 설정하여 ec2로 파일 전송까지 해보기
Docker Env
EC2 Docker 설치 및 환경 셋팅
Code Deploy로 부터 Docker Container 만들어 실행시켜보기
Request & Response
Route 53에 DNS등록하기
HTTPS 인증서 적용
NGINX Reverse Proxy Setting
More
RDS 설정
S3 image 파일 설정
Front End 정적파일 배포를 위한 Github workflow 적용




![[Deploy] CodeDeploy로 자동배포 해보기](https://www.notion.so/image/https%3A%2F%2Fwoomin.netlify.app%2Fstatic%2F0ee612404a22217719292d8f21ced412%2F935bc%2F2.jpg?table=block&id=fd28a2c7-d231-41b0-a480-a8747abda3c6&cache=v2)
![[Devops] Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 3](https://www.notion.so/image/https%3A%2F%2Fstalker5217.github.io%2Fassets%2Fimages%2Fdevops%2Fgithub_action_ci_cd%2Fiam_role_1.png?table=block&id=477e14ba-bb11-4d05-b9a1-bd16de6b074c&cache=v2)