본문 바로가기
📝 회고/✅ 22년 회고

[의사결정, 일일회고] 22.06.15 - "백엔드(Spring) 배포와 아키텍처"

by kukim 2022. 6. 16.

📚 배운 것

백엔드(Spring) 배포 방법 고민

어제는 FE 배포를 하였다. 오늘은 BE를 배포한다. 아직 초기 프로젝트 세팅만 하고 구현 코드는 없지만 CI/CD 자동화 배포를 구축한 뒤 프로젝트 기능이 추가될 때 마다 배포하고 싶어서였다.

 

제약 사항

- 비용(aws 프리티어)

 

고민한 배포는 아래와 같다.

 

Case 1 : Docker + Docker hub

도커 이미지를 도커 허브에 올려 사용한다. 이전 프로젝트를 이 방법으로 배포했다.

 

장점

- 간단하다

- DockerFile만 만들면 끝난다.

- Docker 환경이라 배포가 자유롭다.

- 이미지 저장소 free

 

단점

- 무료로 사용하면 배포 이미지가 노출된다.

- 단순 EC2 오토 스케일링을 한다면 모든 EC2에 도커가 설치된 뒤 그 위에 올라가야 한다.

 

Case 2 : Docker + S3

Case1 과정에서 이미지 저장소를 DockerHub가 아닌 S3에 저장하여 사용한다.

 

장점

- 이미지 유출을 막는다

 

단점

- S3 비용 발생

 

Case 3 : CodeDeploy + S3

 

docker에 jar 올린 이미지 만들지 않고, 직접 jar 파일을 배포하기(이 방법을 docker에 올릴 수 있겠지만)

 

장점

- ec2마다 별도의 docker 설치하지 않아도 됨

- 오토스케일링 기능 사용하기 편함, 유동적 IP 대응도 쉬움

- ELB 트래픽 제어도 간편하다

 

단점

- S3 비용 발생

- 단순 jar는 Docker가 가지는 확장성이 없다.(?) (AWS의 EKS 사용)

 

CodeDeploy 배포 연습과 AutoScaling 연습 겸 Case 3으로 결정하고 배포하였다.

 

Github ActionsPR 제출 완료 

 

+a) 배포 전쟁에 함께해준 제리, 루시드와 구경해준 멤버들 모두 감사합니다.

🔥Problem

  • 중간에 안쉬고 계속하니 집중력이 떨어진다.

🚒 Try

  • 꼭 쉬면서 해야겠다.
 

댓글