호스팅되는 커스텀 Discord 봇의 가동 시간은 뒤에 있는 인프라에 전적으로 달려 있습니다. Noxyr의 커스텀 봇에서는 호스팅 노드들이 봇을 위한 호스트를 자동으로 고르고, 몇 초마다 상태를 확인하며, 여러분이 서버를 직접 건드리지 않아도 봇을 옮깁니다. 토큰만 붙여 넣으면 됩니다. 서버를 준비하거나, 패치하거나, 재시작할 필요가 없습니다.
서버는 여러분이 관리하지 않습니다. Noxyr의 노드가 관리합니다
각 노드는 자기에게 배정된 모든 커스텀 봇을 호스팅하는 프로세스 하나입니다. 짧은 주기로 상태를 확인하면서, 실행되어야 하는 봇은 시작하고 실행되면 안 되는 봇은 멈추며, 웹사이트가 읽을 수 있도록 하트비트를 기록합니다. 이것이 인프라가 대신 해 주는 전부의 역할입니다. 그렇지 않으면 VPS에서 직접 해야 했을 일이죠. 프로세스가 계속 살아 있도록 유지하고, 종료되는지 감시하고, Discord가 여러분의 잘못이 아닌 이유로 연결을 끊었을 때 다시 로그인하는 일입니다.
설정할 때 호스트가 선택되는 방식
자동이 기본값이며, 대부분의 사람은 이 설정을 그대로 두어야 합니다. 자동은 항상 현재 여유가 있는 노드로 연결됩니다. 노드는 정해진 순서대로 채워지는데, 한 노드가 가득 찬 뒤에야 다음 노드가 새 봇을 받기 시작합니다. 부하를 고르게 나누어 모든 노드를 절반만 채우는 방식은 아닙니다. 특정 호스트를 직접 고르더라도, 뒤에서는 실제로 동작하는 노드로 연결됩니다. 선택한 노드가 그 순간 오프라인이거나 가득 찼다면, 설정이 그냥 실패하는 대신 사용 가능한 가장 좋은 노드가 쓰입니다.
노드가 "가득 찼다"는 것의 기준
하나가 아니라 두 가지 검사로 판단합니다. 첫째, 노드가 자체 봇 개수 상한에 도달하면 새 봇을 더 받지 않습니다. 둘째, 봇 하나가 더 추가되면 측정된 메모리 사용량이 상한에 가까워지는 순간에도 받지 않습니다. 두 번째 검사가 있는 이유는, 봇 개수 상한만으로는 바쁜 서버가 한가한 서버보다 봇당 메모리를 더 많이 쓴다는 점을 반영할 수 없기 때문입니다. 봇 개수로 보면 여유가 있어 보이는 노드라도, 메모리가 거의 바닥나서 또 하나를 안전하게 받을 수 없을 수 있습니다. 어느 기준이든 먼저 도달한 쪽에 따라, 새 설정은 자동으로 다음 노드로 넘어갑니다.
봇을 다른 호스트로 옮기기
커스텀 봇 페이지의 노드 변경은 이미 실행 중인 봇을 다른 곳으로 옮깁니다. 모든 이동은 Discord에 새로 로그인하는 과정이며, Discord는 한 봇이 이를 얼마나 자주 할 수 있는지 제한합니다. 그래서 이동 사이에는 5분의 쿨다운이 있습니다. 실제 이동 때는 봇이 새 노드에서 다시 연결되는 동안 잠깐 재시작됩니다. 설정, 티켓, 카탈로그, 그 밖의 모든 데이터는 그대로 유지됩니다. 이 데이터는 실행 중인 프로세스가 있는 노드가 아니라 공유 데이터베이스에 있기 때문입니다.
노드에 문제가 생기면
봇의 하트비트가 끊기면, 즉 노드가 그 봇에게서 응답을 더 이상 듣지 못하면, Noxyr의 메인 봇이 다시 나서서 해당 서버를 자동으로 맡습니다. 그래서 멤버들이 실제로 응답하는 봇이 전혀 없는 상황에 놓이지 않습니다. 노드나 로그인이 회복되면, 커스텀 봇은 다음 상태 확인 때 스스로 그 서버를 되찾습니다. 일반적인 경우에는 이 때문에 지원 티켓을 열 필요가 없습니다. 처음 설정할 때 봇을 시작하는 것과 같은 자가 복구 루프가 작동하는 것입니다.
노드가 고르게 나뉘지 않고 정해진 순서대로 채워지는 이유
부하가 모든 노드에 고르게 분산된다고 생각하기 쉽습니다. 이 노드에 조금, 저 노드에 조금 나누는 식으로요. Noxyr는 의도적으로 반대로 합니다. 한 노드를 완전히 채운 다음에야 다음 노드가 새 봇을 하나라도 받습니다. 이렇게 하면 현재 부하를 처리하기 위해 실제로 실행되는 노드 수를 가능한 한 적게 유지할 수 있습니다. 여러 노드를 조금씩 가볍게 돌리는 것보다 기반 인프라를 효율적으로 쓰는 데 유리합니다. 어느 방식이든 봇의 동작에는 영향이 없습니다. 어떤 노드가 봇을 실행하든 동기화 루프와 하트비트는 똑같이 작동합니다.
대시보드의 숫자가 실제로 의미하는 것
호스트에 표시되는 핑은 추측이 아니라 실제 측정값입니다. 각 노드는 Discord 자체 게이트웨이 엔드포인트에 요청을 보내 걸린 시간을 주기적으로 재고, 그 평균을 보고합니다. 노드의 온라인/오프라인 상태는 마지막으로 상태를 보고한 시점을 기준으로 합니다. 잠시 응답이 없는 노드는 여전히 괜찮다고 가정하지 않고, 사용할 수 없는 것으로 취급합니다. 이 판단이 바로, 커스텀 봇이 응답하지 않는 서버를 Noxyr의 메인 봇이 다시 맡게 만드는 신호이기도 합니다.
가동 시간: 유료 VPS와 비교하면
직접 VPS를 운영하면 머신을 완전히 통제할 수 있지만, 머신이 다운되었을 때 이를 알아차리는 책임도 전적으로 여러분에게 있습니다. 호스팅되는 커스텀 봇은 그 통제권을 내주는 대신, 먼저 알아차리는 일을 다른 누군가가 맡도록 합니다. 어느 쪽이 모든 경우에 낫다고 할 수는 없습니다. 둘 중 무엇을 선택할지 고민 중이라면 커스텀 봇 vs VPS 직접 호스팅의 전체 비교를 참고하세요.
자주 묻는 질문
지금 봇이 온라인인지 어떻게 확인하나요? 대시보드의 커스텀 봇 페이지에는 봇이 켜져 있는지뿐 아니라, 실시간 상태가 표시됩니다.
봇이 다른 노드로 옮겨가면 설정이 사라지나요? 아닙니다. 설정은 어떤 노드의 프로세스가 봇을 실행하고 있든 상관없이, 공유 데이터베이스에 저장됩니다.
자동 대신 특정 노드를 고를 수 있나요? 네. 다만 선택한 노드가 그 순간 가득 찼거나 오프라인이어도, 결국 실제로 동작하는 호스트에 연결됩니다.
대시보드의 상태는 얼마나 자주 갱신되나요? 몇 초마다입니다. 봇에게서 응답이 끊긴 노드는 긴 지연 없이 빠르게 감지됩니다.
가동 중단에 대해 요금이 청구되거나 불이익이 있나요? 없습니다. 결제가 전혀 관여하지 않으며, 가동 문제로 여러분이 잃는 것은 재연결하는 동안 봇이 잠깐 응답하지 않는 것뿐입니다.
전체 설정 요건은 커스텀 봇 문서에, 노드 선택과 노드 변경의 정확한 동작은 커스텀 봇 호스팅 문서에 있습니다.