2025년 12월 14일

앞 선 글들을 통해 Oracle Cloud 환경 설정과 원격 접속을 위한 준비를 마쳤다. 이번에는 실제로 클라우드에 서버를 올려 외부에서의 접속을 테스트해보려고 한다. 여기서는 개발중인 Embers 게임의 Dedicated Server를 활용한다.
서버를 구동하기 위해서는 서버 파일을 VM Instance에 업로드해야 한다. 여기서는 파일 업로드를 위해 FileZilla를 사용하려고 한다.
FileZilla Client에서 VM Instance 접속
- 좌측 첫번째 아이콘(사이트 관리자)을 클릭하여 사이트 관리자에 접속한다.

새 사이트를 만들고, 프로토콜을SFTP로, 호스트에 Public IP를 기입하고, 포트는 생략해도 된다. 로그온 유형은키 파일로, 사용자에 powershell로 ssh에 접근했던 이름을 기입하고, 키 파일에 그 전에 다운받았던 key 파일의 경로를 넣어준다.
- 접속에 성공했으면 다음과 같이 표시되고, 좌측이 로컬PC / 우측이 원격 VM Instance이다.

Unity Mirror API 설정
- 이 글에서 테스트할 Embers 게임은 Unity에서 Mirror Network API를 사용했다. 때문에 이를 기준으로 설명한다.
- Mirror의 Network Mananger에서 Host IP를
0.0.0.0으로 설정한다. - Network Manager에서 사용하는 프로토콜 (예를 들면 KCP)에서 포트를 자신의 원하는 포트로 설정한다. 그리고 이 포트를 전 글에서 설명했던 Security Rules에 추가해준다. KCP를 사용한다면 KCP는 UDP 프로토콜 기반이기 때문에, Security Rule을 추가할 때 프로토콜을 UDP로 설정한다.
여기서는 KCP 8585 포트를 사용하겠다.

Linux Server Upload
VM Instance에 설치한 Ubuntu는 Linux 기반 OS이므로 유니티에서 Dedicated Server를 빌드할 때 Linux로 빌드해야한다. 유니티에서 Linux Dedicated Server를 빌드하기 위해서는 추가 모듈을 설치해야한다. 추가 모듈은 Unity Hub에서 설치해주면 된다.

모듈을 설치하고, 유니티 에디터에서 빌드할 때 프로파일을 Linux Server로 두고 빌드하면 된다.

VM Instance에
server라는 디렉토리를 만들고, 방금 만든 빌드파일을 업로드해줬다.
powershell에서 Server 실행
powershell로 vm instance에 접속한다. (이에 대한 방법은 이전 글에 설명되어 있다.)

명령어 창에 tmux를 입력하고 tmux에 접속한다. tmux를 통해 로컬 PC에서 터미널의 접속이 끊겨도 세션을 유지할 수 있게 해준다.
Unity Server 빌드 파일을 저장한 server 디렉토리에 접근해서,
x86_64파일을 실행한다.
만약 Permission denied가 표시된다면, 아래의 명령어로 실행 권한을 부여한다.
chmod +x [FileName] ex) chmod +x Embers.x86_64다시
x86_64파일을 실행하면 Dedicated Server가 정상적으로 오픈되는 모습을 확인할 수 있다.
tmux Terminal
- tmux는 멀티플 Terminal이다. 여러 세션을 관리할 수 있고 ssh가 끊겨도 작업을 유지할 수 있도록 해준다.
- 아래는 tmux의 활용에 관련한 일부 단축키이다. 서버 세션 관리를 위해 필요하므로 알아두면 좋다.
- 접속된 세션 나가기
Ctrl + b → d
현재 실행 중인 세션 확인
tmux ls
현재 실행 중인 세션에 다시 접속
tmux attach -t [세션번호]
세션 번호는 tmux ls 명령어를 입력하면 출력된다.여기까지 Oracle Cloud에 Unity Dedicated Server를 올려 호스팅하는 방법을 알아보았다. 이 글에서 예시로 사용된 Embers는 MMORPG이므로 Database를 사용한다. 이 때문에 사용하는 VM Instance에 DB Server도 돌리고 있으며, 이에 대한 자세한 설명은 다음 글에서 설명하도록 하겠다.