目次
はじめに
こんにちは、エーピーコミュニケーションズの松尾です。
今回はOCI CLIを使ってローカルのファイルをOCIへ転送してみます。大量のファイル、フォルダをOCIへ移行したい場合などに使えるかと思います。
ちょっとした落とし穴もありましたので合わせて紹介していきます!
OCI CLIのインストール
クライアント(今回はWindows)に合わせてGit Hubからインストーラをダウンロード。
Windowsの場合は.msi形式のものを選択。
公式ドキュメントはこちら
インストーラを実行していきます。管理者でなくてもインストールできました。
選択肢は特に無くそのままNextでインストール完了まで進めていきます。
PowerShellを起動してインストールが成功していることを確認します。
PS C:\Users\<ユーザ名>> oci -v 3.51.7 PS C:\Users\<ユーザ名>>
OCI CLIへ認証情報を設定
設定方法には「手動構成」と「構成の自動化」がありますが、直感的に分かりやすい対話的に設定する「構成の自動化」をおすすめします。
ここでは接続先OCIアカウントとOCIユーザ、リージョンを設定していきます。
PS C:\Users\<ユーザ名>>cd .oci
ユーザのOCIDとテナントOCID、リージョンを指定していきます。
認証のための秘密鍵、公開鍵は例では既存のものを使ったため作成していませんが、新規の場合はYで作成していくのが良いです。
PS C:\Users\<ユーザ名>\.oci> oci setup config This command provides a walkthrough of creating a valid CLI config file. The following links explain where to find the information required by this script: User API Signing Key, OCID and Tenancy OCID: https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#Other Region: https://docs.cloud.oracle.com/Content/General/Concepts/regions.htm General config documentation: https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm Enter a location for your config [C:\Users\<ユーザ名>\.oci\config]: Enter a user OCID: ocid1.user.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Enter a tenancy OCID: ocid1.tenancy.oc1..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb Enter a region by index or name(e.g. 1: af-johannesburg-1, 2: ap-chiyoda-1, 3: ap-chuncheon-1, 4: ap-chuncheon-2, 5: ap-dcc-canberra-1, 6: ap-dcc-gazipur-1, 7: ap-hyderabad-1, 8: ap-ibaraki-1, 9: ap-melbourne-1, 10: ap-mumbai-1, 11: ap-osaka-1, 12: ap-seoul-1, 13: ap-seoul-2, 14: ap-singapore-1, 15: ap-singapore-2, 16: ap-suwon-1, 17: ap-sydney-1, 18: ap-tokyo-1, 19: ca-montreal-1, 20: ca-toronto-1, 21: eu-amsterdam-1, 22: eu-crissier-1, 23: eu-dcc-dublin-1, 24: eu-dcc-dublin-2, 25: eu-dcc-milan-1, 26: eu-dcc-milan-2, 27: eu-dcc-rating-1, 28: eu-dcc-rating-2, 29: eu-dcc-zurich-1, 30: eu-frankfurt-1, 31: eu-frankfurt-2, 32: eu-jovanovac-1, 33: eu-madrid-1, 34: eu-madrid-2, 35: eu-marseille-1, 36: eu-milan-1, 37: eu-paris-1, 38: eu-stockholm-1, 39: eu-zurich-1, 40: il-jerusalem-1, 41: me-abudhabi-1, 42: me-abudhabi-2, 43: me-abudhabi-3, 44: me-abudhabi-4, 45: me-alain-1, 46: me-dcc-doha-1, 47: me-dcc-muscat-1, 48: me-dubai-1, 49: me-jeddah-1, 50: me-riyadh-1, 51: mx-monterrey-1, 52: mx-queretaro-1, 53: sa-bogota-1, 54: sa-santiago-1, 55: sa-saopaulo-1, 56: sa-valparaiso-1, 57: sa-vinhedo-1, 58: uk-cardiff-1, 59: uk-gov-cardiff-1, 60: uk-gov-london-1, 61: uk-london-1, 62: us-ashburn-1, 63: us-chicago-1, 64: us-gov-ashburn-1, 65: us-gov-chicago-1, 66: us-gov-phoenix-1, 67: us-langley-1, 68: us-luke-1, 69: us-phoenix-1, 70: us-saltlake-2, 71: us-sanjose-1, 72: us-somerset-1, 73: us-thames-1): 18 Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: n Enter the location of your API Signing private key file: oci_api_key.pem Fingerprint: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz Config written to C:\Users\<ユーザ名>\.oci\config If you haven't already uploaded your API Signing public key through the console, follow the instructions on the page linked below in the section 'How to upload the public key': https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2 PS C:\Users\<ユーザ名>\.oci>
設定ファイル(config)が作成されていることを確認。秘密鍵、公開鍵もデフォルトではこのフォルダに作成されています。
PS C:\Users\<ユーザ名>\.oci> ls ディレクトリ: C:\Users\<ユーザ名>\.oci Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2025/02/19 16:17 319 config -a---- 2025/02/19 13:50 1715 oci_api_key.pem -a---- 2025/02/19 13:49 451 oci_api_key_public.pem PS C:\Users\<ユーザ名>\.oci>
設定ファイルの中身を見てみます。設定したパラメータが反映されていることが分かります。
PS C:\Users\<ユーザ名>\.oci> cat config [DEFAULT] user=ocid1.user.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa fingerprint=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz key_file=C:\Users\<ユーザ名>\.oci\oci_api_key.pem tenancy=ocid1.tenancy.oc1..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb region=ap-tokyo-1 PS C:\Users\<ユーザ名>\.oci>
公式ドキュメントはこちら
OCI Consoleへ認証情報を設定
OCI Consoleのユーザ詳細画面からAPIキーを作成します。
ここへOCI CLIで作成した公開鍵(oci_api_key_public.pem)の内容を貼り付けます。
接続確認
準備が整ったのでOCI CLIで接続できることを確認していきます。
PS C:\Users\<ユーザ名>\.oci> oci os ns get { "data": "XXXXXXXXXXXXXX" } PS C:\Users\<ユーザ名>\.oci>
ここで一点注意!
OCI ConsoleへAPIキーを作成後、反映まで5~10分程度必要です。反映前に接続確認すると401認証エラーとなってしまいます。この切り分けに1時間ほど使うことがないようにしましょう。
ファイル転送
試しに1ファイルをアップロードしてみます。
PS C:\Users\<ユーザ名>\.oci> oci os object put --bucket-name test-backet --file C:\Users\<ユーザ名>\Desktop\test.txt { "etag": "4635985a-7f16-469e-b4b6-zzzzzzzzzzzz", "last-modified": "Wed, 19 Feb 2025 07:43:12 GMT", "opc-content-md5": "1B2M2aaaaaaaaaaaa7PhCfg==" } PS C:\Users\<ユーザ名>\.oci>
無事に転送できました!
まとめ
OCI CLIのインストールから実際に使うところまでを紹介しました。
APIキーの反映まで少し時間がかかることにはまってしまいましたが、CLI自体はヘルプも分かりやすく、触りながら覚えていくことがしやすいものでした。
OCI ConsoleのCloudShellでも良いですが、ローカル端末とOCI Console間で操作を行いたい場合には良い選択肢になると思います!
おわりに
私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。
また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。