👻
GCP Compute EngineからSCPでファイル転送する方法 (SDK)
はじめに
Compute Engineからファイルを引っ張ってくる方法はいくつかあります。
- SSH on browserで接続して転送
-> 数ファイルならこれでOKだが、ディレクトリごとダウンロードができず不便 - google-cloud-sdkを使用して、SCPでファイル転送
- SSHのSCPで頑張る
-> セキュリティルールでポート開ける or 踏み台経由でアクセスするなど一手間必要でめんどくさい
ということで、最も簡便にできる2.SDKを使用する方法でやってみます。
ドキュメントにあるじゃねーかという感じですが、地味に情報が足らなくて調べたりしたので記述しています。
これくらいの情報ですらGCPは本当に記事が少ないのですね...
結論
以下のように記述してあげることで、任意のインスタンスからファイルを転送してくることが可能です。
逆もまた然りで、ローカルからリモートへはリモートファイルとローカルファイルを反対に指定すれば良いです。
gcloud compute scp --project "PROJECT_NAME" --zone "ZONE_NAME"
INSTANCE_USER@INSTANCE_NAME:REMOTE_FILE_PATH LOCAL_FILE_PATH
また、ディレクトリの転送には -r ではなく、--resurse という指定が必要です。
gcloud compute scp --recurse --project "PROJECT_NAME" --zone "ZONE_NAME"
INSTANCE_USER@INSTANCE_NAME:REMOTE_DIR_PATH LOCAL_DIR_PATH
Discussion