인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

SJ님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 컨테이너 기반의 프로젝트에서 많이 쓰는 CI/CD 구축 방법

docker 기반 cicd 배포

작성

·

113

·

수정됨

0

안녕하세요 docker 기반으로 cicd 적용시에

  1. docker stop 하고 docker rm 으로 container 죽인담에 다시 docker pull -> docker start 하는거면 그 잠깐의 시간이겠짐나 어쨋든 끊기지 않나요 ?

  2. 혹시 끊기는 시간을 더 줄인다고 하면 우선 먼저 docker pull 를 하고나서 이전 docker stop docker rm 을 하고 새롭게 docker pull 받은것을 docker run -d 할수있으면 좋을것 같은데 방법 있을까요 ?

  3. ecs 에서도 ec2 가 있는걸로 알고있는데요 ecs ec2 를 사용하게 되면 blue green 은 아니더라도 롤링 배포를 할 수 있을것 같은데 사용하지 않은 이유가 있을까요 ?

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 SJ님! 하나씩 답변드려볼게요~!!

  1. 맞습니다! docker pull -> start를 하게 되면 잠깐이긴 하지만 서버가 끊기게 됩니다.

  2. 말씀해주신 방법이 단일 서버에서는 간단하면서도 끊기는 시간을 최소화하는 방법이라고 생각합니다!

  3. 현재 강의에서는 '무중단 배포'에 초점을 맞추지 않고, CI/CD를 중점적으로 초점을 맞춰서 수업을 하다보니 사용하지 않았습니다! 그리고 무중단 배포를 희망하실 경우 CodeDeploy의 blue green 배포를 학습해보시면 좋을 것 같습니다:)

이 외로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. SJ님.

Docker 기반의 CI/CD 파이프라인에서 말씀하신 과정을 수행하면, 잠깐의 시간이지만 서비스가 중단될 수 있습니다. 이는 docker stopdocker rm 명령어로 기존 컨테이너를 중지하고 제거한 후, 새로운 이미지를 풀(pull)하고 실행(run)하는 동안 발생할 수 있는 지연 때문입니다.

무중단 배포를 위해 몇 가지 방법이 있습니다:

  1. 로드 밸런서 사용: 로드 밸런서를 사용하여 여러 인스턴스에 트래픽을 분산하면 중단 없이 배포할 수 있습니다. 배포되는 인스턴스에서만 잠시 트래픽을 차단하고 업데이트 후 다시 활성화하는 방식입니다.

  2. 블루-그린 배포: 두 개의 환경(블루와 그린)을 사용하여 새 버전을 배포합니다. 새 버전을 별도의 환경에 배포한 후, 무중단으로 해당 환경으로 트래픽을 전환합니다.

  3. 롤링 업데이트: Kubernetes 같은 오케스트레이션 도구를 사용하여 순차적으로 컨테이너를 교체하는 방법으로, 한 번에 하나씩 업데이트하여 중단 시간을 최소화합니다.

  4. Canary Deployment: 새로운 버전을 일부 사용자에게 먼저 배포하여 문제가 없는지 확인한 후 전체 배포를 진행하여 위험을 최소화합니다.

아래 유사한 내용의 링크들도 참고해 보시면 도움이 될 수 있습니다:
- CI/CD는 무중단 배포와 다른 느낌인 것이죠?: CI/CD와 무중단 배포의 차이점을 이해하실 수 있습니다.
- EC2에 배포하기 전에 기존 이미지를 삭제하고 배포해도 되나요?: Docker 이미지 삭제 및 관리에 관한 내용입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

SJ님의 프로필 이미지
SJ
질문자

넌 인턴인데 되게 성실하네 근데 정직원 언제 되니

SJ님의 프로필 이미지

작성한 질문수

질문하기