마인크래프트 서버를 열 때 고려해보면 좋을 것들

개인 PC or 호스팅

개인 PC로 오픈을 한다면 전기세나 기타 비용 등을 제하고 보았을 때 추가적으로 소요되는 비용이 거의 없다고 봐도 무방하다. 다만 개인적인 용도로 대부분을 사용하는 PC를 서버로 쓰게 되는 것이니 여러 불편함도 감수해야 하고, 이로 인해 24시간 운영은 거의 불가능하다고 봐야 된다.

호스팅을 선택한다면 앞서 언급한 문제들을 전부 해결할 수 있다. 일단 개인 PC와는 별개로 IDC 센터에 입주된 컴퓨터를 이용하는 것이므로 개인 PC와는 전혀 상관없이 운영할 수 있다. 또한 정전이나 점검 등 사 측의 특별한 사정이 없는 한 컴퓨터는 24시간 가동되므로 완벽한 24시간 운영이 가능해진다. 단점은 단 한 가지, 돈이다. 구매비, 설치비, 경우에 따라 트래픽 비용 등 여러 가지 이유로 비용이 많이 소요된다.

따라서 자신이 열고 싶은 서버의 특성에 따라 방법을 정해야 한다. 만약 자신이 소규모로 몇몇의 사람들과만 즐길 예정이라면 24시간 운영은 사실상 필요없다. 이런 경우는 개인 PC를 선택하는 것이 옳을 것이다. 반대로 여러 플레이어를 받고 컨텐츠를 제공하는, 서버다운 서버를 열려고 한다면 호스팅을 선택하는 걸 추천한다.

리눅스 vs 윈도우

흔히들 서버를 구동할 때에는 리눅스(Linux)를 선택하라곤 한다. 아마도 리눅스를 설치할 때 쓸데없는 기능들을 전부 빼고 필요한 것들만 설치할 수 있어 윈도우에 비해 가벼운 운영이 가능하기 때문일 것이다. 그렇지만 리눅스가 아무리 장점이 많다고 해도, 리눅스를 평생 사용해 본 적이 없다면 운영은커녕 서버 열기부터 난감한 상황에 빠질 수 있다.

만약 자신이 정말로 리눅스 사용에 자신이 없다면, 윈도우 서버(Windows Server)를 사용하는 것도 하나의 대안이 될 수 있다. 윈도우의 익숙함과 개인용 윈도우에 비해 한결 가벼운 것이 장점이다. 특히 우리에게 익숙한 윈도우의 GUI를 그대로 사용하므로 따로 학습하지 않아도 긴급한 때에 어느 정도 빠른 대응이 가능할 수 있다.

정리하자면, 본인이 긴급상황이나 오류에 어느 정도 대응이 가능할 정도로 리눅스를 알고 있다면 리눅스를 선택하는 것이 좋고, 리눅스를 평생 사용해 본 적이 없고 감이 아예 없다면 윈도우나 윈도우 서버를 선택하는 게 차선책이 될 수 있다.

서버 구동기

(그렇게 중요한 건 아니지만, 필자가 서버 구동기라 부르는 것은 대부분은 버킷, 서버로 부르고 있다. 이 글에서는 혼란을 막기 위해 서버 구동기라 부르겠다.)

마인크래프트는 공식적인 서버 구동기를 제공하고 있다. 그럼 공식 구동기로만 열면 만사 OK일까?

물론 자신이 마인크래프트에서 기본적으로 제공되는 기능들로만 운영할 자신이 있다면 그래도 상관없다. 그렇지만 몇몇 지인들과만 할 게 아니라면 다양한 기능을 추가해 주는 기능인 플러그인(Plugin)을 사용해야 한다. 공식 구동기는 이런 플러그인을 추가할 수 없다. 이것이 가장 큰 단점이다.

당연히 공식 구동기에도 장점은 있다. 마인크래프트는 주기적으로 대규모 업데이트가 이루어지는 편인데, 비공식 구동기들은 여러 개인이 모여 개발하는 경우가 대부분이라서 새로운 버전 대응이 늦다. 반면 공식 구동기는 개발사에서 직접 만드니 새로운 버전이 나오면 이와 동시에 새 버전에 맞는 구동기를 받을 수 있다. 플러그인을 지원하지 않는다는 사실이 이 모든 장점을 상쇄할 뿐이다.

그렇다면 플러그인을 지원하는 비공식 구동기에는 어떤 종류가 있을까? 2022년 현재 사용 가능한 비공식 구동기들 중 가장 일반적이면서 대표적인 것들은 다음과 같다.

  1. Spigot [다운로드]
  2. Paper [다운로드]

첫 번째의 Spigot은 개발이 활발하게 이루어지고 있으므로 가장 빠르게 최신 버전 구동기를 만나볼 수 있는 장점이 있다. 이것을 한층 더 개선한 것이 Paper인데, Spigot의 모든 기능에 여러 가지 설정을 추가적으로 지원하여 서버를 본인의 입맛대로 최적화시키기에 안성맞춤이다. 둘 중 어느 것을 사용해도 플러그인을 사용할 수 있지만, 개인적으로 조금 더 세부적인 설정이 가능한 Paper를 추천하는 편이다.

보안 대책

이제 웬만한 사항들을 모두 정했다면, 보안 대책도 세워야 한다. 보안 대책을 세우는 이유는 공격으로 인한 운영 차질을 미연에 방지하기 위해서이다. 필자는 보안 대책을 세울 적엔, 안에서의 보안과 밖에서의 보안으로 나눠 생각하면 좋다고 본다.

안에서의 보안은 말 그대로 권한 탈취를 방지하는 등의 내부적인 대책이다. 이것에는 아무에게나 최고 관리자 권한(OP) 주지 않기, 아무 데서나 플러그인 받지 않기 등이 있다. 특히 아무 데서나 플러그인을 받지 않는 건 생각보다 매우 중요한데, 공식 플러그인 배포처가 아닌 네이버 블로그 등지에 개인이 업로드한 플러그인들은 재수 없으면 내부에 백도어 코드가 심어져 있는 것을 받게 될 수도 있기 때문이다.

이렇게 안에서의 보안을 철저히 신경 써도 밖에서의 보안을 함께 고려하지 않는다면 말짱 도루묵이다. 분산 서비스 거부 공격(DDoS) 등 외부적인 요인을 차단하는 밖에서의 보안도 세워야 한다. 디도스 공격은 호스팅 사용 시 특히 취약할 수밖에 없는데, 대부분의 호스팅사에서는 1~2회 이상 공격을 받을 경우 서비스를 직권 해지한다는 약관이 존재하기 때문이다. 즉 피해는 피해대로 보고 서버 운영까지 강제로 접게 되는 대참사가 일어날 수 있다. 그러니 만반의 대비를 해야 될 필요성이 있다.

디도스 공격은 어찌하면 방지할 수 있을까? 필자는 두 가지 방법이 있다고 본다.

  1. 디도스 방어존
  2. 디도스 완화 서비스

첫 번째 디도스 방어존은 호스팅(IDC) 차원에서 디도스를 막아내는 방법이다. 즉, 집안에 도둑을 막아내는 경호원을 여럿 두는 거나 마찬가지로, 진짜 서버 IP를 공격자가 탈취하여도 공격이 최대한 먹히지 않게 해준다. 다만 이 방법은 가격이 평균 월 100만 원 정도로 개인이 부담하기엔 매우 비싸다. 그래도 사용하고 싶다면 이용 중인 호스팅의 홈페이지를 참조해 보면 될 것이다.

두 번째 디도스 완화 서비스는 집의 뒷문들을 모두 잠그고 정문 한 곳에 검문소를 두는 방법이다. 가격은 무료부터 존재하며 웬만하면 10만 원 내외로 디도스를 방어할 수 있다. 단점으로는 해외 디도스 완화 서비스를 이용한다면 핑이 높아져 서버 플레이가 힘들어질 수 있고, 진짜 IP가 노출되었다면 소용이 없어진다. 공격자가 검문소를 피해 뒷문으로 침입하면 어찌할 방도가 없기 때문이다. 이 방법을 사용할 때 가장 유의해야 할 것은 진짜 IP가 노출되지 않도록 하는 것이다.

디도스 완화 서비스에는 무료인 MCVKR, 해외 서비스 중 그나마 사용할 만한 GameShield 등이 있다.

마치며

지금까지 마인크래프트 서버를 운영할 때 고려해 보면 좋을 것들에 대해 알아보았다. 이 글에서 말한 것들 외에도 운영을 하면서 생기는 여러 돌발 변수들은 무수히 많다. 이런 것들을 스스로 터득해서 본인의 서버에 맞게 대응하고 설계하는 능력을 키운다면 진정한 어드민이 될 수 있을 것이다.