arrow_back

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

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

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

Lab 45分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

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 のリソースを利用できる時間を示しています。

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

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

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

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

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

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

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

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

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

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

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

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

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

Cloud Shell をアクティブにする

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

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

  2. 出力は次のようになります。

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

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 の各ゾーンが含まれています。次のテーブルは各リージョン内のゾーンを示しています。

米国西部 米国中部 米国東部 西ヨーロッパ 東アジア
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 アドレスと同じリージョンに配置する必要があります。

注: Google Cloud Compute Engine のリージョンとゾーンについてのドキュメントで、リージョンとゾーンの詳細と一覧をご確認ください。
  1. リージョンを に設定します。

    gcloud config set compute/region {{{project_0.startup_script.project_region | REGION}}}
  2. プロジェクトのリージョンの設定を表示するには、次のコマンドを実行します。

    gcloud config get-value compute/region
  3. ゾーンを に設定します。

    gcloud config set compute/zone {{{project_0.startup_script.project_zone | ZONE}}}
  4. プロジェクトのゾーンの設定を確認するには、次のコマンドを実行します。

    gcloud config get-value compute/zone

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

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

    • Google Cloud コンソールのダッシュボードにある [プロジェクト情報] の下。(ナビゲーション メニューナビゲーション メニュー アイコン)をクリックした後、[Cloud の概要] > [ダッシュボード] をクリック。)
    • ラボのタブのユーザー名とパスワードの付近。
  2. Cloud Shell でプロジェクト ID を確認するには、次の gcloud コマンドを実行します。

    gcloud config get-value project
  3. 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)
  2. ゾーンを格納する環境変数を作成します。

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

    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 | 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 キーを押します。

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

    gcloud help config

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

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

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

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

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

    gcloud components list

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

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

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

  1. プロジェクトで利用可能なコンピューティング インスタンスを一覧表示します。

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

    出力例:

    NAME: gcelab2 ZONE: {{{project_0.startup_script.project_zone | ZONE}}} MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.142.0.2 EXTERNAL_IP: 35.237.43.111 STATUS: RUNNING
  2. gcelab2 仮想マシンを一覧表示します。

    gcloud compute instances list --filter="name=('gcelab2')"

    出力例:

    NAME: gcelab2 ZONE: {{{project_0.startup_script.project_zone | 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
  2. デフォルト ネットワークのファイアウォール ルールを一覧表示します。

    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
  3. デフォルト ネットワークのファイアウォール ルールのうち、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)
  2. 続行するには、「Y」と入力します。

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

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

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

    • @ の前の部分は、使用しているアカウントを示しています。
    • @ の後の部分は、アクセスしているホストマシンを示しています。
  4. 仮想マシンに nginx ウェブサーバーをインストールします。

    sudo apt install -y nginx
  5. 他に何もする必要はありません。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 が配置されているネットワークです。

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

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

    • gcelab2 仮想マシンにタグを追加する
    • HTTP トラフィック用のファイアウォール ルールを追加する
  3. 仮想マシンにタグを追加します。

    gcloud compute instances add-tags gcelab2 --tags http-server,https-server
  4. 通信を許可するようにファイアウォール ルールを更新します。

    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
  5. プロジェクトのファイアウォール ルールを一覧表示します。

    gcloud compute firewall-rules list --filter=ALLOW:'80'

    出力:

    NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-http default INGRESS 1000 tcp:80 False
  6. 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-01-4b75909db302/logs/GCEGuestAgent NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/OSConfigAgent NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/autoscaler.googleapis.com%2Fstatus_change NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Factivity NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Fdata_access NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Fsystem_event NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fautoscaler NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Finstance_group_manager_events NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fshielded_vm_integrity NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/run.googleapis.com%2Fstderr NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/run.googleapis.com%2Fstdout
  2. コンピューティング リソースに関連するログを確認してみましょう。

    gcloud logging logs list --filter="compute"

    出力:

    NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fautoscaler NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Finstance_group_manager_events NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fshielded_vm_integrity
  3. リソースの種類 gce_instance に関連するログを確認してみましょう。

    gcloud logging read "resource.type=gce_instance" --limit 5
  4. 特定の仮想マシンのログを確認してみましょう。

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

タスク 6. 理解度を確認する

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

お疲れさまでした

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

次のステップと詳細情報

次のラボを受講して学習を続けてください。

Google Cloud トレーニングと認定資格

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

マニュアルの最終更新日: 2024 年 1 月 26 日

ラボの最終テスト日: 2022 年 9 月 15 日

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