자신의 인프라에서 셀프 호스티드 개발 환경을 설정하는 방법 (단계별 가이드)

발행: (2026년 2월 13일 오전 10:38 GMT+9)
11 분 소요
원문: Dev.to

Source: Dev.to

번역을 진행하려면 번역하고자 하는 전체 텍스트를 제공해 주시겠어요?
텍스트를 주시면 원본 형식과 마크다운을 그대로 유지하면서 한국어로 번역해 드리겠습니다.

사전 요구 사항

시작하기 전에 다음을 확인하세요:

  • sudo/root 권한이 있는 Linux 서버 1대(물리 서버 또는 가상 서버)
  • 개발 디스크와 스냅샷을 저장할 ZFS 풀이 해당 서버에 구성되어 있음
  • 개발자들이 이 서버(또는 앞단에 있는 리버스 프록시)로 네트워크 접근이 가능함

Step 1 – ZFS로 Linux 호스트 준비

  1. 개발 환경 호스트 역할을 할 깨끗한 Linux 머신부터 시작합니다.

  2. Ubuntu, Debian, CentOS와 같은 최신 배포판을 선택하고, 여러 개발 환경을 동시에 실행할 수 있을 만큼 충분한 CPU, RAM, 디스크 공간이 있는지 확인합니다.

  3. ZFS가 아직 설치되지 않았다면 설치하고, 개발 작업에 전용된 ZFS 풀을 생성합니다.

    # Example: create a pool named "tank"
    sudo zpool create tank /dev/sdX
    # Create a dataset for Velovol
    sudo zfs create tank/velovol
  4. ZFS는 복사‑쓰기 스냅샷과 효율적인 클로닝을 제공하며, 이는 재현 가능한 개발 환경을 빠르게 구축하는 데 정확히 필요한 기능입니다.

Source:

Step 2 – Download and Start velovol‑adm

  1. Linux 호스트에 Velovol 관리 서비스(velovol‑adm)를 설치합니다. 이 구성 요소는 프로젝트, 사용자, 기본 디스크, 스냅샷 및 클론을 관리합니다.

  2. 공식 배포 소스에서 바이너리 또는 패키지를 다운로드하고 서버의 적절한 위치에 배치합니다.

  3. 서비스를 시작합니다. 명령줄에서 직접 실행하거나 systemd 서비스로 구성하여 부팅 시 자동으로 시작되도록 할 수 있습니다.

    # Example systemd unit (/etc/systemd/system/velovol-adm.service)
    [Unit]
    Description=Velovol Admin Service
    After=network.target
    
    [Service]
    ExecStart=/usr/local/bin/velovol-adm
    Restart=on-failure
    User=root
    
    [Install]
    WantedBy=multi-user.target
  4. 로그(journalctl -u velovol-adm -f)를 확인하여 서비스가 실행 중인지 검증하고, 웹 UI가 제공되는 경우 브라우저에서 관리 인터페이스를 열어 확인합니다.

Step 3 – 포털 구성

포털은 개발자가 자신의 환경에 접근하는 진입점입니다. 웹 대시보드, SSH 엔드포인트, 혹은 VS Code Remote와 같은 도구와의 통합이 될 수 있습니다.

  1. Velovol 관리 인터페이스에서 팀이 선호하는 작업 방식에 맞는 하나 이상의 포털을 설정합니다.

  2. 예시: 기본 HTTPS URL을 설정하고(예: ) velovol‑adm에 역프록시(예: Nginx 또는 Caddy)를 통해 연결합니다.

    # Nginx example
    server {
        listen 443 ssl;
        server_name dev.yourcompany.com;
    
        ssl_certificate /etc/letsencrypt/live/dev.yourcompany.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/dev.yourcompany.com/privkey.pem;
    
        location / {
            proxy_pass http://127.0.0.1:8080;   # velovol‑adm listening port
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
  3. DNS가 올바르게 설정되고 TLS 인증서가 구성되어 개발자가 자신의 머신에서 포털에 안전하게 접근할 수 있도록 합니다.

Step 4 – Connect Velovol to ZFS Storage

  1. Velovol에 ZFS 스토리지를 등록합니다. 이는 시스템에 기본 디스크, 스냅샷 및 복제 디스크를 생성하고 저장할 위치를 알려줍니다.

  2. 스토리지 구성 섹션에서 Velovol이 사용할 ZFS 풀 또는 데이터셋을 지정합니다. 예: /tank/velovol.

  3. 프로젝트별 또는 사용자별로 적용할 할당량이나 제한을 지정하고, 필요에 따라 워크로드에 맞게 압축이나 레코드 크기와 같은 ZFS 옵션을 조정합니다.

    # Example ZFS options
    sudo zfs set compression=lz4 tank/velovol
    sudo zfs set recordsize=128K tank/velovol
  4. 설정이 완료되면 Velovol은 이 ZFS 백엔드를 사용하여 각 개발 환경에 대해 효율적인 copy‑on‑write 볼륨을 생성합니다.

Step 5 – Create a Project

  1. Velovol 관리자 인터페이스를 엽니다.
  2. 명확하고 설명적인 이름(예: “Payments Service” 또는 “Monorepo‑Platform”)으로 새 프로젝트를 생성합니다.
  3. 선택적으로 프로젝트의 목적, 기술 스택, 담당 팀을 설명하는 설명을 추가합니다.

잘 이름이 지정된 프로젝트는 여러 프로젝트와 다수의 사용자를 다룰 때 확장성을 높여줍니다.

6단계 – 사용자 생성 및 역할 할당

  1. 프로젝트 내에서 접근이 필요한 각 개발자를 위해 사용자 계정을 생성합니다.

  2. 책임에 따라 역할을 할당합니다:

    • Administrators – 기본 디스크와 설정을 관리할 수 있습니다.
    • Developers – 환경을 활용할 수 있습니다(스냅샷 및 클론 사용).

이 역할 기반 모델은 팀이 성장함에 따라 환경을 일관되고 안전하게 유지하는 데 도움이 됩니다.

Step 7 – Create a Base Disk (Golden Environment)

  1. 이 베이스 디스크가 될 새로운 환경을 생성합니다.
  2. 해당 환경 안에 표준 툴체인(컴파일러, 패키지 매니저, 빌드 도구, 데이터베이스 클라이언트 등)을 설치합니다.
  3. 메인 저장소(또는 여러 저장소)를 클론하고, 설정 파일을 구성한 뒤, 환경이 애플리케이션을 빌드하고 실행할 수 있도록 초기 설정 스크립트를 실행합니다.
  4. 모든 것이 만족스럽게 구성되면, 이 환경을 Velovol에 베이스 디스크로 저장하여 템플릿으로 재사용할 수 있게 합니다.

Step 8 – Mount the Base Disk and Start Developing

  1. 포털이나 관리자 인터페이스에서 개발자는 프로젝트를 선택하고 새 환경의 시작점으로 베이스 디스크를 선택합니다.
  2. Velovol은 이 디스크(또는 그 위에 쓰기 가능한 레이어)를 마운트하고, 구성된 접근 방식(예: SSH 또는 VS Code Remote)을 통해 노출합니다.
  3. 개발자는 IDE를 열고 환경에 연결한 뒤 작업을 시작합니다.

기본 데이터가 ZFS 스냅샷 및 클론을 통해 공유되기 때문에, 각 개발자는 가볍고 쓰기 가능한 워크스페이스를 얻으며 스토리지 사용량은 최소로 유지됩니다.

🎉 You’re all set!

이제 ZFS와 Velovol이 구동하는 완전한 자체 호스팅 개발 환경 플랫폼을 갖추었습니다. 개발자는 몇 초 만에 격리된 재현 가능한 환경을 띄울 수 있고, 관리자는 리소스, 스냅샷 및 보안에 대한 세밀한 제어를 유지합니다.

추가 읽기, 문제 해결 또는 고급 구성에 대해서는 공식 Velovol 문서를 참조하십시오 .

단계 9 – 마운트 해제 및 스냅샷 생성

환경을 원하는 상태(예: 특정 의존성을 추가하거나 프로젝트 설정을 맞춤화)로 구성한 후, 해당 상태를 스냅샷으로 캡처할 수 있습니다. 스냅샷은 ZFS가 빠르고 효율적으로 만들 수 있는 시점‑특정, 읽기 전용 디스크 복사본입니다.

  1. 모든 중요한 데이터가 디스크에 기록되었고, 중요한 프로세스가 실행 중이지 않은지 확인합니다.
  2. Velovol 인터페이스에서 환경을 마운트 해제하거나 실행 중인 세션을 중지합니다.
  3. 디스크의 스냅샷을 생성합니다.

스냅샷은 언제든지 롤백하거나 새로운 복제 환경의 소스로 사용할 수 있는 안정적인 기준점이 되며, 기본 데이터를 모두 복제할 필요가 없습니다.

Step 10 – 다른 사용자용 스냅샷 복제

이 설정의 진정한 힘은 다른 개발자를 위해 스냅샷을 복제할 때 발휘됩니다. 각 사람이 직접 환경을 설정하는 대신, 하나의 스냅샷을 만들고 필요에 따라 여러 번 복제합니다.

  1. 관리자에서
0 조회
Back to Blog

관련 글

더 보기 »

웹 3

이 댓글을 숨기시겠습니까? 게시물에서는 숨겨지지만 댓글의 퍼머링크를 통해 여전히 볼 수 있습니다. 자식 댓글도 숨기기…