오라클 클라우드 무료 서버 구축 가이드: 가입부터 PAYG 전환, Ampere 인스턴스 생성까지
· 15분 읽기
오라클 클라우드 가입과 PAYG 전환, Ampere 인스턴스 생성과 Nginx 접속 확인까지 마쳤고, 카드 승인 거절과 Out of Capacity 에러에 막혔던 기록입니다.
이 글에서 다루는 내용
- 가입 전 준비물과 기본 정보 입력, 홈 리전 선택
- 카드 승인이 계속 거절될 때 넘어간 방법과 재시도 주의점
- PAYG(Pay-As-You-Go)로 전환한 이유와 과정
- Ampere A1.Flex 인스턴스 생성 (2 OCPU / 12GB, 부트 볼륨 200GB)
- Out of Capacity 거절과 Resource Manager 스택 재시도
- 방화벽 2단계 개방, SSH 접속과 Nginx 확인
오라클 클라우드 무료 티어가 Ampere ARM 서버를 무료로 쓸 수 있다는 이야기를 듣고, 개인 프로젝트용 서버를 하나 만들어 두기로 했습니다. 무료 티어 스펙은 예전과 달라져서 현재 기준으로는 **2 OCPU / 12GB RAM, 디스크 최대 200GB, 공인 IPv4 1개까지가 무료 한도**입니다. 이 사양이라면 만들지 않을 이유가 없었습니다.
결과적으로 서버는 정상적으로 떴지만, 중간에 두 번 막혔습니다. 가입 단계의 카드 인증에서 한 번, 인스턴스 생성 단계의 Out of Capacity에서 또 한 번입니다. 이 글은 가입부터 Nginx 접속 확인까지 겪은 순서 그대로 정리한 기록입니다.

테스트 환경
- 캡처 기준: 2026-08-10
- 홈 리전: Japan East (Tokyo)
- OS 이미지: Canonical Ubuntu 24.04
- 셰이프: VM.Standard.A1.Flex 2 OCPU / 12GB
- 부트 볼륨: 200GB
- 로컬: Windows 11 노트북 (가입은 회사 네트워크, 이후 작업은 집 Wi-Fi)
01 가입 전에 챙겨 둔 것
가장 먼저 해외 결제가 되는 VISA 또는 MasterCard 신용카드나 체크카드가 필요합니다. 체크카드를 쓴다면 카드 승인 테스트 때문에 통장에 최소 12~13만 원 이상의 잔액이 있어야 합니다. 영문 주소는 네이버 영문주소 변환기로 만들었고, 카드 승인 문자를 받을 스마트폰도 옆에 두었습니다.
02 기본 정보 입력과 홈 리전 선택
cloud.oracle.com에 접속해 Start for free로 들어갔습니다. Country는 South Korea, 이름과 성은 카드 명의와 같은 영문, 이메일은 인증번호를 받을 실제 주소를 입력했습니다.
메일로 온 Verify email을 눌러야 다음 입력란이 열리기 때문에, 단계가 넘어가는 것 자체가 인증 확인이었습니다. 비밀번호는 영문 대소문자와 숫자, 특수문자 조합으로 만들었고, Account Type은 개인 계정인 Individual로 선택했습니다. Cloud Account Name은 영문 소문자와 숫자로 된 나만의 관리자 ID이며, 이후 로그인할 때마다 사용하는 값입니다.
원래는 홈 리전으로 서울(Seoul)이나 춘천(Chuncheon)을 고르고 싶었습니다. 하지만 오라클 클라우드는 처음에 반드시 무료 티어로 가입한 뒤 유료(PAYG)로 전환하는 구조인데, 당시 가입 화면에서 한국 리전들은 무료 티어 대상에서 아예 선택할 수 없게 막혀 있었습니다. 그래서 한국에서 물리적으로 가장 가까운 일본(Japan East - Tokyo)을 홈 리전으로 선택했습니다. 주소와 전화번호는 영문 도로명 주소와 +82 1012345678 형식으로 입력했고, 왼쪽 요약 창에 홈 영역이 Japan East (Tokyo)로 지정된 것을 확인한 뒤 결제 정보 단계로 넘어갔습니다.
주의
홈 리전은 한 번 정하면 나중에 절대 변경할 수 없습니다. 가입 화면에서 신중하게 골라야 합니다.

이어서 결제 수단 확인을 위한 영문 청구 주소(Billing Information)를 채웠습니다. 이름과 도로명 주소, 우편번호, 연락처를 영문으로 넣고 결제 단계로 넘어갔습니다.
03 카드 승인이 계속 거절되던 구간
집 Wi-Fi에서 카드를 등록하는데 승인이 거절됐습니다. 카드 번호를 다시 확인하고 몇 번을 다시 넣어도 같은 자리에서 막혔습니다. 흔히 카드 인증 ABC 오류라고 부르는 현상인데, 오라클 보안 검사가 접속 환경(IP)이나 반복된 결제 시도를 의심 거래로 보고 막는 경우가 많다고 합니다.

돌아보면 그 자리에서 계속 다시 시도한 것이 가장 큰 실수였습니다. 같은 장소, 같은 네트워크에서 거절이 쌓이면 그 기록 때문에 더 강하게 막힌다는 이야기가 많습니다. 실제로 몇 번을 더 눌러 봐도 결과는 같았습니다.
결국 집에서는 포기하고, 회사에 가서 회사 네트워크로 처음부터 다시 신청했습니다. 카드도 입력 정보도 그대로였는데, 장소만 바꾸자 바로 통과했습니다.
약 1$짜리 테스트 결제 승인 문자가 오고 가입 완료 메일이 도착한 것으로 성공을 확인했습니다. 이 테스트 결제는 카드 확인용이라 자동 환불 대상입니다.
주의: 카드 승인이 한 번 거절됐다면
카드 승인이 한 번 거절되면 그 자리에서는 절대 다시 시도하지 않는 것을 추천합니다. 새로고침하고 같은 카드로 다시 누르는 것도, 다른 카드로 바로 바꿔 넣는 것도 모두 재시도입니다. 반드시 다음 날 다시 하거나, 회사처럼 네트워크가 다른 장소로 옮겨서 처음부터 새로 신청하는 것을 추천합니다. 같은 자리에서 몇 번 더 눌러 봐도 풀리지 않고, 오히려 거절 기록만 늘어납니다.
04 집 Wi-Fi로 돌아와 로그인, 홈 리전은 도쿄
가입만 회사에서 마치고 나니, 그다음부터는 집 Wi-Fi에서도 정상적으로 동작했습니다. 실제로 이후 작업은 전부 집 네트워크에서 진행했습니다. cloud.oracle.com에서 테넌시 이름, 즉 가입할 때 만든 Cloud Account Name을 입력하고 로그인했습니다. 콘솔 상단 리전 메뉴를 열어 보니 가입 때 선택한 대로 홈 리전은 Japan East (Tokyo)였고, 한 리전만 구독 중이라는 안내가 표시돼 있었습니다. 한국 리전을 선택하지 못한 점은 아쉽지만, 도쿄 리전도 지연 시간 면에서는 충분히 쾌적하게 쓸 수 있습니다.

05 PAYG로 전환한 이유와 과정
순수 무료 계정은 서버를 만들 때 자원 부족, 즉 Out of Capacity 거절을 자주 받는다고 합니다. PAYG(Pay-As-You-Go)로 전환하면 유료 사용자 우선순위로 자원이 배정돼 거절 없이 만들어진다는 이야기도 많았습니다. **유료 계정이어도 Always Free 범위인 2 OCPU / 12GB RAM / 디스크 200GB 안에서만 쓰면 청구액은 0원**이기 때문에, 바로 전환하는 쪽을 선택했습니다.

전환은 콘솔 왼쪽 메뉴에서 Billing & Cost Management로 들어가 Upgrade to Pay As You Go를 누르고, 결제 카드를 선택한 뒤 Upgrade Account를 누르면 끝납니다.
신청하면 곧바로 약 100$(한화 약 13~14만 원)의 가승인이 잡힙니다. 유효한 카드인지 검증하는 임시 보증금이며, 제 경우 며칠 안에 전액 자동 취소됐습니다. 가승인 문자가 온 것으로 전환 신청이 접수된 것을 확인했습니다.
06 인스턴스 생성 시작과 기본 정보
대시보드 메인의 Create a VM instance를 눌러 생성 화면으로 들어갔습니다.

이름은 자동으로 입력된 instance-20260810-1357을 그대로 두었습니다. 알아보기 쉬운 이름으로 바꾸는 편이 낫지만, 이번에는 기본값으로 진행했습니다. 가용성 영역도 기본 지정된 AD 1을 유지했습니다.

Placement 아래 Advanced options의 Capacity type은 기본값인 On-demand capacity 그대로 넘어갔습니다.

07 이미지를 우분투로, 셰이프를 Ampere로
이미지 기본값은 Oracle Linux 9입니다. 저는 익숙한 쪽이 편해서 우분투로 바꾸기로 했습니다.

셰이프 기본값은 AMD VM.Standard.E2.1.Micro로, 1 OCPU / 1GB 사양입니다. Always Free-eligible 배지는 붙어 있지만 사양이 작아서 Ampere로 바꿀 대상이었습니다.

Image의 Edit에서 Canonical Ubuntu 24.04를 고르고 Select image를 눌렀습니다.

목록으로 돌아오면 이미지가 Canonical Ubuntu 24.04로 바뀐 것이 보여 적용을 확인했습니다. 셰이프는 아직 AMD Micro 그대로라 이어서 변경했습니다.

Shape의 Edit에서 Browse all shapes를 열고 Shape series를 Ampere로 고르면 VM.Standard.A1.Flex가 나옵니다. 여기에도 Always Free-eligible 표시가 붙어 있고, 기본값은 1 OCPU / 6GB입니다.

여기서 먼저 밝혀 둘 점이 있습니다. 캡처를 찍을 때는 OCPU 4, 메모리 24GB로 잡혀 있었지만, 실제 서버는 무료 한도에 맞춰 2 OCPU / 12GB로 바꿔서 만들었습니다. 바꾼 뒤의 화면은 따로 찍지 못해서 아래 셰이프 캡처들은 4 OCPU 상태 그대로입니다. 따라 하실 때는 OCPU에 2, 메모리에 12를 입력하면 됩니다.

주의: Always Free-eligible 배지만 믿으면 안 됩니다
4 OCPU / 24GB로 올려도 Always Free-eligible 배지는 그대로 붙어 있습니다. 배지만 보고 무료 범위라고 판단하지 말고, 숫자를 한도인 2 OCPU / 12GB 안으로 직접 맞춰야 합니다.

2 OCPU / 12GB도 일반 가상 서버 호스팅이라면 월 3~5만 원 이상인 사양이라, 개인 블로그나 도커 컨테이너 몇 개는 넉넉히 돌아가는 수준입니다.
Basic information 요약에서 셰이프가 Ampere A1.Flex로 잡혔는지 확인하고 다음으로 넘어갔습니다.

다음 단계인 Security는 Shielded instance를 끈 상태로 그대로 넘겼습니다.

08 네트워킹, 그리고 꺼진 공인 IP 토글
Networking 기본값은 Select existing virtual cloud network입니다. 처음 만드는 계정이라 기존 VCN이 없으므로 바꿔야 했습니다.

Create new virtual cloud network로 바꾸자 vcn-20260810-1415라는 이름과 Create new public subnet, subnet-20260810-1415가 자동으로 채워졌습니다. 값이 채워진 것을 확인하고 그대로 두었습니다.

서브넷 CIDR도 10.0.0.0/24로 자동 입력됩니다.

문제는 Public IPv4 address assignment였습니다. 공인 IP가 있어야 인터넷에서 서버로 들어올 수 있기 때문에 자동 할당을 켜야 하는데, 토글이 꺼져 있었고 다음 경고가 표시돼 있었습니다. 분명히 public subnet을 새로 만들도록 선택했는데도 그랬습니다.
You must select a public subnet to assign a public IPv4 address

09 SSH 키 받기와 부트 볼륨 200GB
SSH 키 쌍은 서버 비밀번호 대신 쓰는 디지털 열쇠입니다. Generate a key pair for me를 그대로 두고 Download private key와 Download public key를 눌러, 다운로드 폴더에 .key와 .pub 두 파일이 저장된 것을 확인했습니다. 개인키는 C:\OracleKey 같은 안전한 폴더로 옮겨 두었습니다.
핵심 팁
개인키(.key) 파일을 잃어버리면 서버에 접속할 방법이 없습니다. 다운로드 직후 별도의 안전한 폴더로 옮겨 보관해야 합니다.

Storage 단계의 기본값은 부트 볼륨 46.6GB, 커스텀 크기 토글 꺼짐, in-transit encryption 켜짐이었습니다.

Specify a custom boot volume size를 켜고 200GB, VPU 10으로 설정했습니다. 화면에 12,000 IOPS와 96MB/s Balanced가 표시되는 것으로 적용을 확인했습니다. 디스크는 Always Free 한도가 총 200GB라서 딱 그만큼 키웠고, 어차피 무료 한도이니 처음부터 최대치로 잡는 편이 낫다고 판단했습니다.

10 Review 확인과 Out of Capacity 거절
Review에서 입력값을 하나씩 확인했습니다. Basic information에는 이름과 AD-1, on-demand, Canonical Ubuntu 24.04가 정리돼 있었습니다.

Shape 항목도 캡처에는 4 core OCPU, 24 GB memory로 나와 있습니다. 앞에서 설명한 대로 실제로 만들 때는 2 OCPU / 12GB로 바꿨습니다.

Networking 항목에는 새 VCN과 서브넷 이름, CIDR과 함께 Public IPv4 address: No가 표시돼 있었습니다. 예상했던 대로였습니다.

SSH 키와 부트 볼륨 200GB, VPU 10, in-transit encryption Enabled까지는 문제없이 들어가 있었습니다.

네 단계를 모두 채운 상태에서 Networking으로 다시 돌아가 봤지만, 공인 IP 토글은 여전히 꺼져 있었고 경고도 그대로였습니다. 캡처를 다시 봐도 토글을 켜는 데 성공했는지, 생성 후에 공인 IP를 따로 붙였는지에 대한 기록이 없어 그 부분은 아직 확인하지 못했습니다.

일단 Create를 눌렀습니다. 그러자 다음 API Error가 떴습니다.
Out of capacity for shape VM.Standard.A1.Flex in availability domain AD-1. Create the instance in a different availability domain or try again later.
무료 계정에서 흔하다던 그 거절을 PAYG 전환까지 마친 상태에서 받으니 당황스러웠습니다.

11 Resource Manager 스택으로 재시도
에러 화면 하단에 Save as stack 버튼이 있어서, 입력값을 Resource Manager 스택으로 저장하는 쪽으로 방향을 바꿨습니다. 거절될 때마다 폼을 처음부터 다시 채우는 것보다 이쪽이 낫다고 판단했습니다. Create stack 화면에는 Stack origin이 Compute instance로, Terraform 버전이 1.5.x로 잡혀 있었습니다.
핵심 팁
Out of Capacity가 뜨면 에러 화면의 Save as stack으로 입력값을 저장해 두면 됩니다. 이후에는 폼을 다시 채우지 않고 스택에서 Apply만 다시 실행할 수 있습니다.

Review에서 Run apply를 체크하고 Create를 눌러, 스택 생성과 동시에 apply가 실행되도록 했습니다.

첫 apply 잡은 06:02 UTC에 State Accepted로 시작됐습니다.

Stacks 목록에서 스택이 Active로 올라온 것도 확인했습니다.

그런데 첫 잡은 Failed로 끝났습니다. 스택 화면에서 Apply를 다시 눌러 두 번째 잡 apply-job-20260810150538을 만들었고, Automatically approved 설정이라 바로 실행되기 시작했습니다.

Jobs 목록에는 06:02의 첫 잡이 Failed, 06:06의 두 번째 잡이 Accepted로 나란히 남았습니다. 캡처는 여기까지입니다.

서버는 결국 만들어졌습니다. 두 번째 잡으로 생성된 것인지, 그 뒤에 다시 실행해서 생성된 것인지는 캡처가 없어 확실하지 않습니다. 인스턴스 화면에서 주황색 PROVISIONING이 초록색 RUNNING으로 바뀐 것을 보고 생성 성공을 확인했고, 화면에 표시된 공인 IP 주소를 복사해 두었습니다.
12 방화벽 두 단계 열기
밖에서 서버로 들어오려면 방화벽을 두 군데에서 열어야 합니다. 오라클 쪽 보안 목록과 우분투 내부의 iptables입니다.

먼저 오라클 쪽입니다. 콘솔 메뉴에서 Networking → Virtual Cloud Networks → 내 VCN → Default Security List로 들어가 Ingress Rules를 추가했습니다.
- Source CIDR: 0.0.0.0/0
- IP Protocol: TCP
- Destination Port Range: 80, 443, 8080
다음은 서버 내부 방화벽입니다. 서버에 접속해야 입력할 수 있어서, 다음 단계의 SSH 접속 뒤에 입력했습니다.
sudo iptables -F
sudo netfilter-persistent save
iptables -F는 방화벽 규칙을 전부 비우는 명령이고, netfilter-persistent save는 그 상태를 저장하는 명령입니다. 규칙을 통째로 지우는 방식이라 다소 찜찜했지만, 우선 접속부터 확인하는 것이 먼저라 그대로 진행했습니다. 제대로 열렸는지는 마지막 Nginx 접속으로 확인했습니다.
13 SSH 접속과 Nginx 확인
Windows 환경이라 Win + R을 눌러 cmd를 입력하고 터미널을 열었습니다. 접속 명령은 다음과 같습니다.
ssh -i "C:\OracleKey\<개인키 파일명>.key" ubuntu@<공인IP>
최초 접속에서 fingerprint를 물으면 yes를 입력하면 접속됩니다. 프롬프트가 서버 쪽으로 바뀐 것으로 접속을 확인했습니다.
이어서 Nginx를 설치했습니다.
sudo apt update && sudo apt install -y nginx
설치 후 위의 iptables 해제 명령 두 줄을 한 번 더 입력했습니다. 그리고 브라우저 주소창에 http://<공인IP>를 입력했습니다. Welcome to nginx! 문구가 보이면 외부에서 서버까지 경로가 모두 열린 것입니다.
정리
- 카드 승인이 반복 거절될 때는 집에서 몇 번을 다시 넣어도 풀리지 않았고, 회사 네트워크에서 처음부터 새로 신청하자 한 번에 통과했습니다. 한 번 거절되면 그 자리에서 재시도하지 말고, 다음 날 하거나 다른 장소에서 새로 신청하는 것이 답이었습니다.
- 셰이프는 캡처 속 4 OCPU / 24GB가 아니라 2 OCPU / 12GB로 바꿔서 만들었습니다. 4 OCPU에서도 Always Free-eligible 배지가 붙어 있으므로 숫자는 직접 확인해야 합니다.
- Out of Capacity는 AD-1의 A1.Flex 용량 부족이 원인입니다. PAYG면 거절 없이 바로 배정된다는 이야기와 달리 거절을 받았고, Save as stack으로 만든 스택에서 apply를 두 번 실행했습니다. 첫 잡은 Failed였고, 두 번째 잡이 Accepted까지 간 것만 캡처로 남아 있습니다.
- 공인 IPv4 자동 할당 토글은 public subnet을 새로 만들도록 설정했는데도 끝까지 켜지지 않았습니다. 서버에는 결국 공인 IP로 접속했지만, 그 IP가 어느 시점에 어떻게 붙었는지는 기록이 없어 아직 확인하지 못했습니다.
마치며
PAYG 구간 캡처가 아직 비어 있어서 다시 찍어 채울 예정입니다. 공인 IP 토글이 왜 켜지지 않았는지, 지금 붙어 있는 공인 IP가 어디서 왔는지도 콘솔에서 확인해 보려고 합니다. 다음 글의 가제는 “무료 VM 인스턴스 생성과 SSH 접속”이었는데, 그 내용이 이번 글에 대부분 들어와서 시리즈 순서를 다시 정리할 생각입니다.
참고한 곳
- #오라클클라우드
- #OCI
- #무료서버
연재 글 목록 · 오라클 클라우드 무료 서버 만들기
- 1편오라클 클라우드 무료 서버 구축 가이드: 가입부터 PAYG 전환, Ampere 인스턴스 생성까지 (지금 읽는 글)
- 2편오라클 무료 서버 안정화, 임시 IP의 정체와 UFW·Swap·타임존 설정
- 3편오라클 클라우드 무료 서버에 내 도메인 연결하기: DNS A 레코드, Nginx 리버스 프록시, Let's Encrypt 무료 HTTPS
- 4편오라클 클라우드 무료 서버에 Docker 올리기: Portainer 관리, Uptime Kuma 배포와 서브도메인 HTTPS 연결