Web Development/Docker

서버 배포, 운영에서 Docker쓰면 뭐가 좋냐

doriver 2024. 7. 10. 18:09

Docker

서버를 코드로 구성하고 관리하는 방법으로써 도커

서버 구축에서 서버 환경, 구축하는 사람 차이 최소화

 

운영하면서 만들어지는 눈송이 서버들( Snowflake Servers )

A 서버는 2달 전에 구성했고 B 서버는 이제 막 구성
A서버는 잘 되는데 B서버는 왜 죽었지?

 

장애 해결에 있어서, 두 서버간 차이를 파악하는건 중요하지만

두 서버간 차이를 알아내기는 쉽지 않음

( A서버가 구성되고 운영된 과정 파악필요, A서버를 잘 아는 사람이 필요 )

 

모든 눈송이의 모양이 다르듯, 서버들도 서로 다른 모습
서로 모양이 다른 서버들이 존재하는 상황을 눈송이 서버( Snowflakes Server )

처음엔 각 서버 사이의 차이점이 작을지 모르지만, 서버를 오래 운영하다보면 점점 커져서 감당x

서버를 코드로 구성하고 관리

다양한 방식으로 서버 운영 기록을 저장해 두곤 함( 서버의 운영 기록을 코드화하려는 다양한방법들 존재 )
문서에 적힌 대로 해봐도 잘 안 되는 경우가 생김( 그때는 맞고 지금은 틀림 )
여러 서버를 한 번에 조작할 때도 특정 서버 하나만 문제를 일으키는 경우가 허다

도커 파일로 이미지를 만들어 두면, 서버가 구성되는 시점이 이미지를 만든 시점으로 고정
이 이미지를 사용해 1년 전에 A 서버에 컨테이너를 배포하고, 오늘 B 서버에 컨테이너를 배포한다고 해도 차이가 없음


덕분에 서버를 항상 똑같은 상태로 만들 수 있다

 

컨테이너를 언제 실행하든 이미지가 변하지 않았다면 컨테이너의 내용도 완전히 똑같습니다.
배포(혹은 실행)하는 시점과 상관 없이 서버의 내용을 똑같게 만들수 있음

 

서버를 만들 때 미리 실패해보는 일은 중요

도커 파일 작성 >  이미지 빌드 > 이미지 빌드 실패  > 수정  > ...  > 이미지 빌드 성공

 

여러대로 늘리기 쉬움( 확장성 )

사용자가 많이몰려 컨테이너 하나로 벅차면
도커컨테이너를 여러개 더 실행하기만 하면 된다

 

 

 

 

https://www.44bits.io/ko/post/why-should-i-use-docker-container#%EC%84%9C%EB%B2%84%EB%A5%BC-%EC%BD%94%EB%93%9C%EB%A1%9C-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B3%A0-%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94-%EB%8B%A4%EC%96%91%ED%95%9C-%EB%B0%A9%EB%B2%95

 

왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유

컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를

www.44bits.io