Docker와 Scale Out

박동규·2023년 8월 22일
0

도커 파일 == 서버 운영 기록
도커 이미지 == 도커 파일 + 실행 시점 (특정 시점에서 빌드된 파일)
도커 컨테이너 == 도커 이미지 + 환경 변수(이미지 실행 시점에 수정되어야 할 정보들을 더한 것)

Docker와 Scale Out

도커를 사용하면 수평적 확장에 유리하다 하는데

AWS ELB & autoscaling 같은 서비스로 EC2 인스턴스를 복제하여 서버를 늘리는 것도 똑같이 수평적 확장인데, 꼭 도커를 한번 더 사용해 수평적 확장을 해야 하는가?

의 궁금증으로 작성한 글이다.

결론부터 이야기하자면, 도커가 수평확장에 유리하다는건 문자 그대로의 확장(EC2 인스턴스를 복제하듯이 서버를 늘리는 것) 개념보다는
Scale Out 과정에서 필요한 정보들과 +서버 확장의 용이성을 합쳐 이야기 하는 것 같다.

Cloud의 인스턴스 복제를 통해 서버를 Scale Out하며 관리한다면 특정 플랫폼(AWS등)에 서버가 종속되지만,
도커를 사용하면 서버를 운영한 모든 기록을 docker file로 남기기 때문에 플랫폼 이동도 비교적 자유롭고, 서버를 관리자가 컨트롤 할 수 있다.

또한,
1개의 운영서버로 서버를 운영했다면, 운영중인 서버의 환경설정은 마음대로 건드릴 수 없고

개발 서버를 따로 만드는 방식으로 테스트 서버를 운영하게 되는데
이러한 방법으로 여러 개발자의 손을 거친 개발 서버는
또 운영 서버와는 환경이 많이 달라질 것이다.

이를 도커를 통해 관리한다면, docker file 기록을 통해 운영중인 서버의 설정을 부담없이 건드려 볼 수 있고
이미지 파일을 만들어 실행하는 것으로 개발서버건 운영서버건 같은 환경에서 서버를 운영할 수 있을 것이다.

즉, 도커를 사용하게 되면 하나의 서버를 운영할 때 운영체제부터, 컴파일러, 설치된 패키지 등 모든 운영기록을 코드화하여(docker file) 빌드 시점을 이미지 파일로(docker image) 만들어 저장하기 때문에, 운영 중인 서버를 늘려야 할 때 관리자가 이러한 모든 환경을 신경쓰고 맞춰야 하는 번거로움을 덜 수 있는 것이다.

참조 : https://wonyong-jang.github.io/devops/2021/12/31/DevOps-docker.html |
https://www.44bits.io/ko/post/why-should-i-use-docker-container

0개의 댓글