Cloud Shell 둘러보기

Cloud Shell 둘러보기

OCI 주요 특징

OCI Cloud Shell을 주요 특징을 살펴보겠습니다. 이번 문서는 다음과 같은 목차로 진행합니다.

1. OCI Cloud Shell 시작

OCI Console에서 Cloud Shell 아이콘을 클릭하면 현재 사용 중인 Region이 활성화된 Cloud Shell이 브라우저에 열립니다. Cloud Shell의 입력 프롬프트를 보면 현재 Region이 활성화된 것을 확인할 수 있습니다.

Cloud Shell의 오른쪽 위 메뉴 창에는 창 크기를 조절하는 아이콘과 재접속, 종료 아이콘이 있습니다. 20분간 Cloud Shell을 사용하지 않으면 세션은 종료됩니다.

Cloud Shell 세션이 종료되면 해당 세션 설정은 초기화됩니다. 아래 이미지는 test 변수를 터미널에서 설정한 후 재접속하여 이전 변수를 확인하는 테스트입니다. 이전 세션 설정은 초기화됨을 알 수 있습니다.

2. Cloud Shell 설치 소프트웨어

OCI Cloud Shell에는 다음과 같은 소프트웨어가 기본 설치되어 있습니다. 소프트웨어 설치 버전은 2020년 3월 6일 기준입니다. 시점에 따라서 달라질 수 있습니다.

Software 버전
ansible ansible 2.8.4
Docker Docker version 19.03.1-ol
helm v3.0.1
Git git version 1.8.3.1
gradle Gradle 6.0
Java OpenJDK Runtime Environ
jq jq-1.5
kubectl Major:“1”, Minor:“14”
maven Apache Maven 3.5.0
Python 2 Python 2.7.5
Python 3 Python 3.6.8
SQL*Plus Release 19.0.0.0.0
terraform v0.12.21

3. Cloud Shell 리전 활성화

Cloud Shell은 터미널이 열리는 시점에 OCI Console이 사용하는 Region을 활성화합니다. 다음 이미지는 OCI Console이 Phoenix, Seoul 및 Ashburn Region을 사용하도록 차례로 변경하면서, 각 리전에서 Cloud Shell을 접속한 이미지입니다. 현재 OCI Console이 사용하는 Region은 OCI Cloud Shell이 시작될 때 환경 변수 OCI_CLI_PROFILE에 설정됩니다.

4. OCI CLI 설정

OCI Cloud Shell에는 여러 소프트웨어가 설치돼 있습니다. 특히 OCI CLI(Oracle Cloud 명령어 관리 툴)는 완전한 사용자 설정이 구성되어 있습니다. 이 설정 지원은 사용자 편의성을 크게 높이는 기능입니다. 다음과 같은 OCI CLI 관련 환경 변수가 설정되어 있습니다.

taewan_kim@cloudshell:~ (us-ashburn-1)$ env | grep OCI_CLI
OCI_CLI_AUTH=instance_obo_user
OCI_CLI_CONFIG_FILE=/etc/oci/config
OCI_CLI_PROFILE=us-ashburn-1
taewan_kim@cloudshell:~ (us-ashburn-1)$ 

OCI CLI 설정 파일인 /etc/oci/config파일에는 모든 리전에 대한 설정이 구성되어 있습니다.

taewan_kim@cloudshell:~ (us-ashburn-1)$ cat /etc/oci/config
[eu-amsterdam-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=eu-amsterdam-1
delegation_token_file=/etc/oci/delegation_token

[ap-mumbai-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-mumbai-1
delegation_token_file=/etc/oci/delegation_token

[eu-frankfurt-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=eu-frankfurt-1
delegation_token_file=/etc/oci/delegation_token

[sa-saopaulo-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=sa-saopaulo-1
delegation_token_file=/etc/oci/delegation_token

[ap-hyderabad-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-hyderabad-1
delegation_token_file=/etc/oci/delegation_token

[us-ashburn-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=us-ashburn-1
delegation_token_file=/etc/oci/delegation_token

[ap-seoul-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-seoul-1
delegation_token_file=/etc/oci/delegation_token

[me-jeddah-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=me-jeddah-1
delegation_token_file=/etc/oci/delegation_token

[ap-osaka-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-osaka-1
delegation_token_file=/etc/oci/delegation_token

[uk-london-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=uk-london-1
delegation_token_file=/etc/oci/delegation_token

[ap-melbourne-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-melbourne-1
delegation_token_file=/etc/oci/delegation_token

[ap-tokyo-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-tokyo-1
delegation_token_file=/etc/oci/delegation_token

[us-phoenix-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=us-phoenix-1
delegation_token_file=/etc/oci/delegation_token

[ap-sydney-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-sydney-1
delegation_token_file=/etc/oci/delegation_token

[ap-chuncheon-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ap-chuncheon-1
delegation_token_file=/etc/oci/delegation_token

[ca-montreal-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ca-montreal-1
delegation_token_file=/etc/oci/delegation_token

[ca-toronto-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=ca-toronto-1
delegation_token_file=/etc/oci/delegation_token

[eu-zurich-1]
tenancy=ocid1.tenancy.oc1..aaaaaaaa6ma7aaaasif76uzqidv22cajs3fpesgpqmmsgxihlbcemkklrsqa
region=eu-zurich-1
delegation_token_file=/etc/oci/delegation_token


taewan_kim@cloudshell:~ (us-ashburn-1)$ 

OCI CLI가 실행될 때, /etc/oci/config에 설정된 프로파일 중에서 환경 변수 OCI_CLI_PROFILE에 설정된 값의 프로파일을 기본 로딩합니다. 따라서 별도의 프로파일을 지정하는 귀차니즘을 피할 수 있습니다.

5. Cloud Shell 스토리지 구성

Cloud Shell이 접속하는 리눅스 VM에는 OCI 사용자별로 5GB 스토리지가 할당됩니다. 이 스토리지는 $HOME에 마운트됩니다.

6. sudo 사용 제한

Cloud Shell에서는 sudo 명령을 사용할 수 없습니다.

7. help 명령

Cloud Shell을 소개하는 help 명령을 제공합니다. 이 메시지에서 주요 관련 문서를 확인할 수 있습니다.

taewan_kim@cloudshell:~ (us-ashburn-1)$ help

Welcome to Oracle Cloud Infrastructure Cloud Shell. Your Cloud Shell machine comes with the Oracle
Cloud Infrastructure Command Line Interface (CLI) tools pre-installed and authenticated for your user,
as well as other useful tools, utilities, and language runtimes. Oracle Cloud Shell comes with 5GB of
persistent storage for your home directory, so any modifications you make to your home directory while
using Cloud Shell will be saved between sessions.

For online help with the OCI CLI, type `oci --help`. For more detailed help, see
https://docs.cloud.oracle.com/iaas/tools/oci-cli/latest/oci_cli_docs/ for a detailed command reference.

For Windows users, use Ctrl-C or Ctrl-Insert to copy, and Shift-Insert to paste. For Mac OS users, use
Cmd-C to copy and Cmd-V to paste.

Your use of Oracle Cloud Infrastructure Cloud Shell is limited to a set number of hours per month. If
you hit the hourly limit for your tenancy, you will receive a notification in Cloud Shell. You can
view your tenancy limit and current usage on the Oracle Cloud Limits page, where you can request an
increase in you monthly Cloud Shell hours limit.

For more information about Cloud Shell, refer to the documentation:
https://docs.cloud.oracle.com//iaas/Content/API/Concepts/cloudshellintro.htm

To provide feedback about Cloud Shell, please open a new issue in the OCI-CLI GitHub project: https://github.com/oracle/oci-cli/issues

taewan_kim@cloudshell:~ (us-ashburn-1)$ 

8. 외부 공개 IP 서버 접근

OCI CLI에서 공개 IP를 갖는 서버에 ssh 접근을 할 수 있습니다.

9. 리전 변경에도 스토리지 유지

OCI 콘솔에서 리전 변경하더라도, Clodu Shell의 스토리지는 유지됩니다.

10. tmux 지원

tmux(terminal multiplexer)가 설치되어 있습니다. tmux를 사용하면 20분 세션 비활성이 적용되지 않습니다.

Cloud Shell 데모

다음과 같은 작업을 Cloud Shell을 사용할 수 있습니다.

이 부분은 다음에 링크된 Blog에서 발취했습니다. ([Oracle Blog]Announcing Oracle Cloud Shell

)

  1. OCI Console에서 Container Cluster 이동 (Developer Services > Container Clusters).
  2. 클러스터 선택, Access Kuberconfig 선택
  3. oci ce cluster 명령 복사
  4. cloud shell 오픈
  5. Cloud Shell 명령 붙여넣기
  6. kubectl로 클러스터 접근 확인
    • $ kubectl get nodes

위 작업 데모는 다음 이미제에서 확인할 수 있습니다.

요약

  1. Cloud Shell을 사용하면 브라우저 기반의 터미널을 사용할 수 있습니다.
  2. OCI CLI 및 Terraform 등이 설치되어 있고 즉시 사용할 수 있습니다.
  3. 인터넷에 접근 할 수 있습니다. 공개 IP를 가진 인스턴스에 ssh 연결 수 있습니다.
    • 물론 비밀키를 갖고 있다는 전제가 있죠.
  4. 사용자당 5GB의 저장소를 사용할 수 있습니다.
  5. Cloud Shell은 VM이며 홈 지역에서 시작됩니다.
  6. 인스턴스는 root 권한 없이 획득할 수 없습니다.
  7. 20분 이상 사용하지 않으면 세션은 종료됩니다.
  8. tmux를 사용하면 이 제한을 극복할 수 있습니다.
  9. 복사 및 붙여넣기가 기능이지만, 이것은 브라우저의 영향을 받습니다.
    • 지원 브라우져: Chrome, FireFox

참고자료

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