Compute Engine の VM インスタンスにファイルを転送する場合、ワークステーションの OS とターゲット VM インスタンスの OS に基づいて各種オプションを使用できます。
転送元 | 転送先が Linux VM |
---|---|
Linux または macOS | |
Windows |
Cloud Storage を経由したファイルの転送
Cloud Storage バケットは、ユーザーと VM 間の転送ポイントとして使用できます。ウェブブラウザ、Google Cloud CLI、プログラミング言語を使用して、Cloud Storage と Compute Engine VM の間でファイルを転送できます。
アップロードとダウンロードのステップでは、必要に応じてさまざまなタイプの認証情報を使用できます。
- ユーザー アカウントの認証情報は、1 回限りのオペレーション、または自分が主に担当するリソースに最適です。
- スケーリングされたデプロイと共有リソースのシナリオでは、サービス アカウント認証情報を検討してください。
Cloud Storage を使用してコンピュータと VM の間でファイルを転送するには、次の操作を行います。
- ファイル転送に使用する既存のバケットがない場合は、Cloud Storage バケットを作成します。
-
IAM 権限を使用して、バケットへのアクセスを変更します。
- ファイルをバケットにアップロードするアカウントには Storage オブジェクト管理者を付与する必要があります。
- ファイルをダウンロードするアカウントに、Storage オブジェクト閲覧者のロールを付与する必要があります。
- ソースデバイスにログインし、バケットにファイルをアップロードします。
- 宛先デバイスにログインし、ファイル転送を完了したバケットからファイルをダウンロードします。
- (省略可)不要なストレージ料金が発生しないように、ファイルを削除します。
逆方向にファイルを転送する必要がある場合は、このプロセスを逆に行うことでできます。ファイルをアップロードするアカウントに、バケットへの書き込みアクセス権があることを確認してください。
ブラウザの SSH を使用したファイルの転送
ブラウザの SSH を使用して VM への SSH 接続を確立できる場合は、その接続を使用して VM との間でファイルを転送できます。
VM へのアップロード
- Google Cloud コンソールで [VM インスタンス] ページに移動します。
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
接続が確立されたら、アップロード アイコン
をクリックします。[アップロード] ダイアログが開きます。
- アップロードするファイルを選択します。
- [ファイルをアップロード] をクリックしてファイルをアップロードします。ファイルは
/home/USER
ディレクトリにアップロードされます。
VM からのダウンロード
- Google Cloud コンソールで [VM インスタンス] ページに移動します。
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
接続が確立されたら、ダウンロード アイコン
をクリックします。[ダウンロード] ダイアログが開きます。
- [パス] テキスト ボックスに、ダウンロードするファイルの相対ファイルパスを入力します。
- [ダウンロード] をクリックしてファイルをダウンロードします。ファイルは、ワークステーションのデフォルトのダウンロード フォルダにダウンロードされます。
Google Cloud CLI を使用してファイルを転送する
Google Cloud CLI では確立済みの SSH 接続を介したセキュアコピー プロトコル(SCP)ファイル転送ユーティリティが使用できます。
SCP を使用してファイルを転送するには、次の手順に沿って操作します。
-
ファイアウォール ルールを確認し、ポート
22
での SSH 接続が許可されていることを確認します。ない場合は、SSH ファイアウォール ルールを作成します。 - 転送するファイルが含まれているソースデバイスに gcloud CLI がインストールされていることを確認します。
-
gcloud compute scp
コマンドを使用して、宛先のマシンにファイルを転送します。
次の例では、ワークステーションから VM のホーム ディレクトリにファイルをコピーします。
gcloud compute scp LOCAL_FILE_PATH VM_NAME:REMOTE_DIR
次のように置き換えます。
LOCAL_FILE_PATH
: ワークステーション上のファイルのパスVM_NAME
: VM の名前REMOTE_DIR
: リモートマシン上のディレクトリ
リモートマシンからファイルとディレクトリを逆方向にコピーすることもできます。次の例では、ディレクトリをソースからコピー先に再帰的にコピーします。
gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_FILE_PATH
詳細については、gcloud compute scp
リファレンス ドキュメントをご覧ください。
Linux ワークステーションや macOS ワークステーションの SCP を使用したファイルの転送
scp
コマンドライン ツールは、gcloud compute scp
と同様に動作しますが、SSH 認証鍵を手動で管理する必要があります。
SCP を使用してファイルを転送するには、VM が使用するネットワーク上に、ポート 22
での SSH 接続を許可するファイアウォール ルールが必要です。このファイアウォール ルールが存在することを確認するには、Google Cloud Console で tcp:22
接続を許可するファイアウォール ルールを探します。
ポート 22
で SSH 接続を許可するファイアウォール ルールがない場合は、ファイアウォール ルールを作成します。
scp
ツールは、標準 SSH を使用してインスタンスに接続するときと同じ鍵ファイルを使用します。
Google Cloud Console プロジェクトまたは VM インスタンスに公開鍵を適用していない場合は、SSH 認証鍵ペアを作成し、公開鍵をプロジェクトまたはインスタンス メタデータに追加します。
ファイルの送信先となる VM の外部 IP を確認します。Google Cloud コンソールで [VM インスタンス] ページに移動します。
scp
ツールを使用して、ワークステーションからターゲット VM のホーム ディレクトリにファイルをコピーします。この例では、秘密鍵は~/.ssh/my-ssh-key
にあります。scp -i ~/.ssh/my-ssh-key LOCAL_FILE_PATH USERNAME@IP_ADDRESS:~
次のように置き換えます。
LOCAL_FILE_PATH
: アップロードするローカル ファイルの名前USERNAME
: ユーザー名IP-ADDRESS
: VM の外部 IP アドレス
また、コピー元とコピー先の変数を逆にすることで、VM からローカルのワークステーションにファイルをコピーすることもできます。次の例では、VM からワークステーションのパスにファイルをコピーします。
scp -i ~/.ssh/my-ssh-key USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH
次のように置き換えます。
USERNAME
: ユーザー名IP_ADDRESS
: VM の外部 IP アドレスREMOTE_FILE_PATH
: ダウンロードするリモート ファイルの名前LOCAL_FILE_PATH
: ファイルをダウンロードする、ワークステーション上の場所
Windows ワークステーションの WinSCP を使用したファイルの転送
Windows ワークステーションでは、WinSCP クライアントにより、ファイル ブラウザのグラフィカル インターフェースを介してインスタンス上のファイルを管理できます。
WinSCP では、PuTTY を使用して VM に接続するときと同じ鍵ファイルが使用されます。
インスタンス用に鍵ベースの SSH 認証を構成していない場合は、次の手順で操作します。
PuTTYgen を使用して SSH 認証鍵ペアを作成します。SSH 認証秘密鍵は、
.ppk
形式(PuTTYgen が作成する鍵のデフォルト)を使用する必要があります。公開 SSH 認証鍵をプロジェクトのメタデータまたは VM のメタデータに追加します。詳細については、SSH 認証鍵をプロジェクト メタデータに追加するまたは SSH 認証鍵をインスタンス メタデータに追加するをご覧ください。
ファイルの送信先となる VM の外部 IP を確認します。
- Google Cloud コンソールで [VM インスタンス] ページに移動します。
- VM のリストで、VM の [外部 IP] 列で外部 IP アドレスを探します。
WinSCP をダウンロードしてインストールします。多くの場合、デフォルトのインストール設定で問題なくインストールできます。
WinSCP プログラムを起動します。ログイン ウィンドウが開き、接続設定を構成できます。
WinSCP で、接続設定を構成します。
[File protocol] フィールドでは、ファイル転送プロトコルとして
SCP
を選択します。[Host name] フィールドには、接続する VM の外部 IP アドレスを指定します。
[User name] フィールドに、プロジェクトへのアクセスに使用する Google ユーザー名を入力します。この例では、ユーザーは
example-user
です。
[Advanced] プルダウン リストから詳細設定を開き、[SSH] > [Authentication] に移動します。
[Private key file] ボックスに、VM 用に作成した SSH 認証鍵ペアの秘密鍵ファイルのパスを指定します。
[Ok] をクリックして、詳細設定を保存します。
[Login] をクリックして、VM に接続します。接続に成功するとウィンドウが開き、左側にローカルのファイル システム、右側に VM のファイル システムが表示されます。どちらのファイル システムでも他のディレクトリに移動して、ファイルをドラッグすることで VM から(VM へ)ファイルを転送できます。
通常、VM のホーム ディレクトリ外のファイルは、操作する権限がありません。VM のホーム ディレクトリに移動します。
/home/USERNAME
WinSCP インターフェースを使用して、ワークステーションと VM の間でファイルを移動します。
VM にファイルをコピーしたら、インスタンスに接続します。これで、完全な
sudo
権限でファイルの実行や移動ができます。
次のステップ
- アップロードしたファイルを使用するためにインスタンスに接続する。