インスタンスへのファイルの転送

このガイドでは、Linux インスタンスまたは Windows Server インスタンスにファイルを転送する方法について説明します。次のファイル転送方式は、Linux インスタンスと Windows インスタンスのいずれに対しても使用できます。

プラットフォームに依存しない転送方式:

  • Google Cloud Storage を使用してインスタンスとの間のファイル転送を行う。Cloud Storage バケットは、ユーザーとそのインスタンスとの間の転送中継点として有用です。

Linux インスタンス:

Windows Server インスタンス:

始める前に

プラットフォームに依存しないファイル転送方式:

Cloud Storage を使用している場合は、ほとんどの Linux ワークステーション、macOS ワークステーション、Windows ワークステーションから自身の Linux インスタンスや Windows インスタンスにファイルを転送することができます。

Cloud Storage を経由したファイルの転送

インスタンスとの間のファイル転送に Cloud Storage バケットを使用することができます。このファイル転送方式は、サービス アカウントまたは個人の認証情報を使用してインスタンスから Cloud Storage バケットにアクセスできる環境にあれば、ほぼすべてのタイプのオペレーティング システムやインスタンスで使用できます。

まず自身のワークステーションから Cloud Storage バケットにファイルをアップロードします。次に、それらのファイルをバケットから自身のインスタンスへダウンロードします。

  1. Cloud Storage バケットを新規作成するか、ファイル転送に使用する既存のバケットを指定します。

  2. ワークステーションからバケットにファイルをアップロードします。

  3. SSH または RDP を介してインスタンスに接続します。

  4. インスタンス上で、バケットからファイルをダウンロードします。

逆方向にファイルを転送する必要がある場合は、上記のプロセスを逆方向に実行します。まずインスタンスからファイルをアップロードし、次にそれらのファイルをワークステーションへダウンロードします。

Linux インスタンスへのファイルの転送

ファイル転送方式には、Linux インスタンスに特化したものもあります。

gcloud コマンドライン ツールを使用したファイルの転送

gcloud ツールで、copy-files コマンドを使用してファイルをインスタンスにコピーします。次の例では、ワークステーションからインスタンスのホーム ディレクトリにファイルをコピーします。

gcloud compute copy-files [LOCAL_FILE_PATH] [INSTANCE_NAME]:~/

ここで:

  • [LOCAL_FILE_PATH] は、ワークステーション上のファイルへのパスです。
  • [INSTANCE_NAME] は、インスタンスの名前です。

ソースと転送先の変数を逆に並び替えることで、インスタンスからローカルのワークステーションにファイルをコピーすることもできます。次の例では、インスタンスからワークステーションにファイルをコピーします。

gcloud compute copy-files [INSTANCE_NAME]:[REMOTE_FILE_PATH] [LOCAL_FILE_PATH]

ここで:

  • [INSTANCE_NAME] は、インスタンスの名前です。
  • [REMOTE_FILE_PATH] は、インスタンス上のファイルへのパスです。
  • [LOCAL_FILE_PATH] は、ワークステーション上のファイルの保管場所へのパスです。

Linux ワークステーションまたは macOS ワークステーションのファイル ブラウザを使用したファイルの転送

Linux ワークステーションまたは macOS ワークステーションでは、ネイティブ ファイル ブラウザを使用してファイルをインスタンスに転送することができます。コマンドラインを使用してファイルを転送する必要がある場合は、scp コマンドを使用します。ファイル ブラウザを使用してファイルを転送する手順は次のとおりです。

  1. API Console プロジェクトに公開鍵を登録していない場合は、新しい認証鍵のペアを作成し、プロジェクトに登録します。

  2. 端末を開き、秘密鍵を指定する ~/.ssh/config ファイルのエントリを追加します。この例では、秘密鍵ファイルは ~/.ssh/my-ssh-key となっています。

    echo "IdentityFile ~/.ssh/my-ssh-key" >> ~/.ssh/config
    
  3. ファイル ブラウザを開き、インスタンスへの接続を確立します。ユーザー名と IP アドレスの組み合わせをファイル ブラウザに貼り付けます。

    ファイル ブラウザを開いて、ファイルパスに sftp://example-user@104.196.31.103 を貼る。

  4. ほとんどの場合、ユーザーにはインスタンスのホーム ディレクトリ外のファイルを管理する権限はありません。その場合は、ユーザー用のホーム ディレクトリに移動してください。ファイル ブラウザで、インスタンスの URL の末尾にホーム ディレクトリのパスを追加します。

    sftp://[USERNAME]@[IP_ADDRESS]/home/[USERNAME]
    

    ここで:

    • [USERNAME] は、そのインスタンスでのユーザー名です。
    • [IP_ADDRESS] は、インスタンスの IP アドレスです。
  5. ファイル ブラウザを使用して、インスタンスにファイルをコピーします。

  6. インスタンスにファイルをコピーしたら、インスタンスに接続します。これで、すべての sudo 権限を使用してファイルを実行、移動できます。

Linux ワークステーションまたは macOS ワークステーションの SCP を使用したファイルの転送

scp ツールは、標準 SSH を使用してインスタンスに接続するときと同じ鍵ファイルを使用します。

  1. API Console プロジェクトに公開鍵を登録していない場合は、新しい認証鍵のペアを作成し、プロジェクトに登録します。

  2. ファイルの転送先となるインスタンスの外部 IP を確認します。ブラウザで、インスタンスのリストに移動します。

    [インスタンス] ページに移動

  3. scp ツールを使用して、ワークステーションからターゲット インスタンスのホーム ディレクトリにファイルをコピーします。この例では、公開鍵は ~/.ssh/my-ssh-key にあります。

    scp -i ~/.ssh/my-ssh-key [LOCAL_FILE_PATH] [USERNAME]@[IP_ADDRESS]:~
    

    ここで:

    • [USERNAME] は、ユーザー名です。
    • [LOCAL_FILE_PATH] は、アップロードするローカル ファイルの名前です。
    • [IP_ADDRESS] は、インスタンスの IP アドレスです。

ソースと転送先の変数を逆に並び替えることで、インスタンスからローカルのワークステーションにファイルをコピーすることもできます。この例では、インスタンスからワークステーションのパスにファイルをコピーします。

scp -i ~/.ssh/my-ssh-key [USERNAME]@[IP_ADDRESS]:[REMOTE_FILE_PATH] [LOCAL_FILE_PATH]

ここで:

  • [USERNAME] は、ユーザー名です。
  • [REMOTE_FILE_PATH] は、ダウンロードするリモート ファイルの名前です。
  • [IP_ADDRESS] は、インスタンスの IP アドレスです。
  • [LOCAL_FILE_PATH] は、ワークステーションでファイルをダウンロードしたい場所です。

Windows ワークステーションの WinSCP を使用したファイルの転送

WinSCP では、PuTTY を使用してインスタンスに接続するときと同じ鍵ファイルが使用されます。WinSCP を使用することにより、Windows ワークステーションとインスタンスの間でファイルを転送することができます。

  1. API Console プロジェクトに公開鍵を登録していない場合は、新しい認証鍵のペアを作成し、プロジェクトに登録します。

  2. WinSCP をダウンロードしてインストールします。多くの場合、デフォルトのインストール設定で問題なくインストールできます。

  3. WinSCP プログラムを起動します。ログイン ウィンドウが開き、接続設定を変更できます。

  4. ファイルを転送したいインスタンスの外部 IP を確認します。ブラウザで、インスタンスのリストに移動します。

  5. WinSCP で、接続設定を変更します。

    1. [File protocol] の項目を SCP に設定します。

    2. [Host Name] の項目に、接続するインスタンスの外部 IP アドレスを入力します。

    3. [User name] の項目に、プロジェクトへのアクセスに使用する Google ユーザー名を入力します。この例では、ユーザー名は example-user となっています。

    ファイル プロトコルを SCP に、ホスト名を 104.196.31.103 に、ユーザー名を example-user に設定。

  6. [Advanced] プルダウン メニューから詳細設定を開き、[SSH] > [Authentication] に移動します。

  7. [Private key file] の項目で、公開鍵ファイルのパスを指定します。この例では、鍵ファイルは my-ssh-key.ppk となっています。

    詳細サイト設定で、公開鍵ファイルを my-ssh-key.ppk に設定。

  8. [Ok] をクリックして、詳細設定を保存します。

  9. [Login] をクリックして、インスタンスに接続します。接続に成功するとウィンドウが開き、左側にローカルのファイル システムが、右側にインスタンスのファイル システムが表示されます。これらのファイル システムで他のディレクトリに移動でき、またファイルをドラッグしてインスタンスからファイルを転送できます。

  10. ほとんどの場合、ユーザーにはインスタンスのホーム ディレクトリ外のファイルを管理する権限はありません。その場合は、ユーザー用のホーム ディレクトリに移動してください。そして、WinSCP のパスフィールドに、ホーム ディレクトリを入力してください。

    /home/[USERNAME]
    

    ここでは、[USERNAME] がこのインスタンスのユーザー名になっています。

  11. WinSCP インターフェースを使用して、ワークステーションとインスタンスの間でファイルを移動します。

  12. インスタンスにファイルをコピーしたら、インスタンスに接続します。これで、すべての sudo 権限を使用してファイルを実行、移動できます。

Windows Server インスタンスへのファイルの転送

ファイル転送方式には、Windows インスタンスに特化したものもあります。

Windows RDP クライアントを介したファイルの転送

一部の RDP クライアントを使用すると、ワークステーションのディレクトリを、接続先の Windows Server インスタンスへマウントすることが可能です。それにより、RDP を介して接続されている間、ワークステーションのファイル システムをインスタンス上で使用することができるようになります。

インスタンスへのファイル転送には、次のような Microsoft リモート デスクトップ クライアントを使用します。

次のステップ

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

フィードバックを送信...

Compute Engine ドキュメント