📚 배운 것
백엔드(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으로 결정하고 배포하였다.
+a) 배포 전쟁에 함께해준 제리, 루시드와 구경해준 멤버들 모두 감사합니다.
🔥Problem
- 중간에 안쉬고 계속하니 집중력이 떨어진다.
🚒 Try
- 꼭 쉬면서 해야겠다.
댓글