설정 파일
sites-enabled/default
에 설정했다.
health-check
외부 nginx 가 헬스 체크 API 를 호출하기 위해서는 헬스 체크 API 를 구현해야 한다. 헬스 체크 시 인증을 적용하여 외부 접근을 제한한다.
도커로 스프링 애플리케이션 분리하기
docker vs docker-compose
docker
- 각 컨테이너에 대한 명령어를 명시적으로 실행하므로, 어떤 동작이 발생하는지 쉽게 이해할 수 있다.
- 각 환경의 컨테이너를 수동으로 관리하고 업데이트해야 한다. 네트워크 설정, 볼륨 마운트 등의 추가 구성을 각 컨테이너마다 수동으로 처리해야 할 수 있다.
docker-compose
docker-compose.yml
파일에 블루 그린 환경 구성을 미리 정의하면, 한 명령으로 전환 및 배포를 수행할 수 있다. 모든 설정과 서비스 설정이docker-compose.yml
파일에서 관리된다.docker-compose
의 구성, 명령어에 대해 학습해야 해서 학습 곡선이 존재한다.
블루-그린 배포 전략을 사용하는 경우 docker-compose
가 더 적합하다.
- 모든 설정을
docker-compose.yml
파일에서 관리할 수 있어 일관성이 유지되어 블루와 그린 환경을 빠르게 교체할 수 있다. - 한 명령어로 블루 그린 환경을 전환할 수 있다.
- 추가 서비스나 설정을 포함하기 위해
docker-compose.yml
파일만 수정하면 된다.
추가 ) GPT 답변
docker-compose
가docker
명령어에 비해 관리 및 운영 측면에서 더 효과적인 이유는 여러 가지입니다:
- 설정 중앙화:
docker-compose
를 사용하면 모든 서비스 및 컨테이너 관련 설정을 하나의docker-compose.yml
파일에 중앙화하여 관리할 수 있습니다. 이렇게 하면 여러 컨테이너와 서비스에 대한 설정을 일관성 있게 유지할 수 있습니다.- 단순화된 명령어:
docker-compose
는 여러 컨테이너를 동시에 시작, 중지, 재시작하는 등의 작업을 간소화합니다. 예를 들어, 여러 컨테이너를 한번에 시작하려면docker-compose up
만 실행하면 됩니다.- 네트워크 관리:
docker-compose
를 사용하면 여러 컨테이너 간의 네트워크 연결 및 설정이 훨씬 간단해집니다.docker-compose.yml
파일에서 네트워크 설정을 명시적으로 정의할 수 있습니다.- 확장성: 서비스를 확장하거나 추가적인 컨테이너를 포함시키기 위해선
docker-compose.yml
파일만 수정하면 됩니다. 이후docker-compose up -d
를 실행하여 변경 사항을 적용할 수 있습니다.- 재사용성:
docker-compose.yml
파일은 다른 환경이나 팀원 간에도 쉽게 공유하고 재사용할 수 있습니다. 이로 인해 배포나 개발 환경의 일관성을 유지하기 쉽습니다.- 문서화:
docker-compose.yml
파일 자체가 어떤 서비스들이 있고, 어떻게 연결되어 있는지에 대한 문서의 역할을 합니다. 즉, 새로운 팀원이나 다른 관리자가 시스템을 이해하기 위해 참조할 수 있는 좋은 자료가 됩니다.