극락이들의 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의
main
branch로 push를 합니다.
- github action에 적용된
Java with Gradle
workflow가 실행되고 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 적용