arrow_back

Cloud Shell と gcloud のスタートガイド

参加 ログイン

Cloud Shell と gcloud のスタートガイド

45分 クレジット: 1

GSP002

Google Cloud セルフペース ラボ

概要

Cloud Shell を使用すると、Google Cloud でホストされているコンピューティング リソースにコマンドラインでアクセスできます。Debian ベースの仮想マシンである Cloud Shell は、5 GB の永続的なホーム ディレクトリを備えており、Google Cloud のプロジェクトやリソースを容易に管理できます。gcloud コマンドライン ツールとその他の必須ユーティリティは Cloud Shell にプリインストールされており、簡単に起動して実行することができます。

このハンズオンラボでは、Cloud Shell と gcloud ツールを使用して、Google Cloud でホストされているコンピューティング リソースに接続する方法について学びます。

基本的なコンセプトを理解できるよう、コマンドは手動で入力することをおすすめしますが、多くのラボで、必要なコマンドが含まれたコードブロックが提供されています。コードブロックのコマンドをコピーして、該当する場所に貼り付けることもできます。

演習内容

  • gcloud コマンドの使い方について実践しながら学ぶ。
  • Google Cloud でホストされているコンピューティング サービスに接続する。

前提条件

  • Linux の標準的なテキスト エディタ(vimemacsnano など)を使い慣れていること。

設定

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

必要なもの

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために十分な時間

注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、ラボでは使用しないでください。

注: Chrome OS デバイスを使用している場合は、シークレット ウィンドウを開いてこのラボを実行してください。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Google Cloud Shell の有効化

Google Cloud Shell は、デベロッパー ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Google Cloud Shell では、コマンドラインで GCP リソースにアクセスできます。

GCP Console の右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

Cloud Shell アイコン

[続行] をクリックします。

cloudshell_continue

環境のプロビジョニングと接続には少し時間がかかります。接続すると、すでに認証されており、プロジェクトは PROJECT_ID に設定されています。例えば:

Cloud Shell 端末

gcloud は Google Cloud Platform のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

次のコマンドを使用すると、有効なアカウント名を一覧表示できます。

gcloud auth list

出力:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

次のコマンドを使用すると、プロジェクト ID を一覧表示できます。

gcloud config list project
	

出力:

[core]
project = <project_ID>
	

出力例:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Cloud Shell を有効にした後にコマンドラインを使用して、Cloud SDK の gcloud ツールや、仮想マシン インスタンスで利用可能なその他のツールを起動することができます。このラボでは、後ほど $HOME ディレクトリを使用します。このディレクトリを使うと、ファイルを永続ディスク ストレージに保存して、複数のプロジェクトと Cloud Shell セッションで使用することができます。$HOME はプライベート ディレクトリであるため、他のユーザーはアクセスできません。

タスク 1: 環境を設定する

ここでは、開発環境の設定可能な要素について学習します。

リージョンとゾーンについて

一部の Google Compute Engine のリソースは、リージョンまたはゾーンに含まれています。リージョンとは、リソースを実行できる特定の地理的位置のことです。各リージョンには、1 つまたは複数のゾーンがあります。たとえば、リージョン us-central1 は米国中部を指し、このリージョンには us-central1-aus-central1-bus-central1-cus-central1-f の各ゾーンが含まれています。次の図は各リージョン内のゾーンを示しています。

Western US Central US Eastern US Western Europe Eastern Asia
us-west1-a us-central1-a us-east1-b europe-west1-b asia-east1-a
us-west1-b us-central1-b us-east1-c europe-west1c asia-east1-b
- us-central1-c us-east1-d europe-west1-d aisia-east1-c
- us-central1-f - - -

ゾーン内にあるリソースをゾーンリソースと呼びます。仮想マシン インスタンスと永続ディスクはゾーンに含まれています。仮想マシン インスタンスに永続ディスクを接続する場合は、両方のリソースを同じゾーンに配置する必要があります。同様に、静的 IP アドレスをインスタンスに割り当てるには、そのインスタンスを静的 IP アドレスと同じリージョンに配置する必要があります。

リージョンおよびゾーンの詳細と一覧については、リージョンとゾーンのドキュメントをご覧ください。
  1. リージョンを に設定します。
gcloud config set compute/region {{{project_0.startup_script.project_region}}}
  1. プロジェクトのリージョンの設定を表示するには、次のコマンドを実行します。
gcloud config get-value compute/region
  1. ゾーンを に設定します。
gcloud config set compute/zone {{{project_0.startup_script.project_zone}}}
  1. プロジェクトのゾーンの設定を確認するには、次のコマンドを実行します。
gcloud config get-value compute/zone

プロジェクトの情報を確認する

  1. プロジェクト ID をクリップボードまたはテキスト エディタにコピーします。プロジェクト ID は次の 2 か所に表示されます。

  • Google Cloud Console のダッシュボードにある [プロジェクト情報] の下(ナビゲーション メニュー アイコン ナビゲーション メニュー をクリックした後、[クラウドの概要] > [ダッシュボード] をクリック)

  • [Qwiklabs] タブのユーザー名とパスワードの付近

  1. Cloud Shell でプロジェクト ID を確認するには、次の gcloud コマンドを実行します。
gcloud config get-value project
  1. Cloud Shell で次の gcloud コマンドを実行し、プロジェクトの詳細を確認します。

gcloud compute project-info describe --project $(gcloud config get-value project)

コマンドの出力から、ゾーンとリージョンのメタデータの値を見つけます。後ほど、この出力されたゾーン(google-compute-default-zone)を使用します。

注意:google-compute-default-region または google-compute-default-zone のキーと値が出力に含まれていない場合は、デフォルトのゾーンまたはリージョンが設定されていません。

出力には、プロジェクトに関するその他の有用な情報が含まれています。時間をとって詳しく確認してください。

環境変数を設定する

環境変数とは環境を定義する変数のことです。環境変数を設定することで、API や実行可能ファイルを含むスクリプトを作成する際に時間を節約できます。

  1. プロジェクト ID を格納する環境変数を作成します。

export PROJECT_ID=$(gcloud config get-value project)
  1. 環境変数を作成し、ゾーンを保存します。

export ZONE=$(gcloud config get-value compute/zone)
  1. 変数が適切に設定されていることを確認するために、次のコマンドを実行します。

echo -e "PROJECT ID: $PROJECT_ID\nZONE: $ZONE"

変数が適切に設定されている場合は、echo コマンドでプロジェクト ID とゾーンが出力されます。

gcloud ツールを使用して仮想マシンを作成する

gcloud ツールを使用して新しい仮想マシン(VM)インスタンスを作成します。

  1. VM を作成するには、次のコマンドを実行します。

gcloud compute instances create gcelab2 --machine-type e2-medium --zone $ZONE

出力:

Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-04-326fae68bc3d/zones/us-east1-c/instances/gcelab2]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS gcelab2 {{{project_0.startup_script.project_zone}}} e2-medium 10.128.0.2 34.67.152.90 RUNNING

コマンドの詳細

  • gcloud compute: Compute Engine のリソースを Compute Engine API よりもシンプルに管理できます。

  • instances create: 新しいインスタンスを作成します。

  • gcelab2: VM の名前です。

  • --machine-type フラグ: 「e2-medium」マシンタイプを指定します。

  • --zone フラグ: VM を作成する場所を指定します。

  • --zone フラグを省略した場合、gcloud ツールはデフォルトのプロパティに基づいてユーザーに適したゾーンを推定します。インスタンスに必要なその他の設定(machine typeimage など)が create コマンドで指定されていない場合は、デフォルト値に設定されます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。gcloud ツールで仮想マシンを正常に作成できた場合は、評価スコアが表示されます。

gcloud による仮想マシンの作成
  • create コマンドのヘルプを開くには、次のコマンドを実行します。

gcloud compute instances create --help 注: Enter キーまたは Space キーを押すと、ヘルプ情報を下にスクロールできます。終了するには、「Q」と入力します。

gcloud コマンドの詳細を確認する

gcloud コマンドの末尾に -h フラグ(help(ヘルプ)の「h」)を付けると、使用方法に関する簡単なガイドラインが表示されます。

  1. 次のコマンドを実行します。

gcloud -h

さらに詳細なヘルプを表示するには、コマンドに --help フラグを付けるか、gcloud help コマンドを実行します。

  1. 次のコマンドを実行します。

gcloud config --help

終了するには、Q と入力して Enter を押してください。

  1. 次のコマンドを実行します。

gcloud help config

gcloud config --help コマンドと gcloud help config コマンドはどちらも同じ結果を返し、詳細なヘルプ情報が表示されます。

gcloudグローバル フラグは、呼び出しごとにコマンドの動作を制御します。フラグは、SDK のプロパティで設定された値よりも優先されます。

  1. 使用環境の構成リストを表示してみましょう。

gcloud config list
  1. すべてのプロパティとその設定を表示してみましょう。

gcloud config list --all
  1. コンポーネントを一覧表示してみましょう。

gcloud components list

このラボで使用可能な gcloud コンポーネントが表示されます。

タスク 2: コマンドラインの出力をフィルタリングする

gcloud CLI はコマンドラインで操作できる便利なツールですが、 特定の情報に絞り込んで確認したい場合があります。

  1. プロジェクトで利用可能なコンピューティング インスタンスを一覧表示する
gcloud compute instances list

一般的に、プロジェクトには複数のリソースがデプロイされています。 gcloud には特定のリソースを識別するために役立つ便利なフォーマットがいくつかあります。

出力:

NAME: gcelab2 ZONE: {{{project_0.startup_script.project_zone}}} MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.142.0.2 EXTERNAL_IP: 35.237.43.111 STATUS: RUNNING
  1. gcelab2 仮想マシンを一覧表示する
gcloud compute instances list --filter="name=('gcelab2')"

出力:

NAME: gcelab2 ZONE: {{{project_0.startup_script.project_zone}}} MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.142.0.2 EXTERNAL_IP: 35.237.43.111 STATUS: RUNNING

先ほどのコマンドでは、条件に一致する情報(つまり仮想マシンのインスタンス名が条件に一致するもの)のみを表示するように gcloud を指定しました。

  1. プロジェクト内のファイアウォール ルールを一覧表示する
gcloud compute firewall-rules list

出力:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False dev-net-allow-ssh dev-network INGRESS 1000 tcp:22 False serverless-to-vpc-connector dev-network INGRESS 1000 icmp,udp:665-666,tcp:667 False vpc-connector-egress dev-network INGRESS 1000 icmp,udp,tcp False vpc-connector-health-check dev-network INGRESS 1000 tcp:667 False vpc-connector-to-serverless dev-network EGRESS 1000 icmp,udp:665-666,tcp:667 False
  1. デフォルト ネットワークのファイアウォール ルールを一覧表示する
gcloud compute firewall-rules list --filter="network='default'"

出力:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False
  1. デフォルト ネットワークのファイアウォール ルールのうち、ICMP の許可ルールと一致するものを一覧表示する
gcloud compute firewall-rules list --filter="NETWORK:'default' AND ALLOW:'icmp'"

出力:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False

タスク 3: VM インスタンスに接続する

gcloud compute を使用すると、インスタンスに簡単に接続できます。 gcloud compute ssh コマンドは SSH のラッパーとして、インスタンス名から IP アドレスへのマッピングと認証を行います。

  1. SSH を使用して VM に接続するには、次のコマンドを実行します。

gcloud compute ssh gcelab2 --zone $ZONE

出力:

WARNING: The public SSH key file for gcloud does not exist. WARNING: The private SSH key file for gcloud does not exist. WARNING: You do not have an SSH key for gcloud. WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key. This tool needs to create the directory [/home/gcpstaging306_student/.ssh] before being able to generate SSH Keys. Do you want to continue? (Y/n)
  1. 続行するには、「Y」と入力します。

Generating public/private rsa key pair. Enter passphrase (empty for no passphrase)
  1. パスフレーズを空白のままにするには、Enter キーを 2 回押します。

これで、ラボで先ほど作成した仮想マシンに接続しました。 コマンド プロンプトの変化に気づきましたか?

プロンプトが sa_107021519685252337470@gcelab2 のように表示されるようになりました。

  • @ の前の部分は、使用しているアカウントを示しています。
  • @ の後の部分は、アクセスしているホストマシンを示しています。
  1. 仮想マシンに nginx ウェブサーバーをインストールする
sudo apt install -y nginx
  1. 他に何もする必要はありません。SSH 接続を解除してリモートシェルを終了するには、次のコマンドを実行します。
exit

プロジェクトのコマンド プロンプトに戻ります。

タスク 4: ファイアウォールを更新する

仮想マシンなどのコンピューティング リソースを使用するときは、関連するファイアウォール ルールを理解しておくことが大切です。

  1. プロジェクトのファイアウォール ルールを一覧表示する

gcloud compute firewall-rules list

出力:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False dev-net-allow-ssh dev-network INGRESS 1000 tcp:22 False serverless-to-vpc-connector dev-network INGRESS 1000 icmp,udp:665-666,tcp:667 False vpc-connector-egress dev-network INGRESS 1000 icmp,udp,tcp False vpc-connector-health-check dev-network INGRESS 1000 tcp:667 False vpc-connector-to-serverless dev-network EGRESS 1000 icmp,udp:665-666,tcp:667 False

この出力から、2 つのネットワークが利用可能であることがわかります。デフォルト(default)ネットワークは、仮想マシン gcelab2 が配置されているネットワークです。

  1. gcelab2 仮想マシンで走行している nginx サービスにアクセスしてみる

仮想マシンにはファイアウォール ルールが適切に設定されていないため、仮想マシンとの通信に失敗します。nginx ウェブサーバーには tcp:80 で通信する必要があります。 正常に通信するには、次の操作をします。

  • gcelab2 仮想マシンにタグを追加する
  • HTTP トラフィック用のファイアウォール ルールを追加する
  1. 仮想マシンにタグを追加する
gcloud compute instances add-tags gcelab2 --tags http-server,https-server
  1. 通信を許可するようにファイアウォール ルールを更新する
gcloud compute firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
  1. プロジェクトのファイアウォール ルールを一覧表示する
gcloud compute firewall-rules list --filter=ALLOW:'80'

出力:

NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-http default INGRESS 1000 tcp:80 False
  1. HTTP で仮想マシンと通信できることを確認する

curl http://$(gcloud compute instances list --filter=name:gcelab2 --format='value(EXTERNAL_IP)')

nginx のデフォルト出力が表示されます。

タスク 5: システムログを確認する

プロジェクトの稼働状況を把握するうえで、ログの確認は不可欠です。gcloud を使用することで、Google Cloud で利用できるさまざまなログにアクセスすることができます。

  1. システムで利用可能なログを確認してみましょう。

gcloud logging logs list

出力:

NAME projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/GCEGuestAgent projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/OSConfigAgent projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/autoscaler.googleapis.com%2Fstatus_change projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/cloudaudit.googleapis.com%2Factivity projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/cloudaudit.googleapis.com%2Fsystem_event projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/compute.googleapis.com%2Fautoscaler projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/compute.googleapis.com%2Finstance_group_manager_events projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/compute.googleapis.com%2Fshielded_vm_integrity projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/run.googleapis.com%2Frequests projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/run.googleapis.com%2Fstderr projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/run.googleapis.com%2Fstdout
  1. コンピューティング リソースに関連するログを確認してみましょう。

gcloud logging logs list --filter="compute"

出力:

NAME projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/compute.googleapis.com%2Fautoscaler projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/compute.googleapis.com%2Finstance_group_manager_events projects/qwiklabs-gcp-03-6bef54ddd5e7/logs/compute.googleapis.com%2Fshielded_vm_integrity
  1. リソースの種類 gce_instance に関連するログを確認してみましょう。
gcloud logging read "resource.type=gce_instance" --limit 5
  1. 特定の仮想マシンのログを確認してみましょう。

gcloud logging read "resource.type=gce_instance AND labels.instance_name='gcelab2'" --limit 5

タスク6:理解度チェック

今回のラボで学習した内容の理解を深めていただくために、以下の多肢選択式の問題を用意しました。

お疲れさまでした

このラボでは、Cloud Shell の起動方法について学び、gcloud のサンプル コマンドを実行してみました。

クエストを完了する

修了バッジ SDK 修了バッジ

このセルフペース ラボは、Qwiklabs の「Google Cloud Essentials」と「Using the Cloud SDK Command Line」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください

次のラボを受講する

Google Cloud Marketplace を使用したサービスのプロビジョニング」に進んでクエストを続けるか、以下のおすすめのラボをご確認ください。

次のステップと詳細情報

Google Cloud Training & Certification

Google Cloud 技術を最大限に活用できるようになります。このクラスでは、必要な技術力とベスト プラクティスを習得し、継続的に学習することができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、仮想環境など、多忙なスケジュールに対応できるオプションが用意されています。認定資格を取得することで、Google Cloud の技術のスキルと知識を証明できます。

マニュアルの最終更新日: 2022 年 8 月 18 日
ラボの最終テスト日: 2022 年 8 月 18 日

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。