본문 바로가기

개발/docker

(3)
도커 스웜 배경하나의 호스트 OS에서 컨테이너가 많아지게 되면 CPU, 메모리, 디스크 용량 등과 같은 자원이 부족하게 됩니다. 이를 해결하기 위해선 어떻게 할까요? 크게 scale up과 scale out 방법이 떠오릅니다. scale up의  경우엔 하나의 서버 자체의 크기를 키우는 것이고, scale out은 여러대의 서버를 운영하게 하는거죠. 보통 scale out을 많이 사용한다고  알려져있는데 이때 클러스터라는 개념이 등장합니다. 클러스터란 각기 다른 서버들을 하나로 묶어 하나의 시스템같이 동작하게 만들어 클라이언트들에게 고가용성의 서비스를 제공하는 것을 말합니다. 하지만 서버 등록은 어떻게 할건지, 어떠한 서버에 어떠한 작업을 할당할건지 등과 같은 처리해야 될 작업이 증가하게 됩니다. 이때 나오게 된 ..
docker compose에서 health check를 활용한 spring boot app 띄우기 배경개발을 조금씩 해나가면서 docker의 소중함에 대해 정말 많이 느끼고 있습니다.. 이번 프로젝트 MSA 환경에서도 docker container를 통해 각 서버를 순서대로 띄우려고 했는데 잘 안됐단 말이죠. 구글링과 gpt를 통해 health check를 사용하면 된다는 것을 알아서 적용을 해보았지만 정상적으로 health 체크가 되지 않는지 자꾸 다음 서버가 제대로 띄워지지 않았습니다.. 튜터님이 actuator를 통해 health 체크를 하면 되지 않을까?라고 살짝 언급을 주셔서 그 부분에 이어서 내용을 시작해 보도록 하겠습니다. 내용먼저 actuator를 활용하기 위해 spring boot의 eureka 서버에 gradle 설정을 해야합니다. spring boot 버전은 3.4.0, jdk는 ..
docker란? 배경개발을 하다 보면 docker를 정말 많이 사용합니다. docker container를 통해 각기 다른 서버에서도 동일한 운영을 할 수 있게 해준다거나 독립적인 개발환경 구축이 가능하다거나 등등.. 이제는 개발과 떼어놓을 수 없는 수준이라고 생각합니다. 하지만 이런 단편적인 지식만 알고 쓰기엔,  앞으로 docker를 마주할 일이 시도때도 없이 있을 거란 말이죠.. 그래서 오늘은 docker의 탄생 배경과 어떤 식으로 구성되어 있는지 간단하게 알아보려고 합니다. 내용docker는 컨터이너 기반 가상화 도구입니다. 왜 탄생하게 되었을까요? 2000년대 초까지만해도 가상화 없이 하드웨어에 직접 OS와 Application을 설치하였습니다. 서버 성능이 모자르면 성능이 좋은 장비를 구매하는 Scale up..