Compute Service(VM) 생성

OCI Compute 서비스를 이용하여 오라클 클라우드에 Compute(VM or 베이메탈) 서버를 만들고 관리할 수 있습니다. 이렇게 만든 서버를 Compute 인스턴스라고 합니다.

HOL: OCI Compute

이번 Hands-on Lab에서는 OCI Console을 이용하여 OCI Linux VM 인스턴스를 생성하는 절차를 소개합니다. 이번 Hands-on Lab은 다음과 같은 작업으로 진행됩니다.

이번 Hands-on Lab을 통해서 다음과 같은 VM 인스턴스를 만들 수 있습니다.

이번 Hands-on Lab은 다음과 같은 목차로 구성됩니다.

Compute 서비스 개요

OCI Compute는 오라클 클라우드에 컴퓨트 서버를 배포하고 관리하는 서비스입니다. OCI Compute로 배포한 서버를 인스턴스라고 합니다. OCI Compute 인스턴스에는 스토리지로 로컬 스토리지와 Volume 스토리지를 갖을 수 있습니다. 로컬 스토리에서 저장된 데이터는 인스턴스를 종료(자원 제거)하면 완전 소멸됩니다. Volume 스토리지에 저장된 데이터는 인스턴스를 종료 후에도 유지됩니다.

OCI Compute는 두 가지 유형의 인스턴스를 제공합니다.

OCI의 VM과 Bare Metal은 같은 인프라(물리적 서버)를 사용합니다. OCI Compute는 Oracle Ksplice 를 사용하여 하이퍼바이저 호스트를 재시작하지 않고 보안과 커널 업데이트를 적용합니다.

선행 Hand-on Lab

다음과 같은 Hand-on Lab이 선행되어야 합니다.

Hands-on Lab 실습 환경

Hands-on Lab은 OCI 일반 사용자인 demo.admin 사용자로 OCI IAM 로그인하여 진행합니다. 이번 Hands-on Lab에서 사용할 OCI 사용자와 컴파트먼트는 다음과 같습니다.

OCI User 작업 Compartment
demo.admin root/sandbox/hol-prod

사전 준비

OCI Compute 인스턴스를 만들기 위해서는 다음과 같은 두 가지 준비 작업이 필요합니다.

  1. 사용 가능한 자원 확인
  2. ssh Key Pair 파일 생성

사용 가능한 자원 확인

OCI Compute 인스턴스를 어떤 자원(OCPU)로 만들지 결정해야 합니다. 가용한 자원을 확인하는 기능은 Limits, Quotas and Usage 페이지에서 확인할 수 있습니다. 추가 권한 설정을 하지 않은 경우에, OCI 관리자 ID만이 이 페이지에 접근할 수 있습니다. 가용한 자원을 확인하는 작업은 Oracle Cloud 계정의 관리자 ID(taewanme@gmail.com)으로 로그인하여 진행합니다.

(OCI 콘솔 왼쪽 위 햄버그 버튼) Governance Limits, Quotas and Usage

Limits, Quotas and Usage 페이지에서 Scope 항목에서 AD를 지정하면, 현재 사용 가능한 자원 규모가 출력됩니다. 아래 이미지는 Oracle Cloud Trial 계정에 기본 할당된 자원 규모입니다. 아래 결과를 확인하고 이번 Hands-on Lab에서는 VM.Standard2.2를 사용하기로 결정합니다.

이제 OCI 관리자 ID를 로그아웃 하고, OCI 일반 사용자인 demo.admin 사용자로 OCI IAM 로그인하여 다음 과정을 진행합니다.

SSH Key Pair 생성(@Cloud Shell)

생성한 Compute 인스턴스애 ssh 접근을 가능하게 만들기 위해서, Compute 인스턴스를 생성할 때 SSH 공개키를 등록해야 합니다. Compute 인스턴스에 등록할 SSH 키쌍(Key Pairs) 파일을 준비합니다.

이번 Hands-on Lab에서 VM 인스턴스를 만든 다음에, Cloud Shell에서 ssh 로그인을 시도할 것입니다. Cloud Shell에서 SSH 키쌍(Key Pair) 파일을 만들겠습니다.

demo.admin로 로그인하여 cloud shell을 실행합니다.

SSH Key Pair 파일을 만들기 위해서 다음 명령을 실행하고 추가되는 입력 요청에 추가 설정 없이 Enter 입력만 합니다.

ssh-keygen -t rsa

위 명령을 실행하면 다음과 같이 실행됩니다. 명령이 실행되면서 4개 입력 요청이 나타납니다. 각 요청에 Enter만 입력합니다.


명령이 실행되면 다음과 같이 생성되는 파일을 확인할 수 있고, 공개키 내용을 확인할 수 있습니다.

## ssh key pair 파일 확인 명령
ls -al ~/.ssh/ 

## ssh 공개 키 확인 명령
cat ~/.ssh/id_rsa.pub

위 명령을 실행하면 다음과 같은 결과가 출력됩니다.

ssh 공개 키는 OCI Compute 인스턴스를 생성 과정에서 입력값으로 사용됩니다. 공개키를 별도 저장합니다.

cloud shell에 다음 명령을 입력하여 생성한 ssh key pair 파일 Permission을 600으로 설정합니다.

chmod 600 ~/.ssh/id*

위 코드는 다음과 같이 실행됩니다.

demo_admin@cloudshell:~ (ap-seoul-1)$ chmod 600 ~/.ssh/id*
demo_admin@cloudshell:~ (ap-seoul-1)$ ls -al ~/.ssh
total 12
drwx------. 2 demo_admin oci   57 Apr  3 03:34 .
drwxr-xr-x. 3 demo_admin oci  109 Apr  3 00:03 ..
-rw-------. 1 demo_admin oci 1679 Apr  3 00:03 id_rsa
-rw-------. 1 demo_admin oci  405 Apr  3 00:03 id_rsa.pub
-rw-r--r--. 1 demo_admin oci  351 Apr  3 05:08 known_hosts
demo_admin@cloudshell:~ (ap-seoul-1)$ 

OCI Compute 인스턴스 생성

OCI Console에 demo.admin ID로 OCI IAM 옵션으로 로그인합니다. 그리고 Compute 인스턴스를 생성하기 위해서 다음과 같은 메뉴 패스로 이동합니다.

(OCI 콘솔 왼쪽 위 햄버그 버튼) Compute Instances


Compute 인스턴스 관리 페이지에서 Compartment를 root/sandbox로 설정하고 Create Instance 버튼을 클릭합니다.

Create Instance 버튼을 클릭하면 Compute 인스턴스 생성 폼이 출력됩니다. Compute 인스턴스 생성 폼에서 Show Shape, Network and Storage Options 링크를 클릭합니다.


다음 항목을 다음 이미지와 같이 입력합니다.

설정 항목 설정값 비고
Name demo-linux-vm
Image or operating system Oracle Linux 7.7 - Chanage Image 버튼을 클릭하고 선택
-오라클 리눅스 7.X는 CentOs7.x/RedHat7.x와 완전한 호환성 제공
Availability Domain AD 1
Shape VM.Standard2.2(Virtual Machine) - Change Shape 버튼을 클릭하고 선택
- 2 Core OCPU, 30GB Memory


다음과 같이 Networking 항목을 설정합니다.

설정 항목 설정값 설명
Virtual Cloud Network Compartment hol-prod 선택
Virtual Cloud Network demo-vcn 선택
Subnet Compartment hol-prod 선택
Subnet Public Subnet-demo-vcn(Regional) 선택
Assign a public address 체크


Cloud Shell에서 다음 명령을 입력하고 ssh 공개키를 조회합니다. Paste SSH Keys를 체크하고 앞에서 복사한 공개키를 SSH Keys에 붙여 넣습니다. 그리고 Create 버튼을 클릭합니다.

Compute 인스턴스 생성 폼 입력을 마치고 Create 버튼을 클릭하면, demo-linux-vm 인스턴스의 상세 페이지로 이동합니다. 인스턴스 생성중에 아이콘은 주황색이고 인스턴스 프로비저닝이 완료되면 아이콘은 초록색으로 변경됩니다.

SSH 접속 및 설치

이제 demo-linux-vm Compute 인스턴스가 생성되었습니다. demo-linux-vm의 공개 IP 주소를 확인하고 Cloud Shell에서 다음 명려응로 SSH 접근합니다.

ssh opc@[Public IP Address]

Nginx 설치

다음 명령을 입력하여 nginx를 설치합니다.

sudo yum install nginx -y

아래 [접기/펼치기]를 클릭하면 nginx 설치 명령 실행 로그를 확인할 수 있습니다.

[접기/펼치기] nginx 설치 명령 실행 로그

nginx 서비스 등록

다음은 nginx 서비스를 등록 및 nginx 서비스 상태를 조회하는 명령입니다.

sudo systemctl start nginx
sudo systemctl status nginx

위 명령을 ssh 접속한 Cloud Shell에서 실행합니다. 실행 결과는 다음 이미지와 같습니다. 다음 이미지를 보면 Nginx가 작동하는 상태임을 확인할 수 있습니다.

인스턴스 방화벽 오픈

다음 명령을 입력하여 nginx 서비스가 동작하는 것을 확인할 수 있습니다.

curl 127.0.0.1 | head

demo-linux-vm Compute 인스턴스 공개 IP(http://132.145.92.133/ )를 브라우저로 접근하면 다음과 같은 접근 불가 화면이 출력됩니다.

OCI의 Oracle Linux 7.7 이미지로 만든 Compute 인스턴스에는 방화벽이 활성화되어 있습니다. 따라서 OS 방화벽에 해당 포트를 오픈해야 합니다. Oracle Linux에서 80포트를 오픈하는 명령은 다음과 같습니다. ssh로 접근한 터미널에 다음 명령을 실행합니다.

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent ## 80포트 오픈
sudo firewall-cmd --reload                 ## 방화벽 리로드 
sudo firewall-cmd --zone=public --list-all ## 방화벽 오픈 목록 조회

위 명령은 다음과 같이 실행됩니다.

Security List 설정

demo-linux-vm Compute 인스턴스의 공개 IP에 접근하기 위해서는, 이 인스턴스가 위치하는 Public Subnet-demo-vcn 서브넷의 Security List에 80 포트를 오픈하는 Ingress Rule을 추가해야 합니다. demo-linux-vm Compute 인스턴스의 상세 페이지에서 서브넷 링크 Public Subnet-demo-vcn을 클릭합니다.

demo-linux-vm Compute 인스턴스의 상세 페이지에서 Public Subnet-demo-vcn 링크를 클릭하면 demo_vcn VCN 상세 페이지로 이동합니다. demo_vcn VCN 상세 페이지의 Subnet 중에서 Public Subnet-demo-vcn 링크를 클릭하여 Public Subnet-demo-vcn 서브넷 상셍 페이지로 이동합니다.

Public Subnet-demo-vcn 서브넷 상셍 페이지에서 Security Lists 중에서 Default Security List for demo-vcn 링크를 클릭합니다.

Default Security List for demo-vcn Security List 페이지에서 Add Ingress Rules 버튼을 클릭합니다.


Add Ingress Rules 버튼을 클릭 Ingress Rule 등록 폼이 출력됩니다. 공개 서브넷에 80 포트 유입을 허용하는 보안 룰을 다음과 같이 설정하고 “Add Ingress Rules” 버튼을 클릭합니다.

설정 항목 설정 값
Stateless 체크박스 체크 하지 않음
Source CIDR 0.0.0.0/0
IP Protocol TCP
Source Port Range All
Destination Port Range 80
Description http port


Public Subnet의 80포트 유입 Security Rule 설정이 완료되면, 다음과 같은 80포트 Rule이 추가됩니다.


공개 IP 브라우저 접근

Compute 인스턴스가 위치하는 Subnet의 Security List 설정과 운영체제 방화벽 설정을 마치면, demo-linux-vm 컴퓨트 인스턴스의 공개 IP를 브라우저로 접근 가능합니다. 브라우저로 접근하면 다음과 같은 화면이 출력됩니다.

  • 문서 생성: 2020-04-02 12:11 / 최종 문서 수정: 2020-04-02 12:11
  • 김태완 avatar
  • 작성자: 김태완
  • 사랑하는 민수와 데이터 관리, 데이터 분석 & 클라우드에 집중하고 있습니다.
  • E-mail: taewan.me@gmail.com
  • Disclaimer
    이 저작물은 Oracle과 관계없이 개인으로서 개인의 시간을 할애하여 작성된 글 입니다. 본 글의 내용, 입장, 예측은 Oracle을 공식적으로 절대 대변하지 않습니다.