本ブログは、オラクル・クラウドの個人ブログの1つです。
初めに
2020年2月、OCI Cloud Shellがリリースされました。同年の12月、AWSもほぼ同機能の"CloudShell"をリリースしました。今回は、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などをインストールせずにすぐに使用したいとき。
他社の類似サービス
Oracle | AWS | Azure | Google Cloud |
---|---|---|---|
OCI Cloud Shell | AWS CloudShell | Azure Cloud Shell | Cloud Shell |
OCIとAWSの該当サービスの差異について、以下の記事をご参考ください。
「OCI Cloud Shell」と「AWS CloudShell」の比較
IAM ポリシー
管理者ユーザー以外の場合、Cloud Shellを利用するためには、次のポリシーを作成してください。
allow group <GROUP-NAME> to use cloud-shell in tenancy
このポリシーにより、グループ単位での利用制限を実現できます。
OCI Cloud Shellの起動
コンソールの右上、黄色いマークのところをクリックした後、約2分間、画面の下部にCloud Shellが表示されます。2回目より、起動時間がかかりません。
さっそく触ってみましょう
最初は、helpコマンドを叩きます。(コピーペーストもできますので、便利です。)
ホーム・ディレクトリの容量を確認したら、確かに5GBです。
2. OCIの他サービズの利用
2-1. オブジェクト・ストレージの利用
インストール済のOCI-CLIを利用し、オブジェクト・ストレージとの間、ファイル転送ができます。
(ローカルから「Cloud Shell」にログインできないので、ローカルから「Cloud Shell」へファイル転送をしたいなら、オブジェクトストレージを経由すればOKです。)
2-2. Oracle DBへの接続
SQL PLUSでクラウド上のOracle DBへ接続してみたら、OKです。
コマンド:sqlplus <ユーザ>/<パスワード>@<ホスト名かアドレス>:<ポート>/<サービス名>
2-3. Autonomous DBへの接続
Cloud Shellから、Autonomous DB(Public/Private両方)への接続も可能です。
- SQL Plusを利用する場合は、次の記事をご参考ください。
OCI Cloud Shell上のSQL PlusからADBに接続する
- SQLclを利用する場合:
WalletファイルをCloud Shellにアップロードしてから、次のコマンドを実行します。
コマンド:sql -cloudconfig Wallet_adw.zip <username>/<password>@<service_name>
※、SQLclはすでにCloud Shellにインストールされています。
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. インストール済のソフト
Name | Version Info |
---|---|
OCI CLI | oci -v |
git | git --version |
Python | python -V |
pip | pip -V |
SQL Plus | sqlplus -v |
SQLcl | sql -V |
MySQL Client | mysql -V |
MySQL Shell | mysqlsh -V |
kubectl | kubectl version |
helm | helm version |
maven | mvn -v |
gradle | gradle -v |
Terraform | terraform -v |
ansible | ansible --version |
Java | java -version |
Go | go version |
TypeScript | tsc -v |
Node.js | node --version |
Ruby | ruby -v |
wget | wget -V |
vim | vim --version |
4. 制限事項
- ホーム・ディレクトリの容量は、5GBです。ストレージのマウントをサポートしません。
- OCI CLIを利用する際、コンソールで指定したリージョンと同じリージョンが適用されます。ただし、コンソールからリージョンを変更しても、OCI CLIには自動的に反映されません。その場合は、Cloud Shellを再起動してください。(要注意)
- sudo, crontabの利用ができません。
- セッション保留時間は、最大24時間で、セッションタイムアウトは20分です。
追記
ファイル転送機能
追記日: 2021/3/26
2021/3/23、OCI Cloud Shellのファイル転送機能がリリースされました。
ロカールとCloud Shellの間に、簡単にファイルの転送ができるようになりました。(最大4GB、ディレクトリの転送を対応しません。)
Cloud Shellへのアップロード:
- ファイルをCloud Shellの画面に"Drag & Drop"だけで、OKです。(複数ファイルの同時アップロードは可能です。)
- メニュー(左上)からアップロードをクリックする。 (個別ファイルのみ)
Cloud Shellからのダウンロード
メニュー(左上)からダウンロードをクリックする
ホームディレクトリに対する相対パスとファイル名を入力し、ダウンロードを開始する。
プライベート・アクセス
追記日: 2022/12/24
2022年8月、Cloud Shellのプライベート・アクセスという新機能がリリースされました。Cloud Shellから、パブリック・ネットワークを経由せずにプライベート・ネットワークのリソースにアクセスできるになりました。
詳細については、次の記事をご参照ください。
OCI Cloud Shell からプライベート・サブネット内のインスタンスに接続する
FAQ(よくある質問)
質問-1: Cloud ShellにSSHログインすることは可能ですか?
回答:通常のインスタンスではないため、Cloud ShellにSSHログインすることはできません。
質問-2: あるユーザーに対して、Cloud Shellの利用を制限することは可能ですか?
回答:可能です。管理者以外のユーザーがCloud Shellを利用するには、次のIAMポリシーを作成する必要があります。このポリシーがない限り、当該ユーザーはCloud Shellを利用できません。
allow group <GROUP-NAME> to use cloud-shell in tenancy
以上です。
関連記事
オラクル・クラウドの個人ブログ一覧
「OCI Cloud Shell」と「AWS CloudShell」の比較
OCI Cloud Shell上のSQL PlusからADBに接続する
OCI Cloud Shellにrcloneをインストールする
参考資料
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)