이번에는 Docker를 사용하여 프로젝트를 배포해도록 할 것인데 도커의 실습에 앞서 Docker가 무엇인지에 대해 먼저 다루고자한다.
Docker가 무엇인가?
도커에 대해 설명하기전에 클라우드 컨테이너라는 단어를 이해하고 넘어갈 필요가 있다.
클라우드 컨테이너라는것은 애플리케이션을 가상화 시켜 클라우드내에 저장하여 사용하는 방식으로 로컬에 대한것은 신경쓸 필요가 없다.
더 쉽게 이해하기 위해 비유를 하자면 공사장의 물품(프로젝트)을 컨테이너에 감싸서 저장한 뒤 실제로 작업하는 작업장(로컬)이 아닌 언제든지 접근이 가능한 장소(클라우드)내에 저장시켜 필요할 때 마다 사용한다고 생각하면 된다.
Docker는 이러한 컨테이너를 다루기 위한 프로그램으로 애플리케이션을 이미지화 시켜 저장하고 실행이 가능하게 해주는 역할을 한다.
Docker는 왜 필요할까?
이제 Docker에 대해 어느정도 이해를 했다면 "그래서 Docker를 사용해서 얻을 수 있는 장점이 뭔데?" 라는 의문점이 생길수 도 있는데 이에 대해 답변을 하자면
1. 빠른 배포가 가능하다.
- 원래는 프로젝트를 배포하기 위해서는 프로젝트 전체를 클라우드내에 업로드 할 필요가 있는데 도커를 사용하여 프로젝트를 가상화 시키면 가상화 된 이미지만을 업로드하면 되기 때문에 번거로움이 줄어든다.
2. 환경 일관성을 챙길 수 있다.
- 프로젝트를 배포하고 실행할 때 실행하는 사용자에 맞춰서 환경설정을 해줄 필요가 있는데 프로젝트를 이미지화 시켜 실행시키기 때문에 실행 환경을 동일화 시킬 수 있고 "내 컴퓨터에서는 잘 됐는데"와 같은 문제가 발생되지 않는다.
3. 자원 효율성
- 도커는 호스트 시스템을 공유하면서도 각 컨테이너가 격리되어 있기 때문에 가상 머신에 비해 자원을 효율적으로 사용이 가능하다. 이는 더 많은 애플리케이션을 단일 서버에서 실행할 수 있게 하고, 하드웨어 리소스를 최대한 활용할 수 있도록 할 수 있게 해준다.
즉, 한줄로 요약하자면 도커를 사용할 때 프로젝트를 직접 배포하는것 보다 이식성과 유연성을 챙길 수 있으며 자원의 낭비도 적어진다고 생각하면 된다.
'클라우드' 카테고리의 다른 글
| Docker와 Mysql연동 및 Ec2 배포 #上 (1) | 2024.04.28 |
|---|---|
| Docker 배포해보기 #下 node.js 프로젝트 배포해보기 (1) | 2024.03.12 |
| Node 백그라운드 실행 및 종료 (0) | 2024.03.08 |
| Node.js Ec2 배포해보기#下 클라우드 설정 및 배포 (0) | 2024.02.20 |
| Node.js Ec2 배포해보기#中 ssh를 통한 클라우드 접속 (0) | 2024.02.20 |