APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【OCI】OCI Cloud Shellを使ってみた ~AWS/Azureとの比較と基本コマンド~

🔰はじめに

クラウド事業部の太田です。
本記事では、Oracle Cloud Infrastructure(以下、OCI)を使い始めた筆者がCloud Shellを使ってみた/調べてみたことについて記載します。

📖想定読者

  • これからOCIを使う方
  • IaC(Infrastructure as Code)に興味がある方
  • CUIで処理をしてみたい方

🙍‍♂️筆者について

  • 先日 Oracle Cloud Infrastructure 2024 Architect Associate を取得しました
  • 実務ではOCIを使った業務は未経験です
  • Cloud ShellはAzureで使ったことがあり、Azure CLI クックブックという、すぐ使えるコピペ集!をZennBookで書きました
  • Ansibleを業務で使用したことがあります

🤔Cloud Shellとは?

📔用語説明

Oracle Cloud Infrastructure (OCI) Cloud Shellは、Oracle CloudコンソールからアクセスできるWebブラウザベースのターミナルである。

Oracle Cloud Infrastructureドキュメント > クラウド・シェル より

🖱使い方

ログイン後に「クラウドシェル」のアイコンをクリックして「Cloud Shell」をクリックします。

Cloud Shell起動

参考サイト:Oracle Cloud Infrastructureドキュメント > クラウド・シェルの使用

💡Cloud Shell比較

Cloud Shellは、OCI以外のクラウド(AWSやAzure)でも提供されています。また、各クラウドで独自コマンドがあり、リソースの作成/削除/取得など可能です。 また、GitやAnsibleやTerraformも最初からインストールされており使用することができます。

種別 OCI AWS Azure
Cloud Shell 利用可能 利用可能 利用可能
独自コマンド oci
(リファレンスリンク)
aws
(リファレンスリンク)
az
(リファレンスリンク)
ansible 利用可能 利用可能 利用可能
terraform 利用可能 利用可能 利用可能

🖋コマンド実行

  • ociバージョン確認
    OCI CLIのバージョンを確認します。

      r_ota@cloudshell:~ (ap-tokyo-1)$ oci --version
      3.54.5
      r_ota@cloudshell:~ (ap-tokyo-1)$ 
    
  • ansibleバージョン確認
    Ansibleがインストール済みか確認します。

      r_ota@cloudshell:~ (ap-tokyo-1)$ ansible --version 
      ansible 2.9.27
        config file = /etc/ansible/ansible.cfg
        configured module search path = ['/home/r_ota/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
        ansible python module location = /usr/lib/python3.6/site-packages/ansible
        executable location = /usr/bin/ansible
        python version = 3.6.8 (default, Dec  4 2024, 01:47:03) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22.0.1)]
      r_ota@cloudshell:~ (ap-tokyo-1)$ 
    
  • terraformバージョン確認 Terraformがインストール済みか確認します。

      r_ota@cloudshell:~ (ap-tokyo-1)$ terraform --version 
      Terraform v1.5.7
      on linux_arm64
    
      Your version of Terraform is out of date! The latest version
      is 1.12.2. You can update by downloading from https://www.terraform.io/downloads.html
      r_ota@cloudshell:~ (ap-tokyo-1)$ 
    
  • TENANCY ID 確認

      r_ota@cloudshell:~ (ap-tokyo-1)$ echo $OCI_TENANCY
      ocid1.tenancy.oc1..aaaaaaaaew11111111111222222222222333333333333444444444555555
      r_ota@cloudshell:~ (ap-tokyo-1)$
    
  • compute instance list(display-nameのみ取得)

      r_ota@cloudshell:~ (ap-tokyo-1)$ oci compute instance list --compartment-id $OCI_TENANCY | jq -r '.data[] | .["display-name"]'
      test-instance01
      test-instance02
      r_ota@cloudshell:~ (ap-tokyo-1)$
    
  • compartment list(descriptionのみ取得)

      r_ota@cloudshell:~ (ap-tokyo-1)$ oci iam compartment list -c $OCI_TENANCY | jq .data[].description
      "検証用コンパートメント"
      "ブログ検証用"
      "ハンズオン用"
      r_ota@cloudshell:~ (ap-tokyo-1)$ 
    

✅まとめ

インストール不要で基本無料のCloud Shellは覚えると便利です。
AnsibleやTerraformなどのIaCツールもインストール不要で使えるのでサクッとリソースを作成したり、使い終わったら削除なんてこともコードがあれば可能です。

⚠️注意点

Terraformのバージョン確認時に「Your version of Terraform is out of date!」というエラーが表示され、アップデートが必要であることがわかりました。
自身で管理するサーバと違い、いつアップデートされバージョンが変わるか分かりません。動作が安定しないことに注意が必要です。

➡️今後の展望

実際にAnsibleやTerraformのコードを用意してCloud Shellから実行してリソースの作成/削除をやってみたいです。
また、よく使うけど複雑/煩雑な処理、例えばcompute instanceのリストをcsv出力して特定のGitにコミットする ような処理をCloud Shellで実行するコマンドにしてみたいと思いました。

最後までお読みいただきありがとうございました。

🔗参考