작성
·
113
·
수정됨
0
안녕하세요 docker 기반으로 cicd 적용시에
docker stop 하고 docker rm 으로 container 죽인담에 다시 docker pull -> docker start 하는거면 그 잠깐의 시간이겠짐나 어쨋든 끊기지 않나요 ?
혹시 끊기는 시간을 더 줄인다고 하면 우선 먼저 docker pull 를 하고나서 이전 docker stop docker rm 을 하고 새롭게 docker pull 받은것을 docker run -d 할수있으면 좋을것 같은데 방법 있을까요 ?
ecs 에서도 ec2 가 있는걸로 알고있는데요 ecs ec2 를 사용하게 되면 blue green 은 아니더라도 롤링 배포를 할 수 있을것 같은데 사용하지 않은 이유가 있을까요 ?
답변 2
0
안녕하세요 SJ님! 하나씩 답변드려볼게요~!!
맞습니다! docker pull -> start를 하게 되면 잠깐이긴 하지만 서버가 끊기게 됩니다.
말씀해주신 방법이 단일 서버에서는 간단하면서도 끊기는 시간을 최소화하는 방법이라고 생각합니다!
현재 강의에서는 '무중단 배포'에 초점을 맞추지 않고, CI/CD를 중점적으로 초점을 맞춰서 수업을 하다보니 사용하지 않았습니다! 그리고 무중단 배포를 희망하실 경우 CodeDeploy의 blue green 배포를 학습해보시면 좋을 것 같습니다:)
이 외로 궁금하신 점 있으시면 또 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. SJ님.
Docker 기반의 CI/CD 파이프라인에서 말씀하신 과정을 수행하면, 잠깐의 시간이지만 서비스가 중단될 수 있습니다. 이는 docker stop
및 docker rm
명령어로 기존 컨테이너를 중지하고 제거한 후, 새로운 이미지를 풀(pull)하고 실행(run)하는 동안 발생할 수 있는 지연 때문입니다.
무중단 배포를 위해 몇 가지 방법이 있습니다:
로드 밸런서 사용: 로드 밸런서를 사용하여 여러 인스턴스에 트래픽을 분산하면 중단 없이 배포할 수 있습니다. 배포되는 인스턴스에서만 잠시 트래픽을 차단하고 업데이트 후 다시 활성화하는 방식입니다.
블루-그린 배포: 두 개의 환경(블루와 그린)을 사용하여 새 버전을 배포합니다. 새 버전을 별도의 환경에 배포한 후, 무중단으로 해당 환경으로 트래픽을 전환합니다.
롤링 업데이트: Kubernetes 같은 오케스트레이션 도구를 사용하여 순차적으로 컨테이너를 교체하는 방법으로, 한 번에 하나씩 업데이트하여 중단 시간을 최소화합니다.
Canary Deployment: 새로운 버전을 일부 사용자에게 먼저 배포하여 문제가 없는지 확인한 후 전체 배포를 진행하여 위험을 최소화합니다.
아래 유사한 내용의 링크들도 참고해 보시면 도움이 될 수 있습니다:
- CI/CD는 무중단 배포와 다른 느낌인 것이죠?: CI/CD와 무중단 배포의 차이점을 이해하실 수 있습니다.
- EC2에 배포하기 전에 기존 이미지를 삭제하고 배포해도 되나요?: Docker 이미지 삭제 및 관리에 관한 내용입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넌 인턴인데 되게 성실하네 근데 정직원 언제 되니