-
데이터베이스를 Docker 환경에서 운영하면 안되는 이유DB 2021. 11. 7. 21:39
Docker와 같은 컨테이너 기술에서 컨테이너는 stateless하다고 가정한다.
즉, 실행 중에 컨테이너에 지속적으로 유지되어야 할 데이터를 저장해서는 안 된다.
컨테이너는 함수와 같이 취급되어야 한다.
Docker 자체가 stateful한 서비스를 위해 설계된 것이 아니며,
컨테이너가 제거될 때 컨테이너 실행 중에 생성된 데이터도 제거된다.
또한 쿠버네티스와 같은 오케스트레이션 도구는
트래픽에 따라 컨테이너를 생성하고 삭제할 수 있다.
같은 이미지로 같은 컨테이너를 생성하더라도,
데이터베이스의 경우 각 컨테이너의 데이터가 다르면 트래픽 분산을 하는 의미가 없어진다.
만약 하나의 컨테이너만 운영한다면, 트래픽 분산이 불가능하다.
물론 Docker 볼륨 등을 이용하여 지속적으로 데이터를 유지할 수 있다.
하지만 다수의 컨테이너를 사용할 때 운영의 복잡성이 증가한다.
즉 데이터베이스를 Docker 컨테이너로 운영한다고 하더라도,
Docker가 가진 장점이 제대로 활용되지 못하기 때문에
굳이 Docker 환경을 선택해야 할 이유가 없다.
참고자료
https://www.cloudsavvyit.com/5414/should-you-run-a-database-in-docker/
'DB' 카테고리의 다른 글
PostgreSQL 외부 접속 허용 및 IP주소 제한 (0) 2021.11.07 다중 태그 검색 SQL문 (0) 2021.10.31 Ubuntu에서 PostgreSQL 설치 및 데이터 저장 위치 변경하기 (0) 2021.10.26 데이터베이스별 boolean 데이터 타입(PostgreSQL, MySQL, Oracle) (0) 2021.10.15 PostgreSQL timestamp vs timestamptz (0) 2021.10.14