👻

GCP Compute EngineからSCPでファイル転送する方法 (SDK)

2023/09/23に公開

はじめに

Compute Engineからファイルを引っ張ってくる方法はいくつかあります。

  1. SSH on browserで接続して転送 
    -> 数ファイルならこれでOKだが、ディレクトリごとダウンロードができず不便
  2. google-cloud-sdkを使用して、SCPでファイル転送
  3. SSHのSCPで頑張る
    -> セキュリティルールでポート開ける or 踏み台経由でアクセスするなど一手間必要でめんどくさい

公式docより

ということで、最も簡便にできる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