AWS CLIでGoogle Cloud Storage(GCS)につなぐ方法
はじめに
この記事はAWS CLIにてGCEのLinuxからGoogle cloud Storageへのファイル入出力をする方法を説明します。
gsutil使えば良いのでは?
そうなんです。通常GCEのLinuxであればgsutilコマンド使えば良いのです。Google cloud Storage(いわゆるGCS)へコマンド接続する場合、通常であればgsutilを使うことでしょう。
しかしgsutilコマンドが不調な時(まぁそんな時はあまりないですが)、別の手段があるのも良いかと思います。
また、やりとりするStorageがGCSであろうとS3であろうとプログラムコードを統一する場合に役立ちます。
ここではAWS CLIにてGCEのLinuxからGoogle cloud Storageへのファイル入出力をする方法を説明します。
AWS CLI導入~設定
段取りを大きく言いますと
- AWS CLIインストール
- GCE総合運用性設定
- プロファイル作成
- プロファイル使ってAWS CLIコマンド発行
となります。
AWS CLIインストール
↓GCE Linux上にpython3が入っていない場合、まずはpython3とpipコマンドを導入します。既に導入済みの場合、スキップしてください。
yum install python3
yum install python3-pip
#または
sudo yum install python3
sudo yum install python3-pip
↓pip3コマンドでAWS CLIをインストール
pip3 install awscli
#または
sudo pip3 install awscli
GCS総合運用性設定
↓GCP管理コンソールから「連携したいCloud Storageのページ」を開き、設定ページから「相互運用性」タブをクリックします。
↓そこから一番下へ行き、「鍵を作成」をクリック
↓作成した(1)アクセスキーと(2)シークレットキーをメモしておきます。(次のプロファイル作成工程で使用します)
プロファイル作成
通常のS3の時と同様、aws configureコマンドでプロファイルを作成します。
↓例えばプロファイル名を「google-cloud-storage」で作成する場合は次のようになります。
aws configure --profile google-cloud-storate
AWS Access Key ID: GCS上で発行したアクセスキー(1)
AWS Secret Access Key : GCS上で発行したシークレットアクセスキー(2)
Default region name : 空白
Default output format : 空白
プロファイルを使ってAWS CLIコマンド発行
前ステップで作成したプロファイルを使用し、awsコマンドによりGoogle Storageへのコマンドを発行することが可能です。
aws --endpoint-url gsのリクエスト エンドポイント --profile gsのアクセスキーを登録したprofile名 s3 cp gceのコピー元path s3://[GSのコピー先バケット名]/ファイル名
# 例
aws --endpoint-url https://storage.googleapis.com --profile google-cloud-storage s3 cp ./myfile.txt s3://my_gcs_bucket/myfile.txt
ここでのポイントは、--endpoint-url https://storage.googleapis.com です。これがおまじないの言葉となります。
まとめ
AWS CLIコマンドに慣れている方はこちらの方法でS3に接続しているかのようにGoogle Storageに接続できます。
是非、ご活用下さいませ。