본문으로 건너뛰기

서비스 빌드/배포

코드를 작성했다면 이제 배포할 차례입니다. KIWI는 복잡한 빌드와 배포 과정을 간단하게 만들어 줍니다. 이 가이드에서는 소스 코드를 컨테이너 이미지로 빌드하고, 원하는 환경에 배포하는 전체 과정을 안내합니다.

서비스 목록

왜 컨테이너 배포인가요?

컨테이너는 애플리케이션과 실행 환경을 하나로 묶어서 "내 컴퓨터에서는 되는데..."라는 문제를 해결합니다. 개발, 테스트, 운영 환경 어디서든 동일하게 동작하는 것이 컨테이너의 가장 큰 장점입니다.

파이프라인 개요

KIWI는 4단계 파이프라인으로 서비스의 전체 라이프사이클을 관리합니다:

Source → Build → Deploy → Operate
  • Source (소스 코드 관리): Git 연동, SAST 보안 분석 기능을 제공합니다.
  • Build (컨테이너 이미지 빌드): Kaniko 빌드, SCA 취약점 분석을 수행합니다.
  • Deploy (배포 실행): K8s/Docker 배포, 롤백 기능을 제공합니다.
  • Operate (운영 관리): 모니터링, 로그 조회, DAST 스캔을 수행합니다.
Kaniko란?

Kaniko는 Docker 데몬 없이 컨테이너 내에서 이미지를 빌드하는 도구입니다. 보안이 강화된 Kubernetes 환경에서도 안전하게 이미지를 빌드할 수 있습니다.


빌드/배포 시나리오 선택하기

어떤 시나리오가 나에게 맞을까요? 아래 가이드를 참고하세요.

CI/CD 자동화 - "코드 푸시하면 자동 배포!"

자동화를 통해 반복 작업을 줄이고 실수를 방지하세요.

  • Auto CI 설정 - GitLab Webhook 기반 자동 빌드/배포 설정

    • 코드 푸시 시 자동으로 빌드하고 배포합니다.
    • 한 번 설정하면 수동 작업이 필요 없습니다.
  • Build Wizard - Dockerfile 자동 생성 마법사

    • Dockerfile이 없어도 걱정하지 마세요
    • 프로젝트를 분석해서 최적의 Dockerfile을 만들어 줍니다.

수동 빌드/배포 - "직접 컨트롤하고 싶어요"

세밀한 제어가 필요하거나 처음 시작하는 분들에게 추천합니다.

  • 수동 빌드 - 빌드 설정을 직접 구성하고 실행
  • K8s 배포 - Kubernetes 클러스터에 배포
  • K8s YAML 생성 - 배포 YAML의 Kind별 옵션과 실전 구성 예시
  • Docker 배포 - Docker/Podman 런타임에 배포
  • 롤백 - 문제 발생 시 이전 버전으로 빠르게 복원

서비스 설정 - "도메인이랑 HTTPS 설정도 하고 싶어요"


빠른 시작 가이드

처음 배포하는 경우

처음이시라면 아래 순서대로 따라해 보세요:

  1. 서비스 등록하기 서비스 등록 가이드를 참고하여 서비스를 먼저 등록하세요.

  2. 빌드 설정하기

  3. 배포하기

    • 프로덕션 환경이라면 → K8s 배포 (고가용성, 스케일링 지원)
    • 개발/테스트 환경이라면 → Docker 배포 (빠르고 간단)

자동화를 원하는 경우

이미 수동 배포를 해보셨다면, 자동화로 업그레이드하세요:

  1. 서비스 등록이 완료된 상태에서
  2. **Auto CI 설정**으로 GitLab Webhook 연동
  3. 이제 코드를 푸시하면 자동으로 빌드와 배포가 실행됩니다!
추천 워크플로우

개발 브랜치는 개발 환경으로 자동 배포, main 브랜치는 스테이징 환경으로 자동 배포하고, 프로덕션은 수동 승인 후 배포하는 것이 안전합니다.


사전 요구사항

빌드/배포를 시작하기 전에 다음 사항을 확인해 주세요:

  • 서비스 등록 완료: [서비스 관리] 페이지에서 서비스가 등록되어 있어야 합니다.
  • Git 연동 완료: 서비스에 GitLab URL과 Access Token이 설정되어 있어야 합니다.
  • Registry 설정 완료: Harbor 또는 DockerHub 레지스트리 정보가 등록되어 있어야 합니다.
  • 런타임 등록 완료: K8s 또는 Docker 런타임이 [런타임 환경] 페이지에 등록되어 있어야 합니다.
체크리스트를 확인하세요

빌드 버튼이 비활성화되어 있다면 위 조건 중 하나가 충족되지 않은 것입니다. 서비스 설정 페이지에서 누락된 항목을 확인하세요.


다음 단계

빌드와 배포를 완료했다면, 이제 보안과 운영을 살펴보세요: