チェックポイント
Create a bucket, VM instance with necessary firewall rule and an IAM service account
/ 25
Create a second bucket, VM instance and an IAM service account
/ 25
Work with Cloud Storage in Cloud Shell
/ 25
Install the nginx Web server and customize the welcome page
/ 25
Google Cloud コンソールと Cloud Shell にアクセスする
概要
このラボでは、Google Cloud のウェブベースのインターフェースについて学習します。Google Cloud には以下の 2 つの環境が組み込まれています。
- Google Cloud コンソールと呼ばれる GUI 環境
- Cloud Shell と呼ばれるコマンドライン インターフェース。Cloud SDK のコマンドがプリインストールされています。
本コースでは、両方の環境を使用します。
Google Cloud コンソールについては、以下の点を理解しておく必要があります。
- Google Cloud コンソールは現在も開発が続けられているため、グラフィカルなレイアウトが変更されることがあります。多くの場合、こうした変更は Google Cloud の新機能やテクノロジーの変更に伴って実施されるもので、ワークフローに多少の変更が生じます。
- Google Cloud の一般的な操作のほとんどは Google Cloud コンソールで行うことができます。新しい機能は、Google Cloud コンソールで利用可能になる前に、Cloud SDK に実装される場合があります。
- 一部の操作は、Google Cloud コンソールで非常に速く処理できます。Google Cloud コンソールでは、多くのコマンドライン処理が必要になるような複合的な操作を簡単に実行できます。
- Cloud SDK のコマンドは、自動化に役立ちます。
目標
このラボでは、次のタスクについて学びます。
- Google Cloud コンソールと Cloud Shell にアクセスする
- Google Cloud コンソールについて理解する
- Cloud Shell エディタを含む Cloud Shell の機能について理解する
- Google Cloud コンソールと Cloud Shell を使用して、バケット、VM、サービス アカウントを作成する
- Cloud Shell でその他のコマンドを実行する
ラボを設定する
Qwiklabs にアクセスする
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
-
Qwiklabs にシークレット ウィンドウでログインします。
-
ラボのアクセス時間(例:
1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。 -
準備ができたら、[ラボを開始] をクリックします。
-
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
-
[Google Console を開く] をクリックします。
-
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。 -
利用規約に同意し、再設定用のリソースページをスキップします。
最初のログイン手順を完了すると、プロジェクト ダッシュボードが表示されます。
タスク 1. Google Cloud コンソールを使用する
このタスクでは、Google Cloud コンソールを使用し、リソースを作成します。
プロジェクトが選択されていることを確認する
-
Google Cloud コンソールのタイトルバーにある [プロジェクトの選択] プルダウン リストをクリックし、Qwiklabs から認証情報とともに提供されたプロジェクト ID を選択します。
-
プロジェクト ID の形式は、[qwiklabs-gcp-] + 16 進数の長い数字です。
-
[キャンセル] をクリックしてダイアログを閉じます。
次のスクリーンショットに示すように、タイトルバーにプロジェクト ID が表示されます。Qwiklabs 環境のラボごとに固有のプロジェクト ID と固有の認証情報があります。
Google Cloud Storage に移動してバケットを作成する
Cloud Storage では、世界中のどこからでも、いつでもデータを保存、取得できます。データの量に制限はありません。Cloud Storage は、ウェブサイト コンテンツの提供、アーカイブと障害復旧のためのデータの保存、直接ダウンロードによるユーザーへの大きなデータ オブジェクトの配布など、さまざまなシナリオで使用できます。
Cloud Storage バケットには、グローバルに一意の名前を付ける必要があります。組織では、Google Cloud の Cloud Storage のベスト プラクティス ガイドに従ってください。このラボでは、Qwiklabs で生成された Google Cloud プロジェクト ID(グローバルに一意の ID)を使用すれば、バケットの名前を簡単に一意のものにすることができます。
-
Google Cloud コンソールのナビゲーション メニュー()で、[Cloud の概要] > [ダッシュボード] をクリックします。
-
表示される画面の [ダッシュボード] タブで、[プロジェクト情報] セクションに Google Cloud プロジェクト ID が表示されます。
-
プロジェクト ID を選択してコピーします。このプロジェクト ID は Qwiklabs によって生成されたものなので、[qwiklabs-gcp-] の後に 16 進数の長い数字が付加された形式になっています。
-
Google Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックします。
-
[バケットを作成] をクリックします。
-
[名前] の欄に、前の手順でコピーした Google Cloud プロジェクト ID の文字列を貼り付けます。以降のラボの手順では、この名前を
[BUCKET_NAME]
と表記します。 -
[続行] をクリックします。
-
[ロケーション タイプ] で [リージョン] を選択し、プルダウンから
を選択します。 -
[続行] をクリックします。
-
[オブジェクトへのアクセスを制御する方法を選択する] をクリックし、[このバケットに対する公開アクセス禁止を適用する] をオフにして、[きめ細かい管理] を選択します。
-
[続行] をクリックします。
-
他の値はすべてデフォルト値のままにします。
-
[作成] をクリックします。
仮想マシン(VM)インスタンスを作成する
Google Compute Engine は、Google のデータセンターとそのネットワーク上で実行される仮想マシンをサービスとして提供します。Google Kubernetes Engine では、そのアーキテクチャのコンポーネントとして Compute Engine を利用しています。そのため、Google Kubernetes Engine について学ぶ前に、Compute Engine について簡単に学んでおくと役に立ちます。
- ナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
- [インスタンスを作成] をクリックします。
- [名前] にインスタンスの名前として「first-vm」と入力します。
- [リージョン] で
を選択します。 - [ゾーン] で
を選択します。 - [マシンタイプ] で、オプションを確認します。
gcloud
コマンドを使用して VM を作成する際に、マシンタイプを選択するために使用するパラメータです。リージョン、ゾーン、マシンタイプの右側に、1 か月あたりの推定費用が表示されます。
- 推定費用の内訳を確認するには、[マシンタイプ] リストの右側の推定費用の下にある [詳細] をクリックします。
- [マシンタイプ] で、vCPU x 2 のオプション([e2-standard-2])をクリックします。
費用はどのように変化しましたか。
- [マシンタイプ] で [e2-micro](共有 vCPU x 2)をクリックします。
micro というタイプは低価格の共有コア VM です。
- [ファイアウォール] で、[HTTP トラフィックを許可する] をオンにします。
- 残りの設定はデフォルトのままにして、[作成] をクリックします。
新しい VM が作成されるまでお待ちください。
VM の詳細を調べる
- [VM インスタンス] ページで、first-vm という VM 名をクリックします。
- [マシンの構成] で、[CPU プラットフォーム] の値を確認し、[編集] をクリックします。
- 上部にある鉛筆アイコンをクリックし、
first-vm
インスタンスを編集します。
- [管理] セクションまでスクロールして、[可用性ポリシー] を確認します。
- [キャンセル] をクリックします。
IAM サービス アカウントを作成する
IAM サービス アカウントは、個々のエンドユーザーではなく、アプリケーションや仮想マシンに属している特別な種類の Google アカウントです。
- ナビゲーション メニューで、[IAM と管理] > [サービス アカウント] をクリックします。
- [+ サービス アカウントを作成] をクリックします。
- [サービス アカウントの詳細] で、[サービス アカウント名] に「
test-service-account
」と入力します。 - [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する(省略可)] で、ロールとして [基本] > [編集者] を指定します。
- [続行] をクリックします。
- [完了] をクリックします。
- [サービス アカウント] ページで、
test-service-account
の右端まで移動して、その他アイコンをクリックします。 - [鍵を管理] をクリックします。
- [鍵を追加] をクリックします。
- [新しい鍵を作成] を選択します。
- 鍵のタイプに [JSON] を選択します。
- [作成] をクリックします。
JSON 鍵ファイルがダウンロードされます。この鍵ファイルは後の手順で VM にアップロードします。
- [閉じる] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 2. Cloud Shell の操作を確認する
Cloud Shell では、コマンドラインを使ってブラウザからクラウド リソースに直接アクセスできます。また、gcloud などの Cloud SDK コマンドライン ツールを常に最新かつ認証済みの状態で使うことができます。
Cloud Shell の特長と機能は以下のとおりです。
- 一時的な Compute Engine VM
- ウェブブラウザからインスタンスへのコマンドライン アクセス
- 5 GB の永続ディスク ストレージ(
$HOME dir
) - プリインストールされた Cloud SDK とその他のツール
-
gcloud
: Compute Engine、Google Kubernetes Engine(GKE)、Google Cloud の多くのサービスで使用 -
gcloud storage
とgsutil
: Cloud Storage で使用 -
kubectl
: GKE や Kubernetes で使用 -
bq
: BigQuery で使用 - Java、Go、Python、Node.js、PHP、Ruby などの言語に対応
- ウェブ プレビュー機能
- リソースやインスタンスに対するアクセスを承認する組み込みのメカニズム
アクティビティのない状態が 1 時間続くと、Cloud Shell インスタンスはリサイクルされます(/home
ディレクトリのみが維持されます)。システム構成の変更(これには環境変数も含まれます)は、セッションが終了すると失われます。
このタスクでは、Cloud Shell を使用していくつかのリソースを作成し、詳しく確認していきます。
Cloud Shell を開いて機能を確認する
- Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする]()をクリックします。
- 画面の指示に従って [続行] をクリックします。
Google Cloud コンソール ウィンドウの下部に Cloud Shell が開きます。
Cloud Shell ツールバーの右端に、次のアイコンがあります。
- 最大化 / 復元: このアイコンをクリックするとウィンドウを最大化したり復元したりできます。Cloud Shell を閉じることなく Google Cloud コンソールのすべての機能を利用できます。
- 新しいウィンドウで開く: Cloud Shell を Google Cloud コンソールの下部に表示したままにしておくと、個々のコマンドを発行するときに便利です。一方で、ファイルを編集する場合や、コマンドの出力全体を確認したい場合には、このアイコンをクリックすると、Cloud Shell が新しいフルサイズのターミナル ウィンドウとして表示されます。
- すべてのタブを閉じる: このアイコンをクリックすると Cloud Shell が終了します。Cloud Shell を閉じるたびに、その仮想マシンはリサイクルされ、関連するすべての情報が失われます。ただし、ホーム ディレクトリに保存したデータは保持され、Cloud Shell を次回開いたときに引き続き利用できます。
Cloud Shell を使用してこのタスク向けの環境変数を設定する
Cloud Shell で次のコマンドを入力して、このタスクで使用する環境変数を定義します。
- [BUCKET_NAME] をタスク 1 の最初のバケットの名前に置き換えます。
- [BUCKET_NAME_2] をグローバルに一意の任意の名前に置き換えます。
- Cloud Shell で、次のコマンドを実行して環境変数を作成します。
[BUCKET_NAME]
などのプレースホルダ文字列全体を、任意の一意の名前(MY_BUCKET_NAME_1=unique_bucket_name
など)に置き換えてください。
作成済みの認証情報ファイルを Cloud Shell に移動する
前のタスクで最初の Cloud IAM サービス アカウントを作成した際、JSON エンコードの認証情報ファイルをダウンロードしました。
- ローカル ワークステーションで、ダウンロードした JSON 鍵を確認し、ファイルの名前を
credentials.json
に変更します。 - Cloud Shell のツールバーでその他メニューのアイコン()をクリックし、その他のオプションを表示します。
- [アップロード] をクリックし、ローカルマシンにある
credentials.json
ファイルを選択します。 - [開く] をクリックします。
- [アップロード] をクリックして
credentials.json
を Cloud Shell VM に転送します。 - X アイコンをクリックすると、ファイル アップロードのポップアップ ウィンドウが閉じます。
- Cloud Shell で「ls」と入力して Enter キーを押し、ファイルがアップロードされたことを確認します。
2 番目の Cloud Storage バケットを作成し、Google Cloud コンソールで確認する
gcloud storage
コマンドと gsutil
コマンドを使用すると、コマンドラインから Cloud Storage を操作できます。このタスクでは、Cloud Shell で gcloud storage
コマンドを使用します。
- Cloud Shell で
gcloud storage
コマンドを使用して、バケットを作成します。
[承認] をクリックします(求められた場合)。
- Google Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックします。すでに Cloud Storage ページを開いている場合は、[更新] をクリックします。
バケットの一覧に 2 番目のバケットが表示されます。
gcloud コマンドラインを使用して 2 番目の仮想マシンを作成する
- Cloud Shell で次のコマンドを実行して、特定のリージョンのすべてのゾーンを一覧表示します。
- リストの最初の列からゾーンを選択します。Google Cloud のゾーン名は、リージョン名の後にハイフンと英字が付加された形式になっています。
タスク 1 で最初の VM に使用したものと同じゾーンを選択しても、別のゾーンを選択してもかまいません。
- 次のコマンドを実行して、選択したゾーンを環境変数に設定します。
[ZONE]
は、選択したゾーンに置き換えます。
- 次のコマンドを実行して、このゾーンをデフォルトのゾーンに設定します。
- 次のコマンドを実行して、VM の作成に使用する環境変数に名前を設定します。2 台目の VM は
second-vm
という名前にします。
- この新しい環境変数を使用して、このタスクで先ほど設定したデフォルト ゾーンに VM を作成し、VM 名を割り当てます。
- プロジェクト内の仮想マシン インスタンスを一覧表示します。
新しく作成した仮想マシンと最初の仮想マシンの両方が一覧に表示されます。
-
Google Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
gcloud compute instances list
の出力と同様に、作成した両方の仮想マシンが表示されます。 -
[外部 IP] 列を見てみましょう。最初に作成した VM の外部 IP アドレスがリンクとして表示されているはずです(必要に応じて、[情報パネルを非表示] ボタンをクリックして [外部 IP] 列を表示します)。この VM のファイアウォールは HTTP トラフィックを許可するように構成されているため、Google Cloud コンソールからリンクにアクセスできます。
-
最初に作成した VM の [外部 IP] 列にあるリンクをクリックします。ブラウザの新しいタブに「Connection refused」というメッセージが表示されます。このメッセージは、ファイアウォールで VM への HTTP トラフィック用のポートは開いているものの、そこでウェブサーバーが実行されていない場合に表示されます。開いたブラウザタブを閉じます。
gcloud コマンドラインを使用して、2 番目のサービス アカウントを作成する
- Cloud Shell で、次のコマンドを実行して新しいサービス アカウントを作成します。
- Google Cloud コンソールのナビゲーション メニュー()で、[IAM と管理] > [サービス アカウント] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
- Cloud Shell で次のコマンドを実行して、2 番目のサービス アカウントに
閲覧者
のロールを付与します。
GOOGLE_CLOUD_PROJECT
は、Cloud Shell に自動的に入力される環境変数で、現在のプロジェクトの ID に設定されています。
-
Google Cloud コンソールのナビゲーション メニュー()で、[IAM と管理] > [IAM] をクリックします。
-
閲覧者
ロールのメンバーとしてtest-service-account2
という名前の新しいサービス アカウントが表示されます。
タスク 3. Cloud Shell で Cloud Storage を操作する
ファイルを Cloud Shell にダウンロードして Cloud Storage にコピーする
- Google 提供の Cloud Storage バケットから Cloud Shell に猫の写真をコピーします。
- このファイルを先ほど作成した最初のバケットにコピーします。
- 最初のバケットから 2 つ目のバケットにファイルをコピーします。
- Google Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックし、作成した 2 つのバケットを選択して、どちらのバケットにも
cat.jpg
ファイルが含まれていることを確認します。
Cloud Storage オブジェクトのアクセス制御リストを設定する
-
Cloud Storage バケットにアップロードしたときに
cat.jpg
に割り当てられたデフォルトのアクセス制御リストを確認するには、次の 2 つのコマンドを実行します。 -
まず、Cloud Shell で次のコマンドを実行します。
出力は次の例のようになります(数値は異なります)。この出力は、プロジェクトのオーナー
、編集者
、閲覧者
のロールを持つ全員にアクセス権があること(オーナーと編集者はオーナー
アクセス権、閲覧者は読み取り
アクセス権)を示しています。
- 次に、オブジェクトへのアクセス権を非公開に変更するには、次のコマンドを実行します。
-
cat.jpg
に割り当てられた新しいアクセス制御リスト(ACL)を確認するには、次の 2 つのコマンドを実行します。
出力は次の例のようになります。
これで、オブジェクトの最初の作成者(ご使用のラボアカウント)のみがオーナー
アクセス権を持つようになりました。
Cloud Shell でサービス アカウントとして認証する
- Cloud Shell で次のコマンドを実行して、現在の構成内容を表示します。
出力は次の例のようになります。ゾーンには、タスク 2 で 2 番目の VM を作成したときに設定したゾーンが表示され、アカウントとプロジェクトには、Qwiklabs ラボの認証情報が表示されるはずです。
- Cloud Shell で次のコマンドを実行して、認証済みユーザーを最初のサービス アカウント(前のタスクで作成したもの)に変更します。その際、ローカルマシンにダウンロードしてから Cloud Shell にアップロードした認証情報(
credentials.json
)を使用します。
これで Cloud Shell が test-service-account
として認証されるようになります。
- このアクティブ アカウントを確認するには、次のコマンドを実行します。
出力は次の例のようになります。アカウントが test-service-account
サービス アカウントに設定されていることを確認できます。
- 次のコマンドを実行して、Cloud Shell で認証済みアカウントの一覧を確認します。
出力は次の例のようになります。
- 次のコマンドを実行して、現在のアカウント(
test-service-account
)では最初に作成したバケットのcat.jpg
ファイルにアクセスできなくなっていることを確認します。
タスクの前半でこのファイルへのアクセス権を持つユーザーをオーナーに制限したため、出力は次の例のようになります。
出力
- 現在のアカウント(
test-service-account
)で、2 番目に作成したバケットのcat.jpg
ファイルにアクセスできることを確認します。
このファイルへのアクセス権は制限されていないため、出力は次の例のようになります。
- ラボアカウントに切り替えるには、次のコマンドを実行します。[USERNAME] は、ラボの手順ページの左側にある [接続の詳細] に表示されているユーザー名に置き換えてください。
- 次のコマンドを実行し、[BUCKET_NAME] バケット(最初に作成したバケット)内の
cat.jpg
ファイルにアクセスできることを確認します。
出力は次の例のようになります。このラボアカウントは対象のバケットとオブジェクトの作成者であり、オブジェクト アクセス制御リスト(ACL)を非公開に変更したときもオーナー権限のままだったため、引き続きオブジェクトにアクセスできます。
- 認証されていないユーザーを含め、すべてのユーザーが最初の Cloud Storage バケットを読み取れるようにします。
-
Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックします。
-
最初に作成した、名前がプロジェクト ID になっている Storage バケットを選択します。
cat.jpg
ファイルは公開アクセスに設定されています。
-
[URL をコピー] をクリックしてリンクをコピーします。
-
シークレット モードの新しいブラウザタブを開き、コピーしたリンクをアドレスバーに貼り付けます。猫の画像が表示されます。このブラウザタブは開いたままにします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. Cloud Shell エディタの操作を確認する
このタスクでは、Cloud Shell コードエディタを使用してさまざまな操作を確認していきます。
Cloud Shell エディタを開く
- Cloud Shell で [エディタを開く] アイコン()をクリックしてから、[新しいウィンドウで開く] リンクをクリックします。
新しいタブが開き、Cloud Shell エディタが表示されます。Google Cloud コンソールと Cloud Shell は元のタブに残っています。Cloud Shell とコードエディタを切り替えるには、それぞれのタブをクリックします。
- Cloud Shell エディタでメニューをクリックし、[File] > [Open Folder] を選択します。
- [OK] をクリックします。
フォルダが開き、左側のペインにファイルとディレクトリの一覧が表示されます。
- Google Cloud コンソールのタブで [ターミナルを開く] をクリックし、Cloud Shell で次のコマンドを実行して
git
リポジトリのクローンを作成します。
Cloud Shell エディタ ウィンドウの左側のペインに orchestrate-with-kubernetes
フォルダが表示されます。
- Cloud Shell で、次のコマンドを実行してテスト ディレクトリを作成します。
Cloud Shell エディタ ウィンドウの左側のペインに test
フォルダが表示されます。
- Cloud Shell エディタで、
orchestrate-with-kubernetes
の左側にある矢印をクリックしてフォルダを展開します。
-
左側のペインで
cleanup.sh
ファイルをクリックします。Cloud Shell エディタ ウィンドウの右側のペインにファイルが開きます。 -
cleanup.sh
ファイルの最後の行に次のテキストを追加します。
- Cloud Shell で次のコマンドを実行してディレクトリを変更し、
cleanup.sh
の内容を表示します。
-
cat cleanup.sh
の出力に、追加したテキスト行が含まれていることを確認します。 -
Cloud Shell コードエディタで、
orchestrate-with-kubernetes
フォルダを右クリックし、[New File] を選択します。 -
ファイルに「index.html」と名前を付けます。
-
[Save] をクリックします。
-
右側のペインに、次の HTML テキストを貼り付けます。
- 文字列
REPLACE_WITH_CAT_URL
は、前のタスクの猫の画像の URL に置き換えます。URL は次のようになります。
-
ナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
-
first-vm の行で [SSH] ボタンをクリックします。
-
VM で開かれた SSH ログイン ウィンドウで、
nginx
ウェブサーバーをインストールします。
Y
」と入力して続行します。- Cloud Shell ウィンドウで、Cloud Shell エディタを使用して作成した HTML ファイルを仮想マシンにコピーします。
- VM の SSH ログイン ウィンドウで、ホーム ディレクトリから
nginx
ウェブサーバーのドキュメント ルートに対象の HTML ファイルをコピーします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
-
ナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
-
first-vm の [外部 IP] 列のリンクをクリックします。新しいブラウザタブが開き、猫の画像を含むウェブページが表示されます。
ラボを終了する
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
- 星 1 つ = 非常に不満
- 星 2 つ = 不満
- 星 3 つ = どちらともいえない
- 星 4 つ = 満足
- 星 5 つ = 非常に満足
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。