5
0

AWS CLIを使ったAmazon S3とONTAP S3の操作

Last updated at Posted at 2023-10-03

本記事の要約

  • AWS CLIを使う際にプロファイルを使い分けることでAmazon S3およびONTAP S3の操作が可能

  • Amazon S3の操作時は、AWS IAM Roles Anywhereで取得したクレデンシャル情報を利用

  • ONATP S3の操作時は、NetApp ONTAPから払い出したクレデンシャル情報を利用

そもそもONTAP S3とは

  • ONTAP S3とはONTAP 9.8から正式リリースされたオブジェクトストレージ機能です。(ONTAP 9.7の段階でTech Previewとして利用可能)

  • ONTAP S3で払い出したS3 Bucketに対しS3クライアントアプリケーションによるオブジェクトの格納などの操作が可能です。また、ONTAPが提供するデータ階層化機能“FabricPool”のCold Data階層化先として利用することも可能です。
    https://docs.netapp.com/ja-jp/ontap/object-storage-management/index.html

  • S3クライアントアプリケーションに対応しているということなので、今回はAWS CLIを使って操作してみます。

やってみた

image.png

  • IAM Roles Anywhereが設定済みの環境を利用します。
    IAM Roles Anywhereの設定方法については、以下ブログをご参照ください。
    https://qiita.com/Yoshinori_Tsukioka/items/22b9f704f4bcd31621cf

  • AWS CLIをインストールし、Amazon S3とONTAP S3の操作が可能であることを確認します。
    この際にAmazon S3操作時はIAM Roles Anywhereで取得したクレデンシャル情報を使い、
    ONTAP S3操作時はONTAPから払い出したクレデンシャル情報を利用しますので、
    AWS CLIのConfig設定を少し工夫します。

AWS CLIのインストール

$ aws --version
  aws-cli/2.13.11 Python/3.11.4 Linux/4.18.0-348.7.1.el8_5.x86_64 exe/x86_64.centos.8 prompt/off
~/.aws/configを設定

[default]
 credential_process = ./aws_signing_helper credential-process
   --certificate ./cert.pem
   --private-key ./private-key.pem
  --trust-anchor-arn “トラストアンカーのARN”
   --profile-arn “信頼プロファイルのARN”
   --role-arn “IAM RoleのARN”

Amazon S3の操作

  • Amazon S3のバケット内に格納したデータを確認します。
$ aws s3 ls testbucket001 --recursive
2023-07-10 16:37:48          0 test/
2023-07-10 17:18:25 1073741824 test/test.file
2023-07-10 17:24:15 1073741824 test/test_2.file

 正常に動作したようです。

  • 続いて、Amazon S3からローカルにデータをダウンロードしておきます。
$ aws s3 cp s3://testbucket001/ /opt/jupyter/test --recursive
download: s3://testbucket001/test/test_2.file to ../test/test/test_2.file
download: s3://testbucket001/test/test.file to ../test/test/test.file
  • ダウンロードしたデータを確認します。
$ ls
test.file test_2.file

以上でIAM Roles Anywhere経由で取得したクレデンシャル情報をもとにAmazon S3の操作が可能であることが確認できました。

ONTAP S3の操作

  • ONTAP S3を操作するためのクレデンシャル情報を~/.aws/configに設定します。
~/.aws/configを設定

[services ontaps3]
s3 = 
 endpoint_url = https://10.128.223.171/ #ONTAP S3のURL


[profile netapp]
aws_access_key_id = “ONTAP S3接続ユーザーのアクセスキー”
aws_secret_access_key = “ONTAP S3接続ユーザーのシークレットキー”
services = ontaps3

servicesセクションでs3コマンドを実行時のエンドポイントを指定しています。
今回はONTAP S3のURLを指定し、更にプロファイル“netapp”で実行した際に、servicesセクションで宣言されたエンドポイントを使うといった具合です。

servicesセクションの定義については、公式マニュアルをご参照ください。
https://docs.aws.amazon.com/sdkref/latest/guide/feature-ss-endpoints.html

  • ONATP S3内のバケットを検索してみます。
$ aws s3 ls --profile netapp
2023-08-29 12:55:31 test

 テスト用に準備していたバケットが確認できました。
 これで、aws s3コマンド実行時の--profileオプションでAmazon S3を使うか、
 ONTAP S3を使うかの使い分けができる環境が整いました。

--profileオプション追加することで、~/.aws/config内の[profile netapp]を参照してコマンドが実行されます。
つまり、今回の場合は以下の使い分けが可能になります。

--profileオプションの指定なし:Amazon S3への接続
--profile netappの指定:ONATP S3への接続

  • 最後に先ほどAmazon S3からローカルにダウンロードしたデータをONATP S3にアップロードしてみます。
aws s3 cp --profile netapp /opt/jupyter/test/test/ s3://test --recursive
upload: ../test/test/test.file to s3://test/test.file              
upload: ../test/test/test_2.file to s3://test/test_2.file       
 
$ aws s3 ls --profile netapp test/
2023-09-01 15:49:51 1073741824 test.file
2023-09-01 15:49:59 1073741824 test_2.file

 無事に完了しました。

まとめ

今回は、AWS CLIを使ったAmazon S3とONTAP S3の操作を検証してみました。
プロファイルを使い分けることで、AWS CLIを使ったAmazon S3とONTAP S3間のデータ受け渡しが可能であるという内容をお届けできたかと思います。

この記事が少しでも参考になれば、幸いです。

主な参照元

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0