AWS CLIでGoogle Cloud Storage(GCS)につなぐ方法
ycsg113XYZ 夜のコンパイル
お客様先のS3に10GBのファイルが100個も置いてあり、それを我々のS3にコピーする依頼がありました。我々の環境は、こんな感じ。
図にしてみました。
とりあえずLinux上から、バケットA、バケットBへそれぞれAWS configure へのprofileを作成しておく
aws configure --profile profileA
aws configure --profile profileB
いつもならファイルサイズ大きくないので、バケットAからいったんLinuxローカルにコピー、次にLinuxローカルからバケットBにコピーって別々にやっておりました。
今回の場合、ファイルは10GBあり、Linuxのローカルにいったん置くことが出来ません。
いろいろ記事を読んでみると、出来るのは出来るのですが、AWSのAMIを変更とか追加するとかしてaws syncせよって記事ばかり。
違うねん。
そういう変更するためにはAWSインフラ担当チーム様へお願いしなければならず、私ら下っ端の人間にはそういう権限ないねん。
もっとなんか
aws s3 cp s3://バケットA/ファイル.gz s3://バケットB/
みたいに気軽にコピーしたいねん。でもできないねん。引数でprofileは1つしか指定できないねん。
そんなこんなで試行錯誤の末、標準入出力とパイプを使用し、以下のようにして出来ました!
aws s3 cp s3://バケットA/対象ファイル -
--profile==プロファイルA
| aws s3 cp - バケットB
--profile==プロファイルB
aws s3 cp s3://bucketA/targetfile.gz - --profile==profileA | aws s3 cp - s3://bucketB/ --profile==profileB
出来て良かったです。
この方法には注意点がございますので、それは別途課題ですね。
良かった~