-
데이터베이스를 Docker 환경에서 운영하면 안되는 이유DB 2021. 11. 7. 21:39
Docker와 같은 컨테이너 기술에서 컨테이너는 stateless하다고 가정한다.
즉, 실행 중에 컨테이너에 지속적으로 유지되어야 할 데이터를 저장해서는 안 된다.
컨테이너는 함수와 같이 취급되어야 한다.
Docker 자체가 stateful한 서비스를 위해 설계된 것이 아니며,
컨테이너가 제거될 때 컨테이너 실행 중에 생성된 데이터도 제거된다.
또한 쿠버네티스와 같은 오케스트레이션 도구는
트래픽에 따라 컨테이너를 생성하고 삭제할 수 있다.
같은 이미지로 같은 컨테이너를 생성하더라도,
데이터베이스의 경우 각 컨테이너의 데이터가 다르면 트래픽 분산을 하는 의미가 없어진다.
만약 하나의 컨테이너만 운영한다면, 트래픽 분산이 불가능하다.
물론 Docker 볼륨 등을 이용하여 지속적으로 데이터를 유지할 수 있다.
하지만 다수의 컨테이너를 사용할 때 운영의 복잡성이 증가한다.
즉 데이터베이스를 Docker 컨테이너로 운영한다고 하더라도,
Docker가 가진 장점이 제대로 활용되지 못하기 때문에
굳이 Docker 환경을 선택해야 할 이유가 없다.
참고자료
Database in a Docker container — how to start and what’s it about
With this blog post I would like to present to you how easily you can run database, PostgreSQL as an example, Docker container. Moreover…
wkrzywiec.medium.com
https://www.cloudsavvyit.com/5414/should-you-run-a-database-in-docker/
Should You Run a Database in Docker?
Containerizing server workloads is growing ever more popular, and it’s becoming increasingly common to see web server deployments running in containers. Can the same benefits be applied to databases?
www.cloudsavvyit.com
'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