Oracle Cloud 프리티어 A1 인스턴스 생성 + 고정 public IP 생성

예진욱·2024년 10월 10일

Oracle Cloud

목록 보기
1/2

개인용 무료 클라우드를 사용하기에 최적의 플랫폼은 Oracle Cloud 이다.
AWS, Google Cloud, Microsoft Azure 등과 같은 플랫폼은 프리티어가 기간 제한적이고 볼륨도 적다.

그에 비해 Oracle Cloud 는 아래와 같은 프리티어를 평생 제공한다.
중점적으로 봐야 할 부분은 CPU 4개, Ram 24GB 가 무료라는 것이다.

다만 개인이 계정을 생성하는 과정 자체가 까다롭다.
결제 카드 등록 부분에서 계속 막혀 지원팀에 직접 메일로 문의해 해결했고,
뿐만 아니라 국내 Region 으로 가입하는 것도 언제까지 대기해야 되는지 모른다.

오랜 시간을 들여 춘천 Region 으로 계정 생성에 성공했고,
이번 포스팅에서는 A1 VM 인스턴스 1개를 올리고 Public IP 를 지정하는 과정을 담는다.

✏️ 1. 고정 public IPv4 주소 생성

고정 public IP 를 지정하지 않으면 IP 가 유동적으로 변경된다.
그러면 외부에서 접속 시마다 IP 를 변경해서 접속해야 되는 불편함이 있다.
물론 도메인을 적용할 때부터 유동IP 로 지정하는 DDNS 방법도 존재하지만,
Oracle Cloud 에서 무료 고정 public IP 를 1개 제공해주니 그것을 사용해보자.

우선 인스턴스 생성 전에 public IP 를 할당받아보자.

좌측 상단 메뉴 탭 -> 네트워킹 -> 예약된 퍼블릭 IP

퍼블릭 IP 주소 예약 -> 이름 지정 후 예약

IP 생성 확인 및 OCID 복사

✏️ 2. VM 인스턴스 생성

이제는 A1 VM 인스턴스를 생성해보자.
무료로 제공되는 A1 CPU 4개, RAM 24GB 중 A1 CPU 1개와 RAM 12GB 를 할당하고자 한다.

Home -> 리소스 실행 -> VM 인스턴스 생성

VM 인스턴스 이름 지정

OS, CPU-Memory 구성 (커스텀)

나의 경우에는 익숙한 Ubuntu 24 선택 (각자 필요한 환경에 맞게 설정)

Shape 은 무료 제공되는 Arm 기반 A1 Flex 모델 선택
총 사용 가능한 무료 제한은 OCPU 4, 24 GB Memory 이므로 각자 환경에 맞게 설정

위 설정한 public IP 의 OCID 를 입력해 반영
VM 인스턴스 생성 시 즉시 적용은 되지 않음. (20241010)
그래서 일단 신규 네트워크 생성 후, 3번 과정에서 연결을 시도한다.

SSH key 로컬에 저장

부트 볼륨 및 VPU 설정
부트 볼륨 자체적으로 비용 부과되니 참고.

비용 확인 후 생성
A1 인스턴스 무료 생성 제한과 부트 볼륨 크기에 주의

인스턴스 생성 확인
요청 후 생성까지 약 1분 소요


✏️ 3. 인스턴스에 고정 public IP 설정

  1. 에서 발급받은 고정 public IP 를 2. 에서 생성한 인스턴스에 적용해보자.
    인스턴스 생성 시에 바로 적용이 안되는 이유는 모르겠지만.. 어찌됐든 아래와 같이 해결했다.

홈의 좌측 상단 메뉴 -> 컴퓨트 -> 인스턴스 진입

인스턴스 선택

좌측 하단의 리소스 -> 연결된 VNIC 진입

인스턴스 선택

Resources -> IPv4 주소 -> 우측 ... 의 편집 진입

IP 초기화를 위한 공용 IP 없음 선택 후 업데이트

다시 편집

기존 예약된 IP 주소 선택 후 업데이트

예약된 IP 로 변경 확인


✏️ 4. SSH 접속

VM 인스턴스 생성 시 SSH 접속은 열어두었으니, 2. 에서 발급받은 SSH key 를 가지고 SSH 에 접속해보자.
22번 포트에 고정 IP 를 넣고, key 를 아까 로컬에 저장해둔 파일로 지정해야 한다.

MobaXterm 으로 진행해보자.

최초 계정 ubuntu 로 접속


✏️ 5. 특정 포트 방화벽 open

Oracle Cloud 는 AWS 와 다르게 방화벽을 두 번 open 해야 한다.
웹 콘솔에서 방화벽을 open 하고, 인스턴스 내 iptables 의 방화벽을 open 하자.

🔗 5-1. 웹 콘솔 방화벽

Networking - Vitrual cloud networks 진입

나의 경우엔 이미 보안 그룹(Security Group)을 만들어 두었으나, 없는 경우엔 Create Newtork Security Group 으로 생성한다.

아래와 같이 80, 443 포트를 연다는 것을 명시한다.
Destination Port Range 에 80,443 이라고 한 번에 등록하면 에러가 발생하니 Rule 탭을 하나 더 추가해서 만들자.

보안 그룹이 생성되었으면 다시 인스턴스 탭에 들어가 보안 그룹을 지정한다.


🔗 5-2. 인스턴스 방화벽

Oracle Cloud 에서는 기본적으로 iptables 방화벽이 내장되어 있다.

# 443번 포트로 들어오는 입력을 허용
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 443번 포트 방화벽 open 확인
sudo iptables -L -v -n | grep ':443'

🔗 5-3. Nginx 설치 및 80 포트 테스트


sudo apt update
sudo apt install nginx -y

sudo systemctl start nginx
sudo systemctl enable nginx  # 부팅 시 자동 시작 설정

sudo systemctl status nginx  # Nginx 상태 확인
sudo lsof -i :80             # 80 포트에서 수신 대기 중인 프로세스 확인

curl -I http://localhost     # 로컬 접속 확인

웹에서도 접속해보자.
인스턴스가 올라간 서버의 IP 를 입력해보자.

다음 포스팅에는 도메인을 구매해 DNS 를 적용하고,
HTTPS 접속이 가능하게 SSL 인증을 해보려고 한다.

도메인 구매, DNS, SSL 인증 (가비아, Oracle Cloud)

profile
Spring 백엔드 개발자

0개의 댓글