Cloud Tools for PowerShell をインストールして使用する

1. 概要

PowerShell は、.NET Framework 上に構築されたコマンドライン シェルと関連スクリプト言語です。Windows で使用されるデフォルトのタスク自動化および構成管理ツールです。PowerShell コマンドレットは、PowerShell 内で呼び出される軽量コマンドです。

Cloud Tools for PowerShell は、Google Compute Engine、Google Cloud Storage、Google Cloud SQL、Google Cloud DNS などの Google Cloud リソースにアクセスして操作するためのコマンドレットのコレクションです。今後も追加される予定です。

このラボに沿って、PowerShell から Google Cloud リソースを操作する方法を学習します。

学習内容

  • Cloud Tools for PowerShell のインストール方法。
  • Google Cloud SDK で認証する方法。
  • PowerShell から Google Compute Engine を作成して管理する方法。
  • PowerShell から Google Cloud Storage にデータをバックアップする方法。

必要なもの

  • Google Cloud Platform プロジェクト。
  • ChromeFirefox などのブラウザ。
  • Windows マシン。

このチュートリアルの利用方法をお選びください。

通読するのみ 内容を読んで演習を完了する

Google Cloud Platform のご利用経験について、いずれに該当されますか?

初心者 中級者 上級者

2. 設定と要件

この Codelab では、PowerShell を操作するための Google Cloud プロジェクトが必要です。既存のプロジェクトがある場合は、そのプロジェクトを使用するか、次の手順で新しいプロジェクトを作成できます。

セルフペース型の環境設定

Google アカウント(Gmail または G Suite)をお持ちでない場合は、1 つ作成する必要があります。Google Cloud コンソール(console.cloud.google.com)にログインし、新しいプロジェクトを作成します。

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

プロジェクト ID を忘れないようにしてください。プロジェクト ID はすべての Google Cloud Platform プロジェクトを通じて一意の名前にする必要があります。以降、このコードラボでは PROJECT_ID と呼びます。

次に、Google Cloud Datastore や Cloud Storage などの Google Cloud Platform リソースを使用するために、Google Cloud コンソールで課金を有効にする必要があります。

Google Cloud Platform の新規ユーザーは、$300 の無料トライアルをご利用いただけます。この Codelab の操作をすべて行っても、費用は数ドル程度です。ただし、その他のリソースを使いたい場合や、実行したままにしておきたいステップがある場合は、追加コストがかかる可能性があります(このドキュメントの最後にある「クリーンアップ」セクションをご覧ください)。

3. インストール

セルフペース型の環境のインストール

PowerShell コマンドレットは、Cloud SDK for Windows の一部として提供されます。まだ行っていない場合は、Windows クイックスタート ガイドの説明に沿って、Windows 用 Google Cloud SDK をダウンロードしてインストールします。Cloud SDK のインストール時に PowerShell オプションがオンになっていることを確認します。

d6df1af5b5b08e41.png

4. 認証

Cloud Tools for PowerShell は、Cloud SDK に保存されている認証情報と設定を使用します。そのため、コマンドレットの使用を開始するには、まず Cloud SDK を使用してログインする必要があります。

セルフペース型の環境認証

Google Cloud SDK Shell を起動し、次のコマンドを実行します。

gcloud init

Google ユーザー アカウントを使用してログインするためのオプションを受け入れます。

To continue, you must log in. Would you like to log in (Y/n)? Y

ブラウザにメッセージが表示されたら Google ユーザー アカウントでログインし、[許可する] をクリックして Google Cloud Platform リソースにアクセスする権限を付与します。

コマンド プロンプトで、オーナー、編集者、閲覧者のいずれかの権限が付与されている Cloud Platform プロジェクトのリストからプロジェクトを選択します。

Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:

5. PowerShell 内で Google Cloud コマンドレットを実行する

認証が完了すると、PowerShell 内で Google Cloud コマンドレットを使用できるようになります。PowerShell コマンドライン シェルを見つけて開きます。

66b0c5d9b1cd7c68.png

Google Cloud コマンドレットが正しくインストールされていることを確認するには、Get-GceInstance コマンドレットを実行します。プロジェクト内の Compute Engine インスタンスが一覧表示されます。

3ffd420f66f76b06.png

6. Google Compute Engine インスタンスの作成と管理

このセクションでは、Google Cloud Tools for PowerShell 内から Google Compute Engine を作成して管理します。

インスタンス構成を作成する

インスタンスを作成する前に、インスタンス構成を作成する必要があります。少なくとも、名前、マシンタイプ、ブートディスク イメージまたは既存のブートディスクが必要です。Get-GceImage を使用してディスク イメージを作成し、New-GceInstanceConfig を使用して構成を作成します。

$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
    -MachineType "n1-standard-4" `
    -DiskImage $disk

これで、インスタンスの作成に使用できる構成が作成されました。

インスタンスを作成する

Add-GceInstance コマンドレットを使用して、新しい Compute Engine インスタンスを作成します。プロジェクトとゾーンを指定できますが、省略すると、パラメータ値は現在の有効な Cloud SDK 構成の値にデフォルト設定されます。プロジェクトを指定する場合は、PROJECT_ID を実際のプロジェクト ID に置き換えてください。

$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b

インスタンスを管理する

プロジェクトの仮想マシン インスタンスを取得するには、Get-GceInstance コマンドレットを使用します。インスタンス名は、プロジェクトまたはゾーン内で一意ではない可能性があるため、プロジェクト パラメータまたはゾーン パラメータを指定して検索を絞り込むことができます。デフォルトでは、アクティブな Cloud SDK 構成の値が使用されます。

$instance = Get-GceInstance "my-vm-1"

Set-GceInstance コマンドレットでインスタンスを作成した後、インスタンス タグ、ディスク、アクセス構成、その他のメタデータを設定できます。次のようにメタデータを追加して削除します。

Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"

次に、後でインスタンスを削除するために使用するタグを追加します。

Set-GceInstance $instance -AddTag "to-be-removed"

さまざまなコマンドレットを使用して、インスタンスを起動、停止、再起動できます。インスタンスを参照するには、Get-GceInstance コマンドレットから返された名前または厳密に型指定されたオブジェクトを使用します。これらのコマンドを試してみましょう。

Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"

最後に、インスタンスの作成が完了したら、Remove-GceInstance コマンドレットを使用して、前に指定したタグを指定して Compute Engine から削除します。

Get-GceInstance -Project $project |
    Where { $_.Tags.Items -contains "to-be-removed" } |
    Remove-GceInstance -WhatIf

7. Google Cloud Storage にデータをバックアップする

この Codelab のこのパートでは、Cloud Tools for PowerShell を使用して、ローカルマシンから Google Cloud Storage にデータをバックアップします。

バケットを作成する

ファイルを Cloud Storage にアップロードする前に、バケットを作成する必要があります。New-GcsBucket コマンドレットを使用して、新しいバケットを作成します。

$bucket = "my-gcs-bucket"
New-GcsBucket $bucket

バケットにファイルをアップロードする

New-GcsObject を使用して、ファイルまたはフォルダ全体をバケットにアップロードできます。

ローカル ファイルの内容を Cloud Storage にアップロードするには、-File パラメータを使用してファイルパスを指定します。あるいは、PowerShell パイプラインを介してオブジェクトのコンテンツを文字列として渡すことも、-Value パラメータを使用することもできます。

マシン上のローカルファイルを選択し、次のようにバケットにアップロードします。

New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"

-UploadFolder パラメータを使用してフォルダパスを指定することで、ローカル ディスクから Cloud Storage にディレクトリ全体をアップロードできます。フォルダを Cloud Storage バケットのルートに直接アップロードしない場合は、-ObjectNamePrefix を使用して、アップロードするすべてのオブジェクトに適用される接頭辞を指定します。

マシン上のローカル フォルダを選択し、次のようにバケットにアップロードします。

New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"

データを検索する

データは、コマンドレットを使用して検索することも、プロバイダを使用して一般的なファイル検索コマンドレットで検索することもできます。バケットで次のコマンドを試してください。

Get-GcsObject $bucket | Select Name, Size | Out-GridView

名前とサイズを含むグリッド ポップアップが表示されます。

59d92a6bfec86f89.png

データを読み取る

Read-GcsObject コマンドレットを使用してデータを読み取ることができます。たとえば、次のコマンドを使用すると、hello.txt という名前のファイルをデスクトップに読み取ることができます。

Read-GcsObject $bucket "hello.txt" `
    -OutFile "$Env:UserProfile\Desktop\hello.txt"

データを削除する

最後に、Remove-GcsObject コマンドレットを使用してデータを削除できます。バケットのすべてのコンテンツを削除するには、次のコマンドを使用します。

Get-GcsObject $bucket | Remove-GcsObject

8. 完了

この Codelab では、PowerShell から Compute Engine インスタンスと Cloud Storage バケットを管理する方法を学習しましたが、他にもさまざまなことができます。PowerShell を使用して Cloud SQL と Cloud CDN のリソースを管理することもできます。詳しくは、以下の次のステップのリストをご覧ください。

学習した内容

  • Cloud Tools for PowerShell のインストール方法。
  • Google Cloud SDK で認証する方法。
  • PowerShell から Google Compute Engine を作成して管理する方法。
  • PowerShell から Google Cloud Storage にデータをバックアップする方法。

次のステップ