본문 바로가기
개발 · IT/시스템 · 인프라

도커(Docker) 사용 이점: 더 효율적이고 경제적인 애플리케이션 관리

by 플라퉁 2023. 2. 20.
반응형

도커(Docker) 사용 이점

1. 환경 격리 (Isolation)

  • 컨테이너마다 독립된 환경을 가짐 → DB, 웹앱, 캐시가 서로 충돌 안 함.
  • 예: 웹앱은 Node.js 20, DB는 Postgres 16 → 한 서버 안에서 다른 버전 충돌 없이 공존 가능.
  • OS 레벨 패키지 충돌(라이브러리, 포트 점유 등) 문제 방지.

2. 배포와 복구가 단순

  • 앱 배포 = docker pull + docker run → 코드 빌드/설치 과정 없이 바로 실행.
  • 장애 시: docker restart db → DB만 재시작, 웹서비스는 그대로 유지.
  • 특정 서비스 교체 가능: 예를 들어 MariaDB → Postgres 전환 테스트 시 컨테이너만 바꿔 띄워도 됨.

3. 자원 관리 쉬움

  • 컨테이너별 CPU/메모리 제한 설정 가능 (cpus: "0.5", memory: 512M).
  • DB는 4GB 메모리, 웹앱은 512MB 이런 식으로 배분 → 한 서비스가 폭주해도 다른 서비스 영향 최소화.
  • 필요하면 scale-out: 웹앱 컨테이너를 1개에서 3개로 늘려 부하 분산.

4. 이동성 (Portability)

  • “한 번 빌드하면 어디서든 실행” (개발용 노트북, 테스트 서버, 운영 서버 동일).
  • 개발/테스트/운영 환경 차이 줄어듦 → “내 로컬에서는 잘 되는데…” 문제 감소.

5. 보안 강화

  • 서비스별 격리 → DB 컨테이너에는 3306포트만 내부 네트워크로 열어두고 외부에서는 접근 불가.
  • 웹앱 컨테이너만 외부 80/443 포트 노출 → 공격 표면 축소.
  • 필요 시 read-only filesystem 옵션으로 쓰기 권한 최소화.

6. 로그·모니터링 관리 용이

  • 컨테이너 단위 로그 → docker logs web1, docker logs db.
  • 중앙 로깅/모니터링(cAdvisor, Prometheus, Grafana)과 쉽게 통합 가능.

7. 업데이트/롤백 용이

  • 웹앱 새 버전 배포: docker-compose up -d web1 → 기존 컨테이너 내려가고 새 컨테이너 올라옴.
  • 문제가 있으면 docker-compose rollback으로 바로 이전 버전 복귀.

8. 운영 안정성

  • DB에 문제가 생겨도 웹앱 컨테이너는 살아있음 → 영향 범위 최소화.
  • 특정 서비스만 모니터링/재시작 가능 (restart: unless-stopped).

✅ 정리

DB와 웹서비스를 컨테이너로 분리하면

  • 충돌 없는 환경 격리
  • 빠른 배포와 쉬운 복구
  • 자원 제한과 부하 분산
  • 어디서든 실행 가능한 이동성
  • 보안 강화와 운영 안정성
  • 업데이트와 롤백의 유연성

을 얻을 수 있습니다.

 

 

 

docker 설치 : https://rhgustmfrh.tistory.com/246

반응형

댓글