OCI Cloud Shellの概要

Developer

初めに

2020年2月、OCI Cloud Shellがリリースされました。同年の12月、AWSもほぼ同機能の"CloudShell"(スペースなし)をリリースしました。今回は、OCI Cloud Shellの概要を紹介します。

OCI Cloud Shell

1. クイック・スタート

OCI Cloud Shellとは
Oracle CloudコンソールからアクセスできるWebブラウザベースの端末です。
Bashシェルを実行する軽量なVMで、OCI CLIなどの各便利なツールは、実装済です。
ホーム・ディレクトリに5GBのストレージを提供します。(一方AWSのほうは、1GBのみ)
Cloud Shell自体は、無償です。

OCI Cloud Shellの利用場面

  • OCI-CLIをインストールおよび設定せずにすぐに使用したいとき。
  • 踏み台サーバーを経由せず、OCIの各インスタンスにアクセスしたいとき(SSH/SQL*Plus)。(Remote DesktopのようなGUI接続を対応しない)
  • TerraformやPythonなどをインストールせずにすぐに使用したいとき。

他社の類似サービス

OracleAWSAzureGoogle Cloud
OCI Cloud ShellAWS CloudShellAzure Cloud ShellCloud Shell
OCIとAWSの該当サービスの差異について、以下の記事をご参考ください。
「OCI Cloud Shell」と「AWS CloudShell」の比較

IAM ポリシー
管理者ユーザー以外の場合、Cloud Shellを利用するためには、次のポリシーを作成してください。
allow group <GROUP-NAME> to use cloud-shell in tenancy

このポリシーにより、グループ単位での利用制限を実現できます。

OCI Cloud Shellの起動
OCIコンソールのタイトルバー → 端末アイコン → Cloud Shell
Startup Cloud Shell

約2分間、画面の下部にCloud Shellが表示されます。2回目より、起動時間がかかりません。
Cloud Shell is started

さっそく触ってみましょう
最初は、helpコマンドを叩きます。(コピーペーストもできますので、便利です。)
Type help

ホーム・ディレクトリ(/home/<username>)の容量を確認したら、確かに5GBです。

letian@cloudshell:~ (ap-tokyo-1)$ df -h
Filesystem                Size  Used Avail Use% Mounted on
overlay                    70G   31G   37G  46% /
tmpfs                      64M     0   64M   0% /dev
/dev/mapper/vg00-usr_tmp  4.9G   24K  4.6G   1% /tmp
/dev/mapper/vg00-root      70G   31G   37G  46% /etc/hosts
shm                        63M     0   63M   0% /dev/shm
/dev/sdb1                 5.0G   33M  5.0G   1% /home/letian
/dev/mapper/vg00-var_log  7.7G   70M  7.2G   1% /etc/extensions/logs
letian@cloudshell:~ (ap-tokyo-1)$

2. OCIの他サービズの利用

2-1. オブジェクト・ストレージの利用

インストール済のOCI-CLIを利用し、オブジェクト・ストレージとの間、ファイル転送ができます。
(ローカルから「Cloud Shell」にログインできないので、ローカルから「Cloud Shell」へファイル転送をしたいなら、オブジェクトストレージを経由すればOKです。)

letian@cloudshell:~ (ap-tokyo-1)$ oci os object get -bn Bucket1 --name test.txt --file test.txt
Downloading object  [####################################]  100%
letian@cloudshell:~ (ap-tokyo-1)$ ls -l test.txt
-rw-r--r--. 1 letian oci 7 Nov 30 05:35 test.txt
letian@cloudshell:~ (ap-tokyo-1)$

2-2. Oracle Base Databaseへの接続

SQL PLUSでクラウド上のOracle Base DBへ接続してみたら、OKです。
コマンド:sqlplus <ユーザ>/<パスワード>@<ホスト名かアドレス>:<ポート>/<サービス名>
Connect to Oracle Base DB

Cloud Shellから、Oracle Base DBサービスやComputeインスタンス上にインストールされたOracle DBの両方に接続できます。

2-3. Autonomous AI Databaseへの接続

Cloud Shellから、Autonomous AI DB(Public/Private両方)への接続も可能です。

SQL Plusを利用する場合
次の記事をご参考ください。
OCI Cloud Shell上のSQL PlusからADBに接続する
Connect to Autonmous AI Database
SQLclを利用する場合
WalletファイルをCloud Shellにアップロードしてから、次のコマンドを実行します。
コマンド:sql -cloudconfig Wallet_adw.zip <username>/<password>@<tns_name>

  • SQLclはCloud Shellにプリインストールされています。
  • Walletファイルの解凍は不要です(SQL*Plusの場合は解凍必要)。
  • TNS名はWalletファイル内の「tnsnames.ora」でも確認可能で、DBname_highDBname_mediumDBname_lowのいずれかの形式です。

2-4. MySQL DBCSへの接続

Cloud Shellから、「OCI Bastion Service」を利用すれば、MySQL DBCS(Database Cloud Service)への接続も可能です。上記のPrivate ADBの接続例によく似ています。詳細は、以下の記事をご参考ください。この記事の実施端末はVMでしたが、コマンドライン・ツールの接続方法(MySQL Shell, MySQL Client)は「Cloud Shell」にも適用します。
OCI Bastion経由でMySQL Database Serviceに接続する

3. インストール済のソフト

NameVersion Info
ansibleansible --version
Fn CLIfn -v
gitgit --version
gradlegradle -v
Gogo version
helmhelm version
Javajava -version
kubectlkubectl version
mavenmvn -v
MySQL Clientmysql -V
MySQL Shellmysqlsh -V
Node.jsnode --version
OCI CLIoci -v
pippip -V
Pythonpython -V
Rubyruby -v
SQL Plussqlplus -v
SQLclsql -V
Terraformterraform -v
TypeScripttsc -v
vimvim --version
wgetwget -V

4. 制限事項

  • ホーム・ディレクトリの容量は、5GBです。ストレージのマウントをサポートしません。
  • OCI CLIを利用する際、コンソールで指定したリージョンと同じリージョンが適用されます。ただし、コンソールからリージョンを変更しても、OCI CLIには自動的に反映されません。その場合は、Cloud Shellを再起動してください。(要注意
  • sudo, crontabの利用ができません。
  • セッション保留時間は、最大24時間で、セッションタイムアウトは20分です。

FAQ(よくある質問)

質問-1: Cloud ShellにSSHログインすることは可能ですか?
回答:通常のインスタンスではないため、Cloud ShellにSSHログインすることはできません。

質問-2: 自分のユーザーはCloud Shellを利用する権限がありません。利用するためにはどのIAMポリシーが必要ですか?
回答:次のIAMポリシーを作成し、対象ユーザーをグループに追加する必要があります。
allow group <GROUP-NAME> to use cloud-shell in tenancy

質問-3: Cloud Shell から特定のリソースにアクセスするには、Cloud ShellのパブリックIPアドレスを許可する必要があります。このパブリックIPアドレスを確認する方法を教えてください。
回答:curlコマンドを使用して確認できます。例: curl ipinfo.io

追記

ファイル転送機能

追記日: 2021/3/26

2021/3/23、OCI Cloud Shellのファイル転送機能がリリースされました。
ロカールとCloud Shellの間に、簡単にファイルの転送ができるようになりました。(最大4GB、ディレクトリの転送を対応しません。)
Cloud Shellへのアップロード
1) ファイルをCloud Shellの画面に"Drag & Drop"だけで、OKです。(複数ファイルの同時アップロードは可能です。)
2) メニュー(左上)からアップロードをクリックする。 (個別ファイルのみ)
Click upload
File upload to your home directory

Cloud Shellからのダウンロード
メニュー(左上)からダウンロードをクリックする
Click download
ホームディレクトリに対する相対パスとファイル名を入力し、ダウンロードを開始する。
Download file

プライベート・アクセス

追記日: 2022/12/24

2022年8月、Cloud Shellのプライベート・アクセスという新機能がリリースされました。Cloud Shellから、パブリック・ネットワークを経由せずにプライベート・ネットワークのリソースにアクセスできるになりました。
Private access to your OCI instances
詳細については、次の記事をご参照ください。
OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する

以上

参考資料

OCI ドキュメント
OCI Cloud ShellのGAアナウンス:英語
OCI Cloud Shellのオフィシャルドキュメント:日本語 英語

MOS (My Oracle Support)
OCI Cloud Shell Frequently Asked Questions - OCI Cloud Shell (Doc ID 2736099.1)
OCI Cloud Shell - How to Allow Access to Cloud Shell to Specific Groups in Tenancy (Doc ID 2946835.1)

OCI Blog
Oracle Cloud Shell Commands for Newbies

タイトルとURLをコピーしました