[OCI] 가상 머신 생성 (with.ssh-keygen으로 SSH 키 생성)
1. 가상 머신과 관련한 기본 용어 및 개념
1) 이미지
- 이미지는 운영체제와 함께 설치되는 소프트웨어를 정의하는 가상 하드 드라이브 템플릿이다.
인스턴스의 초기 상태를 정의하며, 여러 인스턴스에서 동일한 환경을 재현하고 효율적으로 관리하는 데 사용된다.
- 기본 플랫폼 이미지(Platform Image) : 오라클이 제공하는 이미지, 여러 운영체제와 버전에 대한 이미지가 미리 구성돼 있다.
- 사용자 정의 이미지(Custom Image) : 사용자가 필요에 따라 수정한 후 저장한 이미지, 자주 사용하는 환경을 재사용할 수 있으며 특정 소프트웨어나 설정이 이미 포함된 이미지를 사용할 수 있다.
2) Shape
- 기본적으로 OCI 서비스에 할당되는 자원의 단위로 이해할 수 있다.
이용할 수 있는 자원의 양과 성능을 결정하는 역할을 한다.
- 하이퍼바이저 가상화 기반 위에서 제공되는 가상 머신 Shape 외에도 “Flexible Shape”, “베어 메탈 Shape” 등이 있다.
- Flexible Shape : 사용자가 OCPU 개수와 메모리 크기를 조정할 수 있는 유연한 형태의 Shape
- 베어 메탈 Shape : 물리 서버를 직접 제공해서 하이퍼바이저 OS 없이 물리 서버를 활용하는 Shape으로 더 높은 성능이 필요한 워크로드에 적합하다.
OCPU
- “OCPU”는 오라클에서 정의하는 컴퓨팅 단위인 “Oracle Compute Unit”의 약어이다.
- 1 OCPU는 하이퍼스레딩이 활성화된 인텔 제온 프로세서의 물리 코어 하나와 동등한 컴퓨팅 자원을 나타낸다.
- 오라클 클라우드에서 가상 머신 인스턴스의 성능을 측정하고 가격을 책정하는 기준이 된다.
3) 부트 볼륨 vs 블록 볼륨
- 블록 볼륨
- OCI 인스턴스에 데이터와 애플리케이션을 저장하기 위한 가상 디스크로 물리 디스크와 유사한 방식으로 사용된다.
- 특정 가상 머신 인스턴스에 연결되어 있으며, 필요에 따라 해당 볼륨을 분리해서 다른 가상 머신 인스턴스에 연결할 수 있다.
→ 블록 볼륨의 재사용과 이동이 용이해지는데 분리와 연결 과정은 데이터 손실 없이 이루어진다. - 인스턴스와 블록 볼륨 간의 연결은 iSCSI(Internet Small Computer System Interface) 프로토콜을 사용한다.
- 인스턴스에서 블록 볼륨을 마운트하고 파일 시스템을 생성해서 데이터를 읽고 쓸 수 있다.
- 하나의 가상 머신 인스턴스에 여러 개의 블록 볼륨을 연결해서 사용할 수 있다.
- 용도에 따라 데이터를 분리해서 저장하거나 필요에 따라 추가 스토리지를 동적으로 연결해서 용량을 확장할 수 있다.
iSCSI 프로토콜
- TCP/IP 프로토콜을 사용해서 스토리지와 호스트 시스템 간에 SCSI 명령을 전송하는 프로토콜이다.
- 부트 볼륨
- 인스턴스의 부팅 이미지를 저장하는 블록 스토리지 디바이스이다.
- 이미지를 기반으로 생성하면 해당 인스턴스와 동일한 컴파트먼트 내에 부트 볼륨이 자동으로 생성된다.
- 부트볼륨은 가상 인스턴스와 연결된 상태로 유지되며, 인스턴스의 실행 여부와 관계없이 계속해서 보존된다.
-> 인스턴스가 종료되어도 부트 볼륨은 보존되므로 다른 인스턴스를 생성할 때 재사용할 수 있다.
4) SSH 키 인증
- 리눅스 인스턴스는 기본적으로 암호 대신 SSH 키 페어를 사용해서 원격 사용자를 인증한다.
프라이빗 키는 로컬 컴퓨터에 보관하고, 퍼블릭 키는 인스턴스 생성 시 제공해서 인증을 하는 방식이다.
- 인스턴스 SSH 키 페어 : 인스턴스에 SSH 연결을 할 때 사용되는 키 페어이다.
- API 키 페어 : API 요청을 할 때 인증을 위해 사용되는 키 페어이다. OCI 자원에 접속하는 데 필요한 키이다.
2. SSH 키 페어 생성
SSH 키 페어를 생성할 때는 가상 머신 생성 화면에서 “Generate a key pair for me” 옵션을 선택해서 오라클 클라우드에서 생성한 프라이빗 키와 퍼블릭 키를 이용할 수도 있다. 하지만 이 경우 생성된 프라이빗 키를 다른 사용자가 읽지 못하도록 읽기 권한을 변경해야 하며, 키 이름에 날짜가 포함되는 점도 고려해야 한다.
로컬 컴퓨터의 터미널을 사용해서 SSH 키 페어를 생성하고, 이를 가상 머신 생성 시에 사용할 것이다.
1
2
3
4
5
ssh-keygen -t rsa -b 2048
<Enter>
<Enter>
<Enter>
## -t 옵션은 생성할 키 알고리즘, -b 옵션은 암호화 비트 수를 나타낸다(최소 2048 비트 이상을 권장)
3. 가상 머신 생성
Name : oci-demo-app
Create in Compartment : ociexplained (리소스를 배포하려는 컴파트먼트 선택)

세부 정보 입력
- Image and shape 섹션
- Image : Oracle Linux 8
- Shape : VM.Standard.E2.1.Micro (Free Tier 선택)
- Primary VNIC information 섹션
- Virtual cloud network : OCI_DEMO (생성한 VNC)
- Subnet : public subnet-OCI_DEMO (자동 생성된 서브넷)
- Assign a public IPv4 address : Yes (퍼블릭 IP 자동 할당)
- Private IPv4 address : Automatically assigned on creation (프라이빗 IP 자동 할당, 직접 지정하려면 Manually assign private IPv4 address 체크하고 서브넷 IP 범위 내에서 지정 가능)
- Add SSH keys 섹션
- Upload public key files (.pub) 선택 후 생성한 SSH 퍼블릭 키(.pub) 업로드
- Image and shape 섹션
퍼블릭 IP 주소
OCI가 관리하는 주소 풀에서 할당한다.
1) Ephemeral 퍼블릭 IP 주소 : 인스턴스에 연결된 후 해당 인스턴스가 삭제되면 함께 삭제된다. 인스턴스와 생명주기가 결합되어 있어 인스턴스가 삭제되면 같이 삭제된다.
2) Reserved 퍼블릭 IP 주소 : 특정 인스턴스와 관계없이 계속 유지된다. 인스턴스와 독립적으로 관리되므로 특정 인스턴스에서 연결을 해제한 후에도 해당 퍼블릭 IP 주소는 유지 된다. 따라서 이 주소를 다른 인스턴스에 할당하거나 재사용할 수 있다.
4. 데이터베이스용 가상 머신 생성
생성은 위의 퍼블릭 IP 주소를 가진 인스턴스 생성과 동일하다. 생성되는 서브넷만 퍼블릭에서 프라이빗으로 변경된다.

















