arrow_back

Container-Optimized OS: Qwik Start

参加 ログイン

Container-Optimized OS: Qwik Start

30分 クレジット: 1

GSP144

Google Cloud セルフペース ラボ

概要

Container-Optimized OS は、Docker コンテナの実行向けに最適化された Compute Engine VM のオペレーティング システム イメージで、Google Cloud Platform でのコンテナ実行に Google が推奨する OS です。このラボでは、Cloud Console や CLI を使用して Container-Optimized インスタンスを作成します。

Container-Optimized OS にはコンテナ関連の依存関係がすべてプリインストールされているため、トラフィックやワークロードの変化に応じてクラスタをスケールアップ、スケールダウンし、費用を最適化して信頼性を向上させることが可能です。

Container-Optimized OS は、Kubernetes Engine や Cloud SQL などのさまざまな GCP サービスを実行し、Google のコンテナ ワークロード向けソリューションとして機能します。

設定

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

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、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
	

Container-Optimized OS のメリット

  • コンテナをすぐに起動: Container-Optimized OS インスタンスには、Docker ランタイムと cloud-init がプリインストールされています。Container-Optimized OS インスタンスを使用すると、VM の作成と同時に Docker コンテナを起動できます。ホスト上での設定は必要ありません。

  • 攻撃される範囲が減少: Container-Optimized OS はフットプリントが小さいので、インスタンスへの攻撃可能範囲が減少します。

  • デフォルトで遮断: Container-Optimized OS インスタンスには、遮断されたファイアウォールやその他のセキュリティ設定がデフォルトで組み込まれています。

  • 自動アップデート: Container-Optimized OS インスタンスは、毎週のアップデートをバックグラウンドで自動的にダウンロードするように構成されています。そのため、再起動するだけで最新のアップデートを使用できます。

Container-Optimized OS のユースケース

ほとんどの Docker コンテナは、Container-Optimized OS を使って実行できます。次のような状況では、Compute Engine インスタンスのオペレーティング システムとして Container-Optimized OS の使用を検討してください。

  • 最小限の設定で Docker コンテナや Kubernetes のサポートが必要である。

  • フットプリントが小さく、コンテナ向けにセキュリティが強化されたオペレーティング システムが必要である。

  • Compute Engine インスタンスでの Kubernetes の実行テストと検証が行われたオペレーティング システムが必要である。

Container-Optimized OS の機能

Compute Engine では、インスタンスの作成とコンテナ ワークロードの実行に使用できる複数の公開 VM イメージが提供されています。一部の公開 VM イメージには、最小限のコンテナ用に最適化されたオペレーティング システムがあり、それには Docker、rkt、Kubernetes の最新バージョンがプリインストールされています。次の公開イメージ ファミリーは、特にコンテナを実行するために設計されたものです。

  • Google の Container-Optimized OS
  • 付属: Docker、Kubernetes
  • イメージ プロジェクト: cos-cloud
  • イメージ ファミリー: cos-stable
  • CoreOS
  • 付属: Docker、rkt、Kubernetes
  • イメージ プロジェクト: coreos-cloud
  • イメージ ファミリー: coreos-stable
  • Ubuntu
  • 付属: LXD
  • イメージ プロジェクト: ubuntu-os-cloud
  • イメージ ファミリー: ubuntu-1604-lts
  • Windows
  • 付属: Docker
  • イメージ プロジェクト: windows-cloud
  • イメージ ファミリー: windows-1709-core-for-containers

本番環境でイメージにデフォルトで付属していない特定のコンテナツールやテクノロジーを実行する必要がある場合は、そのテクノロジーを手動でインストールします。

Console を使用してインスタンスを作成する

Container-Optimized OS と選択した Docker コンテナを備えた Compute Engine インスタンスを実行する手順は次のとおりです。

[Compute Engine] > [VM インスタンス] をクリックし、[インスタンスを作成] をクリックします。

b4ddd59640deb64e.png

新しいインスタンスの作成時に構成できるパラメータは多数あります。このラボでは、次のパラメータを使用します。

名前

containerized-vm

ゾーン

us-central1-a

マシンタイプ

1 個の vCPU

これは (n1-standard-1), 3.75 GB RAM のインスタンスです

コンテナ

[この VM インスタンスにコンテナ イメージをデプロイする] をオンにします

コンテナ イメージ

nginx

ブートディスク

Container-Optimized OS(デフォルト値)

ファイアウォール

[HTTP トラフィックを許可する] をオンにします

a13734dc1caaae0d.png

[作成] をクリックします。

Docker コンテナを備える Container-Optimized OS インスタンスが起動します。

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

[進捗状況を確認] をクリックして、実行したタスクを確認します。

コンソールを使用してインスタンスを作成する

Docker 環境を確認する

containerized-vm の行で [SSH] をクリックして、containerized-vm インスタンスに SSH 接続します。

利用可能なすべての Docker コンテナを一覧表示します。

sudo docker ps

出力例:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
c62d762ed91b        nginx               "nginx -g 'daemon ..."   15 minutes ago      Up 15 minutes                           containerized-vm

VM インスタンス コンソールで、containerized-vm インスタンスの外部 IP をクリックすると新しいタブが開きます。ここには、デフォルトの Nginx ウェブページが表示されます。

d9b38e4997e18aa9.png

このウェブページは、新しいブラウザ ウィンドウやタブで http://EXTERNAL_IP に外部 IP を追加することでも表示できます。

CLI を使用したインスタンスの作成

ここで、Cloud Shell コマンドラインを使用して Container-Optimized OS インスタンスを作成します。

Cloud Shell で次のコマンドを入力して、Google Cloud Platform でインスタンスの作成に使用できる Container-Optimized OS イメージを確認します。

gcloud compute images list \
    --project cos-cloud \
    --no-standard-images

gcloud compute instances create コマンドに --image フラグと --image-project フラグを指定して、cos ノードイメージ インスタンスを作成します。

 gcloud beta compute instances create-with-container containerized-vm2 \
     --image cos-stable-72-11316-136-0 \
     --image-project cos-cloud \
     --container-image nginx \
     --container-restart-policy always \
     --zone us-central1-a \
     --machine-type n1-standard-1

上記の例では、cos-stable-72-11316-136-0 は使用可能な cos リリースの 1 つです。cos-stable ファミリーの利用可能な最新のイメージで VM インスタンスのイメージを置き換えてください。一時的にインスタンスを作成してみる場合は、--preemptible フラグを使用することをおすすめします。

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

[進捗状況を確認] をクリックして、実行したタスクを確認します。

CLI を使用してインスタンスを作成する

Cloud Shell で次のコマンドを入力してファイアウォール ルールを作成します。これにより、インターネットからの HTTP トラフィックが許可され、VPC 内のすべての内部トラフィックが有効になります。

gcloud compute firewall-rules create allow-containerized-internal\
  --allow tcp:80 \
  --source-ranges 0.0.0.0/0 \
  --network default

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

[進捗状況を確認] をクリックして、実行したタスクを確認します。

インターネットからの HTTP トラフィックを許可するファイアウォール ルールを作成する

この手順では、containerized-vm2 インスタンスの外部 IP アドレスが必要です。このアドレスは、Cloud Platform Console の [VM インスタンス] ページで確認できます。

ブラウザで外部 IP アドレスを入力して、nginx が実行されていることを確認します。

http://[YOUR_EXTERNAL_IP_ADDRESS]

Welcome to nginx!」と表示されます。

お疲れさまでした

41ab6fa0d099216d.png

クエストの終了

ベースライン: デプロイと開発でクエストを続行してください。クエストとは学習パスを構成する一連のラボで、完了すると成果が認められて上のバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントからリンクすることができます。このラボを終えてこちらのクエストに登録すると、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご覧ください

次のステップと詳細情報

このラボは、Google Cloud が提供する多くの機能を体験できる「Qwik Start」と呼ばれるラボシリーズの一部です。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

Google Cloud Training & Certification

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

マニュアルの最終更新日: 2019 年 3 月 4 日
ラボの最終テスト日: 2019 年 3 月 4 日

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