
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Configure HTTP and health check firewall rules
/ 10
Create a NAT configuration using Cloud Router
/ 10
Create a custom image for a web server
/ 20
Configure an instance template and create instance groups
/ 20
Configure the Application Load Balancer (HTTP)
/ 20
Stress test the Application Load Balancer (HTTP)
/ 20
クラウド エンジニアは、フォールト トレラントで信頼性が高く、可用性と費用対効果に優れたシステムをクラウド上に構築することを目標としています。そのために、需要の急増に対応できる、自動スケーリング可能なソリューションを設計する必要があります。アーキテクチャ設計の過剰なプロビジョニングを避け、組織のコスト最適化に貢献することも必須です。全体として、設計の過程では次のことを検討します。
AWS では、さまざまな Elastic Compute Cloud(EC2)リソースのグループが需要の変化に自動的に対応できるようにスケーリング計画を作成しました。これを実現するため、次のものを使用しました。
次に、高可用性とスケーラビリティを備えたソリューションの構築に役立つ、Google Cloud のさまざまなサービスについて説明します。
アプリケーション ロード バランシング(HTTP/HTTPS)は、世界中の Google のポイント オブ プレゼンス(POP)で Google ネットワークのエッジに実装されています。アプリケーション ロードバランサ(HTTP/HTTPS)に向かうユーザー トラフィックは、ユーザーに最も近い POP に入った後、Google のグローバル ネットワークでロードバランスされて、十分な処理能力がある最も近いバックエンドに送られます。
このラボでは、次の図に示すようにアプリケーション ロードバランサ(HTTP)を構成します。さらに、ロードバランサのストレステストを実施して、グローバル ロード バランシングと自動スケーリングを実証します。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
このタスクでは、インスタンスへのヘルスチェック トラフィックを許可するようにファイアウォール ルールを構成します。
ヘルスチェックでは、アプリケーション ロードバランサ(HTTP)のどのインスタンスが新しい接続を受け取れるかを確認します。ロード バランシング インスタンスへのヘルスチェック プローブは、範囲 130.211.0.0/22 と 35.191.0.0/16 のアドレスから送信されます。ファイアウォール ルールで、この接続を許可する必要があります。
ヘルスチェックを許可するファイアウォール ルールを作成します。
Cloud コンソールのナビゲーション メニュー()で、[VPC ネットワーク] > [ファイアウォール] をクリックします。
ICMP、internal、RDP、SSH のファイアウォール ルールがすでにあります。
各 Google Cloud プロジェクトには、default ネットワークとこれらのファイアウォール ルールが始めから用意されています。
[ファイアウォール ルールを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | fw-allow-health-checks |
ネットワーク | default |
ターゲット | 指定されたターゲットタグ |
ターゲットタグ | allow-health-checks |
ソースフィルタ | IPv4 範囲 |
送信元 IPv4 範囲 | 130.211.0.0/22 と 35.191.0.0/16 |
プロトコルとポート | 指定したプロトコルとポート |
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、Cloud Router インスタンスを作成し、VM インスタンスのアウトバウンド インターネット接続を有効にするように Cloud NAT ゲートウェイを構成します。
タスク 3 で設定する Google Cloud VM バックエンド インスタンスには、外部 IP アドレスは構成されません。
代わりに Cloud NAT サービスを設定して、これらの VM インスタンスが Cloud NAT からのみ送信トラフィックを送信し、ロードバランサを介して受信トラフィックを受信するようにします。
Google Cloud コンソールのタイトルバーにある検索フィールドに「ネットワーク サービス」と入力し、[ネットワーク管理ツール] セクションの [ネットワーク サービス] をクリックします。
[ネットワーク サービス] ページで、[ネットワーク サービス] の横にある固定アイコンをクリックします。
[Cloud NAT] をクリックします。
[開始] をクリックして NAT ゲートウェイを構成します。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
ゲートウェイの名前 | nat-config |
ネットワーク | default |
リージョン |
[Cloud Router] をクリックし、[新しいルーターを作成] を選択します。
[名前] に「nat-router-us1」と入力します。
[作成] をクリックします。
[Cloud NAT ゲートウェイの作成] で、[作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、ロードバランサのバックエンド用のカスタム ウェブサーバー イメージを作成します。
Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] をクリックします。
[インスタンスを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | webserver |
リージョン | |
ゾーン |
[OS とストレージ]、[変更] の順にクリックします。
[詳細構成を表示] をクリックします。
[削除ルール] で [ブートディスクを保持] を選択します。
[選択] をクリックします。
[ネットワーキング] をクリックします。
[完了] をクリックします。
[作成] をクリックします。
Apache2 サーバーのデフォルトのページが表示されます。
ソフトウェアは正常にインストールされましたが、このイメージを使用して新しい VM を作成しても、新しく起動した VM では Apache ウェブサーバーが実行されていません。起動時に自動的に開始するよう Apache サービスを設定するには、以下のコマンドを使用します。その後、設定が動作することをテストして確認します。
Google Cloud コンソールで、webserver を選択して、その他の操作()をクリックします。
[リセット] をクリックします。
確認ダイアログで [リセット] をクリックします。
インスタンスが削除されても、ブートディスクが削除されないことを確認します。
左側のペインで [イメージ] をクリックします。
[イメージを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | mywebserver |
ソース | ディスク |
ソースディスク | webserver |
[作成] をクリックします。
次のステップではこのイメージを使用して、マネージド インスタンス グループで使用できるインスタンス テンプレートを定義します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、インスタンス テンプレートを構成し、ロード バランシング ウェブサーバーのマネージド インスタンス グループを作成します。
マネージド インスタンス グループは、インスタンス テンプレートを使用して同一インスタンスのグループを作成します。これらを使用して、アプリケーション ロードバランサ(HTTP)のバックエンドを作成します。
インスタンス テンプレートは、VM インスタンスとマネージド インスタンス グループの作成に使用できる API リソースです。このテンプレートでは、マシンタイプ、ブートディスク イメージ、サブネット、ラベル、その他のインスタンス プロパティを定義します。
ナビゲーション メニューで、[Compute Engine] > [ヘルスチェック] の順にクリックします。
[ヘルスチェックを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(指定されたオプションを選択) |
---|---|
名前 | http-health-check |
プロトコル | TCP |
ポート | 80 |
[作成] をクリックします。
マネージド インスタンス グループを
ナビゲーション メニューで [Compute Engine] > [インスタンス グループ] の順にクリックします。
[インスタンス グループを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | us-1-mig |
インスタンス テンプレート | mywebserver-template |
ロケーション | マルチゾーン |
リージョン |
[自動スケーリング] で、[インスタンスの最小数] に「1
」、[インスタンスの最大数] に「2
」をそれぞれ入力します。
[Autoscaling signals] で [CPU 使用率] をクリックします。
[シグナルタイプ] で、[HTTP ロード バランシングの使用率] を選択します。
[HTTP ロード バランシング使用率の目標値] に「80
」と入力します。
[完了] をクリックします。
[初期化期間] をクリックして、「60
」秒に設定します。
[自動修復] で、[ヘルスチェック] に「http-health-check
」と入力します。
[http-health-check (TCP)
] を選択します。
[初期遅延] に「60
」と入力します。
これは、VM の起動を初期化した後でヘルスチェックを開始するまでに、インスタンス グループが待機する時間です。このラボでは 5 分も待機する必要はないため、1 分に設定します。
[作成] をクリックします。
ダイアログ ウィンドウで [確定] をクリックします。
[インスタンス グループを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | notus-1-mig |
インスタンス テンプレート | mywebserver-template |
ロケーション | マルチゾーン |
リージョン | |
[自動スケーリング] > [インスタンスの最小数] | 1 |
[自動スケーリング] > [インスタンスの最大数] | 2 |
[自動スケーリング シグナル] > [シグナルタイプ] | HTTP ロード バランシングの使用率 |
HTTP ロード バランシング使用率の目標値 | 80 |
初期化期間 | 60 |
[ヘルスチェック] で [http-health-check (TCP)] を選択します。
[初期遅延] に「60
」と入力します。
[作成] をクリックします。
ダイアログ ウィンドウで [確定] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
両方のリージョンで VM インスタンスが作成されていることを確認します。
このタスクでは、ネットワーク図に示すように、2 つのバックエンド(
ホストとパスのルールで、トラフィックの転送方法を決定します。たとえば、動画のトラフィックと静的トラフィックをそれぞれ異なるバックエンドに転送できます。ただし、このラボではホストとパスのルールは構成しません。
[フロントエンドの構成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
プロトコル | HTTP |
IP バージョン | IPv4 |
IP アドレス | エフェメラル |
ポート | 80 |
[完了] をクリックします。
[フロントエンドの IP とポートを追加] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
プロトコル | HTTP |
IP バージョン | IPv6 |
IP アドレス | 自動割り当て |
ポート | 80 |
[完了] をクリックします。
バックエンド サービスによって、受信トラフィックが、接続されている 1 つ以上のバックエンドに振り向けられます。各バックエンドは、1 つのインスタンス グループと、処理できる容量に関する追加のメタデータで構成されます。
[バックエンドの構成] をクリックします。
[バックエンド サービスとバックエンド バケット] > [バックエンドサービスを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(指定されたオプションを選択) |
---|---|
名前 | http-backend |
バックエンド タイプ | インスタンス グループ |
インスタンス グループ | us-1-mig |
ポート番号 | 80 |
分散モード | レート |
最大 RPS | 50 |
容量 | 100 |
[完了] をクリックします。
[バックエンドを追加] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(指定されたオプションを選択) |
---|---|
インスタンス グループ | notus-1-mig |
ポート番号 | 80 |
分散モード | 使用率 |
バックエンドの最大使用率 | 80 |
容量 | 100 |
1
」に指定します。[LB_IP_v4]
、[LB_IP_v6]
と呼びます。[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、アプリケーション ロードバランサ(HTTP)のストレステストを行い、トラフィックがバックエンド サービスに転送されることを確認します。
http://[LB_IP_v4]
に移動します。[LB_IP_v4]
はロードバランサの IPv4 アドレスに置き換えてください。新しい VM を作成して、アプリケーション ロードバランサ(HTTP)に対する負荷をシミュレートします。負荷が高くなるとトラフィックが両方のバックエンドに分散されるかどうかを確認します。
Google Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] の順にクリックします。
[インスタンスを作成] をクリックします。
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | stress-test |
リージョン |
|
ゾーン | リージョン内のゾーン |
[シリーズ] で [E2] を選択します。
[マシンタイプ] で、e2-micro(2 vCPU、1 コア、1 GB のメモリ)を選択します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このラボでは、
AWS では、一般に次のようにして高可用性アーキテクチャを実現しています。
Google Cloud では、次のサービスを使用してワークロードで高可用性(HA)を実現できます。
また、リージョンまたはグローバル ロード バランシング(外部ロードバランサの場合)から選択できます。適切なロードバランサを選択するには、トラフィックの種類(TCP / UDP、HTTP と HTTPS、SSL など)も考慮する必要があります。
ラボでの学習が完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Qwiklabs から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバック、ご提案、修正が必要な箇所については、[サポート] タブからお知らせください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください