2025년 12월 12일

Embers를 데디케이티드 서버로 동작하는 온라인 MMORPG로 개발하면서 로컬 PC에서 호스팅을 하는게 아닌, 클라우드 호스팅에 대해 관심이 생겼다. 실질적으로 라이브 서비스를 제공하는 것은 아니기 때문에 무료로 제공하는 클라우드를 찾아봤고, AWS 프리티어 EC2나 유니티에서 호스팅할 때 흔히 사용되는 Edgegap 같은 서비스들을 살펴봤지만 대부분 한정된 자원이나 시간동안만 무료로 사용할 수 있어 연속성이 떨어져 아쉬웠다. 오라클 클라우드는 상시 무료로 제공하는 VM Instance가 있어 이 서비스를 사용해보기로 했다.
아래에서부터 Oracle Cloud에 Unity Mirror API를 사용한 Linux Dedicated Server를 구동하기까지의 일련의 과정을 서술한다. 아래의 과정이 정답은 아닐 수 있고, 여러 시행착오를 겪어가며 작성한 것이므로 참고용으로 사용하면 되겠다.
Oracle Cloud Sign Up
아이디를 생성하는건 표시된대로만 따라가면 되기 때문에 절차는 스킵한다. 다만 회원가입 후 아이디가 바로 활성화되지 않고, 등록할 때 적은 메일에 아래와 같은 메일이 도착한 후 부터 로그인할 수 있다는 것만 참고하면 된다.
참고로 회원가입시 선택한 Server Region은 추후 변경할 수 없으니 신중히 선택해야 한다. 현재 가용 가능한 대한민국 서버는 North 서버(춘천)만 확인된다.

Create Virtual Cloud Network
Oracle Cloud에 로그인했다면 가장 먼저 Virtual Cloud Networks(이하 VCN)를 설정해야 한다.
Networking의 Virtual cloud networks에서
Create VCN을 눌러 새로운 VCN을 생성한다.
Name을 원하는대로 지정하고, IPv4 CIDR Blocks에는
10.0.0.0/24를 기입한다. 게임 Dedicated Server를 호스팅하면서 굳이 DNS까지 필요하진 않기 때문에Use DNS hostnames in this VCN은 비활성화 했다.
Internet Gateway
생성된 VCN의 Detail에 접근을 하고, Gateways 탭에 들어간다. 여기서 Internet Gateways의
Create Internet Gateway를 클릭한다.
이름을 지정하고 생성한다. Advanced options의 내용은 수정하지 않는다.

Create VM Instance
이 단계에서 VM Instance를 설정한다. VCN에서 더 설정해야하는 부분(Subnet 등)은 VM Instance를 생성하면서 설정할 것이다.
Compute에서
Create instance를 눌러 새로운 VM 인스턴스를 생성한다.
1. Basic InformationName을 원하는대로 지정하고, Image(OS)를 설정해야한다. Linux Server를 돌리기 위해 여기선 Ubuntu를 사용할 것이다. Ubuntu를 선택하고Canonical Ubuntu 24.04를 사용한다. Embers는 최신 버전의 유니티를 사용해서 구버전 Ubuntu를 사용시 서버 구동이 실패하는 경우가 있었다. 유니티의 버전이 낮다면 낮은 버전의 Ubuntu를 사용해도 문제 없을 것이다. 다만 Minimal 버전이 아닌 일반 버전을 선택하면 된다.
2. Security여기서는 별다른 설정 없이 다음 단계로 넘어간다.
3. NetworkingVCN을 설정하면서 미비했던 설정을 여기서 해줄 것이다. Primary network의 Virtual cloud network를 아까 설정했던 VCN으로 설정하고, Subnet에서Create new public subnet을 선택하여 새로운 Subnet을 생성할 것이다.
SSH Key를 다운로드 한다.
Download private key를 눌러 다운로드 받을 수 있는데, 추후 로컬PC에서 VM Instance로 접근시 반드시 필요하다.
4. Storage스토리지는 개인의 필요에 맞게 조정하면 된다.
Create를 통해 instance를 생성하면 Instances 목록에 새로 생성한 instance가 표시된다.

외부 접속을 위한 Settings
Reserve Public IP
Networking의 IP management 섹션을 보면
Reserved public IPs가 있다. 여기서Reserve public IP address를 눌러 외부 접속을 위한 고정 Public IP를 할당받을 것이다.
식별 가능한 이름을 지정하고,
Reserve Public IP address를 클릭하면 간단하게 IP를 할당받을 수 있다.

VNIC Setting
위에서 생성한 VM Instance의 Detail로 들어가서, Networking 탭을 누르고, Atttached VNICs에서 Primary VNIC 태그가 붙어있는 Name을 클릭한다.

VNIC의 Detail에 접근했으면 IP administration 탭을 누르고, 우측 끝 점 세개를 눌러 Edit 창에 접근한다.

Public IP type에서 Reserved public IP를 체크하고, Reserved IP Address 드롭다운 메뉴에서 위에서 설정한 public IP를 바인딩한다.

Add Route Rules
생성된 instance를 눌러 Details에 접근하고, Networking 탭에서 Route table에 바인딩된 테이블을 클릭한다. 여기서는
Default Route Table for sample이다.
Route Rules 탭에서
Add Route Rules를 클릭한다.
Target Type을
Internet Gateway로, Destination CIDR Block은0.0.0.0/0으로, Target Internet Gateway에 선술했던 Internet Gateway를 바인딩하여 생성한다.
여기까지하면 로컬PC에서 클라우드 VM Instance에 원격접속하기 위한 준비가 끝났다.
PowerShell로 Oracle Cloud VM Instance 접속 테스트
윈도우에서 Powershell을 실행하여 아래의 명령어를 입력한다. [ssh_key_place]에 아까 다운 받은 ssh key의 경로를 입력하면 되고, [username]과 [machine_ip]는 VM instance의 Details에서 확인할 수 있다.
ssh -i [ssh_key_place] [username]@[machine_ip]
ex) ssh -i "C:\Users\Users\Downloads\ssh-key-2025-12-13.key" ubuntu@127.0.0.1
중간에 key와 연관된 질문에서 연결하겠냐고 묻는 질문에 yes를 입력하면 VM Instance에 접속이 완료된다.

Oracle Cloud의 VCN 설정, VM Instance 생성까지 완료했고, 외부에서 클라우드로 접속까지 되는 것을 확인했다. 하지만 지금 상태에서 서버를 올려 실행시켜도 아직 외부에서 접속이 되지 않는다. 접속 포트가 다르기 때문인데, 처음 VM Instance를 설치하면 22번 포트를 제외하고 모든 포트가 막혀있다. 이 때문에 별도의 설정이 필요한데, 다음 포스트에서는 이 부분을 알아보겠다.