Skip to main content

OCI 무료티어 Data Relay Link 서버 구축

이 가이드는 빈 OCI 환경에서 시작해 Data Relay Link v2.2.1 서버를 만들고 첫 번째 SSH Client를 연결하는 단계까지 한 번에 설명합니다. 화면은 기존 OCI 구축 문서에서 실제로 사용했던 OCI Console 스크린샷을 재사용하고, Data Relay Link 명령과 동작 설명만 현재 stable 기준으로 업데이트했습니다.
OCI Console 메뉴명, Free Tier 정책, 리전별 capacity와 가격은 바뀔 수 있습니다. 실제 생성 직전 Console의 Always Free Eligible 표시와 예상 비용을 최종 기준으로 확인하세요. Oracle은 장기간 사용량이 낮은 Always Free Compute Instance를 회수할 수 있다고 명시하므로, 현재 OCI 정책을 확인하지 않은 채 Free Tier VM을 SLA가 보장되는 운영 서버로 가정하지 마세요.

최종 구성

이 OCI 예제는 외부 정책을 단순하게 만들기 위해 Enterprise single-443를 사용합니다. Direct 모드도 stable 지원입니다. Direct를 선택하면 TCP 6099가 별도의 Public Enrollment/Management HTTPS 포트가 됩니다.

10분 퀵맵

Part I — OCI 네트워크와 VM 만들기

1. Virtual Cloud Networks로 이동

OCI Home에서 Networking → Virtual Cloud Networks로 이동합니다. 아래 화면은 기존 실구축 Word 문서의 그림 1 원본 이미지입니다. 이미지 변환이나 축소본을 사용하지 않습니다. 그림 1. OCI Home 화면 - Networking/Instances 메뉴 진입

2. VCN, Internet Gateway, Route, Public Subnet, Ingress 구성

다음 값을 사용합니다.

2-1. VCN 생성

Virtual Cloud Networks → Create VCN으로 이동합니다. 그림 2. Virtual Cloud Networks에서 Create VCN 선택 VCN 이름은 data-relay-vcn, IPv4 CIDR은 10.0.0.0/16으로 설정합니다. 그림 3. VCN 이름과 IPv4 CIDR 설정

2-2. Internet Gateway 생성

생성한 data-relay-vcnGateways 탭에서 Internet Gateway를 생성합니다. 그림 4. VCN의 Gateways 탭에서 Internet Gateway 생성 Internet Gateway 이름은 예제 기준 data-relay-internet-gateway입니다. 그림 5. Internet Gateway 이름 예: data-relay-internet-gateway

2-3. Default Route Table에 인터넷 경로 추가

Routing 탭에서 Default Route Table for data-relay-vcn을 선택합니다. 그림 6. VCN Routing 탭에서 Default Route Table 선택 Route Rules → Add Route Rules를 선택합니다. 그림 7. Route Rules에서 Add Route Rules 선택 다음 값으로 인터넷 경로를 추가합니다.
그림 8. Internet Gateway로 0.0.0.0/0 경로 추가 추가 후 Route Rule이 정상 반영되었는지 확인합니다. 그림 9. Route Rule 적용 결과

2-4. Public Subnet 생성 시작

Subnets 탭에서 Create Subnet을 선택합니다. 그림 10. VCN Subnets 탭에서 Create Subnet 선택

2-5. Public Subnet 상세 설정

Public Subnet은 다음 값으로 생성합니다.
그림 11. Public Subnet 설정

2-6. Security List 설정

생성한 VCN의 Security Lists 메뉴로 이동합니다. 그림 12. VCN Security Lists 메뉴 Default Security List의 Ingress Rules를 확인합니다. 그림 13. Default Security List의 Ingress Rules Data Relay Link single-443 기준으로 TCP 443과 Published Service 범위인 TCP 6000-6098을 추가합니다. SSH 22는 기존 관리용 규칙을 유지하되 가능하면 관리자 공인 IP /32로 제한합니다. 그림 14. Ingress Rule 추가 - TCP 443 및 TCP 6000-6098 추가 후 Ingress Rule이 정상 반영되었는지 확인합니다. 그림 15. Ingress Rule 적용 결과

single-443 권장 Ingress

single-443에서는 6099와 7000을 OCI Public Ingress에 열지 않습니다. 두 포트는 서버 내부 loopback backend입니다. 또한 다른 OCI 예제 화면의 All Protocols 규칙을 그대로 복사하지 말고 위 Data Relay Link용 최소 규칙을 사용하세요.
6000-6098 전체를 미리 열고 싶지 않다면 실제 배정된 서비스 포트만 열고 source CIDR도 제한할 수 있습니다.

3. Ubuntu Compute Instance 생성

이 가이드의 권장값:
Compute Instance를 만들기 전에 앞에서 생성한 VCN, Internet Gateway, Route, Public Subnet, Security List가 준비되어 있는지 확인한 뒤 Compute → Instances로 이동합니다. 그림 16. 생성한 네트워크 리소스 확인 후 Compute로 이동

3-1. Compute Instance 기본 정보

Create compute instance 화면에서 이름과 placement를 확인합니다. 그림 17. Compute Instance 기본 정보

3-2. Canonical Ubuntu 24.04 선택

Change image를 눌러 Canonical Ubuntu 24.04 이미지를 선택합니다. 이미지/버전은 OCI Console의 현재 표시를 최종 기준으로 확인하세요. 그림 18. Ubuntu 이미지 선택 Security 설정은 별도 요구가 없다면 기본값을 사용합니다. 그림 19. Security 설정 화면 - 기본값 사용

3-3. VCN과 Public Subnet 선택

Primary VNIC에서 앞에서 만든 data-relay-vcndata-relay-public-subnet을 각각 선택합니다. 그림 20. 기존 data-relay-vcn과 data-relay-public-subnet 선택

3-4. Public IPv4 자동할당 해제 및 SSH Key 설정

최종적으로 Reserved Public IP를 사용할 것이므로 Automatically assign public IPv4 address는 끕니다. 이어서 기존 SSH public key를 넣거나 OCI에서 새 key pair를 생성하고 private key를 안전하게 보관합니다. 그림 21. Public IPv4 자동 할당 비활성화 및 SSH Key 생성/다운로드

3-5. Boot Volume 확인

별도 스토리지 요구사항이 없다면 Boot Volume은 기본값을 사용합니다. 그림 22. Boot Volume 설정 - 기본값 사용

3-6. Instance 생성 전 Review

Image가 Ubuntu 24.04이고 Shape, VCN/Subnet, SSH Key가 의도한 값인지 확인한 뒤 Instance를 생성합니다. 그림 23. Review - Ubuntu 24.04 및 VM.Standard.E2.1.Micro 확인

3-7. 생성된 Instance 및 Free/Eligible 표시 확인

Instance 목록에서 생성 상태를 확인합니다. 그림 24. 생성된 Instance 목록 기존 화면의 Always Free 표시는 당시 OCI Console의 예시입니다. 현재 Free Tier/Eligible 여부는 리전과 tenancy 정책에 따라 달라질 수 있으므로 현재 Console의 비용/자격 표시를 최종 기준으로 확인하세요. 그림 25. Instance의 Always Free 표시 확인 및 생성된 인스턴스 선택 중요한 부분은 다음입니다.
  • 기존 data-relay-vcn 선택
  • data-relay-public-subnet 선택
  • Private IPv4는 자동 할당
  • 최종 고정 IP 구성을 위해 Automatically assign public IPv4 address를 끔
  • 기존 SSH public key를 넣거나 OCI에서 새 key pair 생성
  • OCI가 key를 생성했다면 private key를 즉시 안전하게 보관
  • 별도 요구가 없다면 Boot Volume은 기본값 유지
VM.Standard.E2.1.Micro가 실제로 무료인지와 생성 가능한지는 리전/tenancy 상태에 따라 달라집니다. 생성 화면에서 Eligible/비용 표시가 다르면 이 문서만 보고 무료라고 가정하지 마세요.

4. Reserved Public IPv4 연결

Instance 상세 화면에서 Networking → Primary VNIC로 이동합니다. 그림 26. Instance → Networking → Primary VNIC 확인 VNIC에서 IP administration → Primary Private IP를 선택합니다. 그림 27. VNIC → IP administration → Primary Private IP 기존 Ephemeral Public IP가 있다면 Edit에서 No public IP를 선택해 먼저 해제합니다. 그림 28. Edit Private IP Address에서 No public IP 선택 Public IP가 미할당 상태인지 확인합니다. 그림 29. Public IP 미할당 상태 다시 Edit에서 다음 값을 선택합니다.
그림 30. 새 Reserved Public IP 생성 및 연결 이 Reserved Public IP가 Data Relay Link의 지속적인 공인 진입점이 됩니다. OCI에서는 Public IP가 Ubuntu NIC에 직접 설정되는 것이 아니라 OCI 측에서 private VNIC 주소와 매핑되기 때문에 Ubuntu의 ip addr에서는 10.x.x.x 같은 Private IP만 보이는 것이 정상입니다. Reserved Public IP가 Primary Private IP에 정상 연결되었는지 확인합니다. 아래 그림 31의 공인 IP 값은 공개 문서용으로 마스킹된 화면입니다. 그림 31. Reserved Public IP 연결 완료 확인
기존 Word 문서의 그림 32(SSH 접속 성공)는 실환경 접속 정보가 포함되어 있어 아직 공개하지 않습니다. 아래 SSH 절차에서는 <RESERVED-PUBLIC-IP> placeholder를 사용합니다.

5. Ubuntu SSH 접속

OCI Ubuntu 기본 계정은 일반적으로 ubuntu입니다.
접속 후:
를 확인합니다.

Part II — Data Relay Link v2.2.1 설치

6. 최소 패키지와 Host Firewall 확인

예전 실환경 메모에는 해당 장비에 맞춰 iptables INPUT을 비우는 절차가 있었습니다. 현재 가이드에서는 iptables -F 또는 INPUT 기본정책 변경을 일반 설치 절차로 권장하지 않습니다. OCI Security List/NSG와 Ubuntu Host Firewall은 서로 별도의 보안 경계이므로 필요한 포트만 환경에 맞게 명시적으로 허용하세요.

7. immutable stable v2.2.1 설치

설치 질문에서 이 OCI 예제는 Enterprise single-443를 선택합니다. 결과 구조는 다음과 같습니다.
예전 사이트의 v2.1.0 환경변수 설치 명령을 그대로 사용하지 마세요. 현재 field 설치 기준은 위의 immutable v2.2.1 bootstrap과 현재 installer 질문입니다.

8. Server 상태 확인

single-443 listener도 확인합니다.
의도된 노출 구조:
외부 Mac/Linux 등에서:
를 실행해 Public 443도 확인합니다. Client를 붙이기 전 drlink doctor에 blocking failure가 없어야 합니다.

9. 재부팅 후 영속성 확인

다시 접속 후:
를 확인합니다. 정상 update/reboot는 identity나 service reservation을 새로 만들게 해서는 안 됩니다.

Part III — 첫 번째 Client 연결

10. Zero-Touch SSH Enrollment 생성

Data Relay Link Server에서:
서버가 출력한 one-line 명령 전체를 그대로 Client에서 실행합니다. 직접 bootstrap payload를 다시 조립하지 마세요.
생성된 Zero-Touch 명령에는 만료시간이 있는 one-time bootstrap credential이 들어 있으므로 사용/만료 전까지 secret처럼 취급합니다. 공개 채팅, 문서, 티켓에 실제 살아 있는 명령을 남기지 마세요.
Data Relay Link는 Client의 SSH 계정, password, SSH key, sshd를 생성하지 않습니다. --ssh-user의 계정과 SSH 서비스는 Client에 이미 존재해야 합니다.

11. Client 상태와 실제 SSH 확인

Client:
Server:
실제 연결:
Public Service Port는 Client가 직접 고르는 값이 아닙니다. Server가 service에 대해 할당하고 persistent reservation으로 유지합니다.

최종 체크리스트

  • data-relay-vcn / 10.0.0.0/16
  • Internet Gateway 생성
  • 0.0.0.0/0 → Internet Gateway Route
  • data-relay-public-subnet / 10.0.0.0/24
  • SSH 22는 관리자 source에 맞게 제한
  • TCP 443 Public reachability 확인
  • Published service port는 필요한 범위/source만 허용
  • single-443에서 6099/7000 Public 비노출
  • Ubuntu 24.04 x86_64 VM Running
  • Reserved Public IPv4 연결
  • 외부 SSH 성공
  • Data Relay Link 2.2.1 / Data Relay Link 0.71.0 확인
  • drlink doctor blocking failure 없음
  • 443/6099/7000 listener 노출 구조 정상
  • reboot 후 상태 유지
  • 첫 Zero-Touch Client Enrollment 성공
  • 할당된 Public SSH Port로 실제 접속 성공

장애를 두 구간으로 나누기

서비스 연결 실패 시 다음 두 테스트를 분리하면 원인을 빠르게 찾을 수 있습니다.
첫 번째가 실패하면 OCI/Security List/Public endpoint를, 두 번째가 실패하면 Client와 내부 Target 사이의 routing/firewall/service를 봅니다.

다음 단계

서비스 게시

SSH, HTTP, HTTPS, Custom TCP 또는 내부 LAN의 다른 서버를 공개합니다.

방화벽 & NAT

Direct, Public/Listen 분리 NAT, single-443 차이를 비교합니다.

OCI 공식 참고 문서

마지막 수정일 2026년 9월 10일