딥상어동의 딥한 프로그래밍/엔지니어링

오라클 클라우드(2) - VM 생성기(Compartment, VCN)

딥상어동의 딥한생각 2022. 8. 7. 17:19

핵심 내용

이틀간의 고군 분투 끝에 오라클 클라우드 프리티어 계정을 생성했다👇👇👇. 오늘은 VM을 만들어볼 예정.

https://gibles-deepmind.tistory.com/140

 

오라클 클라우드(1) 계정 생성기 - 공짜를 누리려는 자, 그 무게를 견뎌라

들어가며 때는 바야흐르, 2022년 6월 12일 GCP를 이용하여 데이터 적재 파이프라인을 만들어보는 튜토리얼 글을 적었으나.. GCP는 90일 동안만 무료로 쓸 수 있고 그 90일이 거의 다 되가는 지금... 나

gibles-deepmind.tistory.com

 

본 글에서 다루는 내용

1. Tenancy와 Compartment
2. VCN
3. VM 생성
    3-1. ssh-key 생성 (feat. git bash)
    3-2. vm 생성
    3-3. 원격 접속

 

1. Tenancy와 Compartment

날이 갈수록 퇴화하는 그림 실력

오라클 클라우드에는 Tenancy와 Compartment라는 개념이 있다. 편의상 Tenancy는 그냥 세입자라고 하겠다. 현재, 나는 클라우드 공간내 어느 부분의 자원을 점유하고 있는것이니, 내 계정(=root)을 세입자라고 할 수 있다.

프로필의 Tenancy 탭에서 좀 더 자세한 정보를 볼 수 있다.

 

 

그리고, 내 집의 각 구역을 Compartment라고 할 수 있다. 방/거실/화장실 등등. 중요한 것은 오라클 클라우드에서는 자원을 할당 받을 때마다, 항상 Compartment를 생성해주어야 한다는 것. 우리도 VM을 만들거니까 Compartment를 생성해주자.

 

1-1. Navigation → Identity & Security → Compartments 

 

1-2. Create Compartment 클릭 → Name/Description입력 

※Parent Compartment는 tenancy로 자동 지정 되어 있다.

 

1-3. 잠시 기다리면 생성 완료 → Compartment를 추가하면서 Tenancy의 Subcompartments가 1로 변경

 

2. VCN(VIRTUAL CLOUD NETWORK)

Oracle data center안에서 설정하는 가상의 사설 네트워크를 의미한다. VM 인스턴스 실행 시 사용할 네트워크 자원을 미리 할당 받아 두는 것이라고 생각하면 된다. 자세한 내용은 아래 공홈 참고 👇👇👇https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingVCNs.htm#VCNs_and_Subnets

 

VCNs and Subnets

 

docs.oracle.com

 

2-1. HOME → Pinned → Virtual Cloud Networks 클릭

 

2-2. Compartment 클릭 → Start VCN Wizard 클릭

만약, VCN Wizard 없이 생성하고 싶은 경우. 아래 공홈 링크 참조 👇👇👇

https://docs.oracle.com/en/learn/create-vcn/index.html#introduction

 

Create Virtual Cloud Networks in Oracle Cloud Infrastructure

Create Virtual Cloud Networks in Oracle Cloud Infrastructure.

docs.oracle.com

 

2-3. 설정 그대로 Start VCN Wizard 클릭

 

2-4. VCN NAME 입력 → Compartment에서 방금 생성한 구획 선택후 Next 클릭(나머지 설정은 그대로) → Create 클릭

 

여기까지. 진행하면 아래와 같이 생성된 VCN 정보를 확인할 수 있다.

 

3. VM 생성

 

3-1. SSH Key생성

 

3-1-1. SSH(Secure Shell) Key란?

본인 그림

VM은 로컬에 존재하지 않으므로, 원격 통신을 해야 한다. 원격 통신 할 때, 상호 간의 신뢰성을 담보하는 수단을 SSH Protocol이라고 한다. Private Key와 Public Key 두 쌍을 생성하고, 서버에 공개키를 전달한다. 그리고, 그 공개키가 내가 가진 사설키와 일치하는지 확인한다. 일치하면 서버가 날 반겨준다. 

 

들어왕

VM을 생성하는데, SSH를 먼저 얘기하는 이유는 VM 생성 전 미리 SSH Key 생성을 권장하는 글들이 많았기 때문이다.

 

3-1-2. SSH(Secure Shell) Key 생성 방법

첫 번째, 윈도우에서는 putty라는 프로그램을 이용하여 만들 수 있다. 

두 번째, CLI(리눅스, 맥)에서 ssh-keygen -t rsa 명령어를 실행하여 생성할 수 있다.

ssh-keygen -t rsa

나는 git-bash를 이용해 윈도우에서 위 명령어를 이용해 SSH-key를 생성했다. 접속도 git-bash에서 할 예정. 완료되면 아래와 같은 화면이 나온다.

 

.ssh 폴더 내에서 PUB 파일을 열어보면 

 

아래와 같이 ssh-rsa로 시작하는 파일이 있는데 이게 공개키다. VM 생성 시 이 공개키를 그대로 복사해서 전달해 줄 예정

 

3-2. VM 생성

 

3-2-1. Computer → Instance 클릭 → Create instance

 

3-2-2. 이름 및 구획 설정 - 적당한 이름 입력 및 최초에 생성한 Compartment(구획) 선택

 

3-2-3. Image and Shape 수정 

 

Oracle 리눅스 → 우분투로 변경

 

AMD VM → ARM VM 으로 변경

최대 OCPU 4개! / 메모리 최대 24GB!

 

※단, ARM으로 인스턴스를 생성할 경우, Free trial기간 종료 후 30일 이내 인스턴스가 삭제될 수도 있음. 그게 귀찮으신 분들은 AMD로 생성

https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier.htm

 

Oracle Cloud Infrastructure Free Tier

Oracle Cloud Infrastructure's Free Tier includes a free time-limited promotional trial that allows you to explore a wide range of Oracle Cloud Infrastructure products, and a set of Always Free offers that never expire. The Free Tier and Always Free resourc

docs.oracle.com

 

3-2-4. Add SSH Keys ★

아까 만든 공개키를 여기에 복붙해준다!!!! 제일 중요!!! Paste public keys!

 

3-2-5. Boot volume 설정

최대 볼륨은 200! 혹시, 다른 인스턴스를 생성할지도 모르니 우선 100으로 설정해두었다. VPU는 기본 설정이 10이나, 나는 20으로 변경해주었다. Reddit에서 검색해보니, 20이상으로 올려도 별 소용은 없다는 듯

여기까지 하고 Create 버튼을 클릭한다. 그럼 생성 완료! + 이후 고정 IP발급까지 같이 진행했는데, 해당 블로그에 설명 엄청! 자세하게 되어있다. 참고해서 진행하시길

https://iter.kr/%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B3%A0%EC%A0%95ip-%EC%83%9D%EC%84%B1/

 

오라클 클라우드 고정IP(공용IP) 생성

오라클 클라우드 고정IP 발급과 생성된 인스턴스 VM에 연결하는 과정입니다. 오라클 클라우드에서 고정 IP를 예약된 공용IP로 표기하고 있습니다.

iter.kr

 

3-3. VM접속

수신 규칙에 기본적으로 22번(=SSH) 포트가 열려 있다.

ssh -i id_rsa ubuntu@공용IP주소

위와 같이 입력하면 아래와 같이 나오는데 Yes를 입력해준다. 그리고, 비밀번호를 입력해주면

 

접속 성공이다. 

 

맥에서도 들어가봅시다. 저는 드랍박스에 key file을 넣어놔서 맥 내에서도 동일한 key 값을 참조했다. 아래 명령어를 맥에서 그대로 실행하면 에러가 발생한다

ssh -i id_rsa ubuntu@공용IP주소

 

왜냐하면, id_rsa키 값의 권한 때문인데, 아래와 같이 group과 other에 읽기 권한이 있기 때문

 

그래서 사용자 외에는 모든 권한을 다 막아주면, 정상적으로 실행된다.

chmod 600 id_rsa