はじめに
皆さんこんにちは、XIMIXの重山です。
本記事は、NI+C TeamGCP Advent Calendar 2024の10日目の記事となります。
先日 Cloud StorageからAmazon S3へファイル転送したいという要望をいただいた際に、調べた内容をブログとして、記載したいと思います。
やりたいこと
Cloud StorageからAmazon S3へのファイル転送
PCローカルにダウンロードしてS3に上げて実現することも可能ですが、、、
セキュリティ面やファイル転送速度の観点で不安なため、クラウド間での転送を実施したいところ。
そこで、次のステップを実施し、クラウド間のファイル転送を行いたいと思います。
前提
- ファイル転送は、スポットとし、定期的な処理はしない。
- Google Cloud / AWSの特段のセキュリティサービス設定は行っていないこととする。
実施ステップ
- AWS IAM作成(Google Cloudの実行ユーザと同一)・S3権限付与
※事項手順では割愛 - AWSアクセスキー取得
- Cloud ShellでAWSアクセスキー設定
- Cloud StorageからS3へ転送コマンド実行
AWSアクセスキー取得
IAM>ユーザ(①で作成したユーザ)>セキュリティ認証情報から アクセスキーを取得する。
Cloud ShellでAWSアクセスキー設定
Cloud Shellを起動し、認証情報を設定する。
先述で取得したアクセスキーをCloud Shell Boto 構成ファイルに保管する。
※参考:Boto 構成ファイル | Cloud Storage
■実行コマンド
vi. boto
//Botoファイルが開くので、"i"で編集
//以下の通り、認証情報を保存
[Credentials]
aws_access_key_id = $MYACCESSKEY
aws_secret_access_key = $MYSECRETKEY
//Esc
//:wq!で保存
認証情報が正しく設定されているか確認
lsコマンドを実行し、S3のバケット情報を参照する。
■実行コマンド
gcloud storage ls s3://転送先パス
初回実行時は、Cloud Shellの承認画面が出るので、承認を行う。
S3が参照できたため、認証が出来ている。
(S3側オブジェクト情報)
Cloud StorageからS3へ転送コマンド実行
ここまで出来たら、通常の転送コマンドと同様に、ファイルコピーコマンドを実行する。
■実行コマンド
gcloud storage cp gs://転送元パス s3://転送先パス
以下のログ結果から、正常に終了したことが分かる。
念の為、S3側も確認してみたところ、コピーを実行したファイルがあることが確認できた。
(S3側オブジェクト情報)
感想
最後まで読んでいただきありがとうございます。
実施したい内容としては、至ってシンプルでしたが、当初は、Boto 構成ファイルの設定部分がドキュメントを読んでも分からず、少し苦労しました。また、AWS側の権限不足でエラーも出たりもしました。
今回実施したした際に、どちら側が原因で上手くいっていないのかを、出力されるログを元に、調べることが重要だということを再認識させられました。
ご参考になれば、幸いです。
- カテゴリ:
- Cloud Storage