등록을 마친 서버는 계속 켜져 있고 WattWorks에 연결되어 있어야 대여를 받을 수 있습니다. 서버를 끄거나 손봐야 할 때 알아 둘 것을 정리했습니다.
1. 연결이 끊기면 — 오프라인
에이전트(wattworks-agent)는 몇 초마다 WattWorks에 할 일을 묻고 30초마다 상태를 보고합니다. 마지막 연결 뒤 2분이 지나면 노드가 오프라인으로 바뀌고, 그 노드의 슬롯은 마켓에서 오프라인으로 보이며 새 대여를 받지 않습니다. 에이전트가 다시 연결되면 노드는 가동 중으로 돌아옵니다.
대여 중에는 서버를 끄지 마세요
고객의 인스턴스와 볼륨은 이 서버에만 있습니다. 서버가 꺼지거나 네트워크가 끊기면 대여 중인 고객은 인스턴스에 접속할 수 없고, 볼륨의 데이터에도 닿을 수 없습니다.
확정되지 않은 것
대여 중에 서버가 꺼지거나 연결이 끊겼을 때 고객 인스턴스 · 과금 · 정산을 어떻게 처리하는지는 공급자용 안내가 아직 확정되지 않았습니다. 최소 가동률 기준도 운영 데이터를 본 뒤 계약서에 정합니다. 확정되면 이 절에 추가합니다.
2. 정비하기
정비는 진행 중인 대여가 끝난 뒤에 합니다. 급하게 정비해야 한다면 반드시 먼저 운영팀에 알려 주세요.
- 콘솔 「서버 관리」 → 노드 상세에서 판매 중인 슬롯마다 「판매 일시중지」를 누릅니다. 판매 일시중지 상태의 슬롯은 새 대여를 받지 않습니다.
- 대여 중인 슬롯은 상태를 바꿀 수 없습니다. 그 대여가 끝날 때까지 기다린 뒤 판매 일시중지로 전환합니다.
- 모든 슬롯이 판매 일시중지 상태이고 대여가 없는 것을 확인한 뒤 서버 작업을 합니다.
- 작업이 끝나 노드 상태가 다시 가동 중이 되면 슬롯마다 「판매 시작」을 누릅니다.
대여 중인 슬롯에서 판매 일시중지를 누르려 하면 「대여 중인 슬롯은 상태를 바꿀 수 없습니다. 계약이 끝난 뒤 판매 일시중지로 전환해 주세요.」가 보입니다.
노드를 아예 빼려면
노드를 서비스에서 빼려면 30일 전에 알려 주셔야 합니다. 그 서버에만 있는 고객 볼륨을 고객에게 돌려주고 파기하는 절차가 그 기간에 진행됩니다. 그 기간에 고객은 볼륨을 내려받아 가져갈 수 있고, 이 내려받기는 그 서버의 디스크 · CPU · 업로드 대역을 씁니다. 이 사용에 대한 별도 보상은 없습니다.
서버에서 실행할 명령과 그 뒤 절차는 아래 「5. 노드 빼기」에 있습니다.
3. 업데이트 — 토큰 없이 다시 실행
에이전트를 새 버전으로 바꾸거나 방화벽 규칙을 다시 쌓으려면 이미 등록된 서버에서 설치 명령을 --token 없이 실행합니다. 등록은 그대로 두고 에이전트 · 설정 · 방화벽 규칙 · 서비스 유닛만 새로 설치합니다.
curl -fsSL <공개 사이트 주소>/install.sh | sudo bash -s --- 받은 에이전트 파일은 SHA-256으로 발행물과 같은지 확인한 뒤 설치합니다.
- 업데이트 끝에 서비스를 다시 켭니다. 가능하면 대여가 없을 때 실행하세요.
- 업데이트로는 포트 범위를 바꿀 수 없습니다(종료 코드
15). 범위를 바꾸려면 콘솔에서 등록 토큰을 재발급받아 새 명령으로 실행합니다.
4. 서버에 설치되는 서비스 셋
wattworks-agent.service— 에이전트입니다. 멈추면 WattWorks 와의 연결이 끊겨 2분 뒤 노드가 오프라인이 됩니다.wattworks-firewall.service— 인스턴스 격리용 방화벽 체인입니다. 멈추면 체인이 제거되고, 이 서비스를 필요로 하는 에이전트도 함께 멈춥니다.wattworks-caddy.service— 고객 인스턴스의 HTTPS 접속(포트30443)을 받는 노드 Caddy 입니다. 설정 파일 · 인증서 · 라우트는 에이전트가 씁니다. 설치 직후 설정 파일이 아직 없어 5초마다 재시도하는 것은 정상이며, 에이전트가 첫 인증서를 받아 설정 파일을 만들면 자동으로 뜹니다. 멈추면 고객이 인스턴스의 웹 주소로 접속할 수 없습니다.- 에이전트와 방화벽 서비스는 Docker를 필요로 합니다. Docker를 멈추면 둘은 멈추고, 노드 Caddy 는 Docker 뒤에 시작하기만 할 뿐 Docker 가 멈춰도 남습니다.
- 서버에 배포판
caddy.service가 켜져 있고/etc/caddy/Caddyfile이 패키지 기본본 그대로면 설치 스크립트가 그것을 끕니다(되돌리기:sudo systemctl enable --now caddy.service). 직접 손본 설정이면 그대로 두고 함께 둡니다 — 포트와 관리 주소가 달라 충돌하지 않습니다.
Requires=docker.service wattworks-firewall.service
ExecStop=/usr/local/sbin/wattworks-firewall remove
Description=WattWorks node Caddy (instance HTTPS)
After=network-online.target docker.service
RuntimeDirectoryPreserve=yes상태와 로그는 아래 명령으로 봅니다.
systemctl status wattworks-agent.service wattworks-firewall.service wattworks-caddy.service
journalctl -u wattworks-agent.service -f
journalctl -u wattworks-caddy.service -n 30 --no-pager5. 노드 빼기 — 서비스 그만두기
콘솔에는 노드를 빼는 버튼이 없습니다. 콘솔에서 할 수 있는 것은 슬롯을 판매 일시중지로 바꾸는 것과 등록 토큰 재발급뿐입니다. 노드를 빼는 것은 서버에서 실행하는 명령 하나와 운영팀의 정지 처리로 이루어집니다.
- 운영팀에 노드를 뺀다고 30일 전에 알립니다. 그 기간에 이 서버에만 있는 고객 볼륨의 반환 통지와 반환 유예(통지 후 30일)가 진행됩니다. 위 「2. 정비하기」의 「노드를 아예 빼려면」을 함께 읽어 주세요.
- 판매 중인 슬롯을 모두 「판매 일시중지」 합니다. 대여 중인 슬롯은 그 대여가 끝난 뒤에 전환합니다.
- 유예 기간이 끝나고 운영팀이 알려 주면, 서버에 고객 컨테이너와 볼륨이 남아 있지 않은 것을 확인한 뒤 root 로 아래 명령을 실행합니다. 서비스 셋을 끄고 유닛 파일 · 설정 · 에이전트 파일을 지웁니다.
- 출력에서 셋이
inactive이고30443 closed· 컨테이너0· 볼륨0·/etc/wattworks·/var/lib/wattworks없음을 확인합니다. 방화벽 체인 줄에No chain이나 nft 관련 안내가 나오면 체인이 없는 것이므로 정상입니다. - 운영팀에 명령을 실행했다고 알립니다. 운영팀이 노드를 정지 처리하면 이 서버를 가리키던 WattWorks 도메인 주소는 자동으로 지워집니다. 공급자가 따로 할 일은 없습니다.
systemctl disable --now wattworks-agent.service wattworks-firewall.service wattworks-caddy.service; systemctl is-active wattworks-agent.service wattworks-firewall.service wattworks-caddy.service; ss -ltn | grep -c ':30443' || echo '30443 closed'; iptables -S WW-ISOLATION 2>&1 | head -1; docker ps -aq | wc -l; docker volume ls -q | wc -l; rm -rf /etc/wattworks /run/wattworks /var/lib/wattworks; ls -d /etc/wattworks /var/lib/wattworks 2>&1; rm -f /etc/systemd/system/wattworks-agent.service /etc/systemd/system/wattworks-firewall.service /etc/systemd/system/wattworks-caddy.service; systemctl daemon-reload; rm -f /usr/local/bin/wattworks-agent /usr/local/bin/wattworks-agent.prev; echo done대여가 남아 있는 서버에서 실행하지 마세요
고객 컨테이너나 볼륨이 남아 있는 채로 실행하면 고객은 인스턴스에 접속할 수 없고 볼륨의 데이터에도 닿을 수 없습니다. /etc/wattworks 를 지우면 이 서버의 노드 키와 인증서 개인키가 파기되어 같은 등록으로는 다시 연결할 수 없습니다. 다시 참여하려면 콘솔에서 새 등록 토큰을 받아 처음부터 설치합니다.
- 이 명령은 Docker · NVIDIA 드라이버 · Caddy 패키지와 받아 둔 템플릿 이미지를 지우지 않습니다. 필요 없으면 직접 지웁니다.
- 배포판
caddy.service는 건드리지 않습니다. 설치 때 스크립트가 껐다면 꺼진 채 남습니다 — 되돌리려면sudo systemctl enable --now caddy.service를 실행합니다.