チュートリアル: GKE Enterprise でサービスを管理する


Anthos Service Mesh は、GKE Enterprise のユーザーが信頼性の高いマイクロサービス ベースのアプリケーションをモニタリング、管理するためのツールを提供します。このチュートリアルでは、Google Cloud で Bank of Anthos のサンプル デプロイを使用して、サービスレベル目標(SLO)を定義する方法を説明し、Anthos Service Mesh のサービス管理機能の一部を紹介します。このサンプルでは、GKE クラスタ、サービス メッシュ、複数のマイクロサービスからなる Bank of Anthos アプリケーションを実際の GKE Enterprise ハンズオン環境にデプロイします。

SLO とは

Google のサイト信頼性エンジニアリング(SRE)に関する書籍によると、

「サービスを適切に管理するには、そのサービスで実際にどのような動作が重要なのか、またそうした動作をどのように測定して評価するのかについて理解することが不可欠です。Google はこの目的のため、ユーザーが内部 API を使用するか一般公開されたプロダクトを使用するかにかかわらず、求められているレベルのサービスを定義したうえでユーザーに提供したいと考えています。」

Google SRE チームは、サービスレベル指標(SLI)、サービスレベル目標(SLO)、サービスレベル契約(SLA)を使用して、作業に役立つ指標の構造化とガイドを行います。SLI は、レイテンシや可用性など、サービスのパフォーマンスを定量的に測定する尺度です。SLO は、SLI によって測定されるサービスレベルの目標値(「この事象の発生率は x% とすること」などと定義)です、Anthos Service Mesh を使用すると、サービスに合わせて SLO を簡単に定義、調整できます。適切な SLI と SLO の特定に必要な情報を提供し、サービスが SLO を満たしていない場合に通知します。

Anthos Service Mesh での SLO と SLI の詳細については、SLO の概要SLO の設計をご覧ください。

目標

このチュートリアルでは、GKE Enterprise の Anthos Service Mesh を使用してサービスを管理するために、次のタスクを行います。

  • サービスのサービスレベル指標(SLI)を特定する

  • サービスレベル目標(SLO)を使用して予期しない動作をモニタリングする

費用

Bank of Anthos アプリケーションをデプロイすると、料金ページに記載された Google Cloud 上の GKE Enterprise の従量課金制が適用されます。ただし、すでにサブスクリプションを購入している場合を除きます。

また、Compute Engine VM やロードバランサの費用など、Bank of Anthos アプリケーションの実行中に発生した他の Google Cloud の費用もお客様の負担となります。

追加費用の発生を避けるため、チュートリアルを終了した後、またはデプロイを試した後に、クリーンアップすることをおすすめします。

準備

このチュートリアルは、GKE Enterprise のチュートリアルを試すのフォローアップです。チュートリアルを始める前に、このページの手順に沿ってプロジェクトを設定し、Bank of Anthos をデプロイしてください。

SLI の特定

Anthos Service Mesh を使用すると、SLI の収集と SLO の定義が単純でわかりやすいタスクになります。この例では、最初に Bank of Anthos の ledgerwriter サービスの SLO を定義します。

まず Anthos Service Mesh を使用して、サービスの SLI の識別に使用できる情報を探します。

  1. Bank of Anthos をインストールしたプロジェクトの [Anthos Service Mesh] ページに移動します。

    [Anthos Service Mesh] ページに移動

    このビューの上部には、アプリケーションのサービスの現在のステータスと、アラートと SLO のインジケーターが表示されます。たとえば、SLO のないサービスの数を確認できます。現在はすべてのサービスで SLO が設定されていません。また、[ステータス] 列にはすべてのサービスが黒丸のインジケーターで表示されます。いずれかのサービスに対してそのポインタの上にポインタを置くと、サービスに SLO が設定されていないことがわかります。

  2. ledgerwriter99% レイテンシの値(ミリ秒単位)を確認します(下にスクロールしないと見えない場合もあります)。この指標は、100 件のリクエストのうち 1 件で、このレベルの遅延が発生したことを意味します。この値は次のセクションで使用します。

SLO の作成

次に、サービスのレイテンシ SLI に対して SLO を作成します。サービスがエラー バジェットを超過した場合の動作を確認するには、前のセクションで表示した情報に基づいて、しきい値を意図的に低く設定します。実際の本番環境サービスの場合、ユーザーがアプリを快適に利用するために必要なしきい値のレイテンシ値を出しておく必要があります。

  1. Anthos Service Mesh のテーブルビューで、[legerwriter] をクリックしてサービスの概要ページに移動します。

  2. [サービスのステータス] で [SLO を作成] をクリックします。

  3. [SLI Type] リストで、[レイテンシ] を選択します。

  4. デフォルトのリクエスト ベースの評価方法のままにして、[続行] をクリックします。

  5. [レイテンシのしきい値] を 10 ms などの任意の低い値(たとえば、先ほど確認した 99% レイテンシの値よりもかなり低い値)に設定し、[続行] をもう一度クリックします。

  6. [コンプライアンス期間] で、[期間タイプ] を Rolling、[期間の長さ] を 1 Day に設定します。

  7. [SLO Goal] で、コンプライアンス ターゲット90% に設定します。Anthos Service Mesh は、この値を使用して、この SLO のエラー バジェットを計算します。つまり、指定したレイテンシのしきい値を超えるリクエストの最大割合(%)が確認できます。[プレビュー] には、直近の 1 日の SLO のパフォーマンスが表示されます。[続行] をクリックします。

  8. [Name your SLO] セクションには、新しい SLO のデフォルト名が提示されます。推奨のデフォルト値をそのまま使用することも、新しい名前を指定することもできます。SLO を作成し、ledgerwriter の [健全性] ページに移動するには、[SLO を作成] をクリックします。

プルダウン矢印をクリックすると、SLO の詳細が表示されます。設定に応じて、SLO がエラー バジェットの範囲外になっていることがわかります。このビューから SLO を編集または削除することもできます。

Anthos Service Mesh サービスの稼働状態のスクリーンショット

SLO とアラート インジケーターの再確認

  1. サービスの概要ページで、戻る矢印をクリックしてテーブルビューに戻ります。ここで、SLO が設定されていないサービス数が 1 つ減り、SLO がエラー バジェットの範囲外のサービスが 0 でなくなったことがわかります。

  2. lengerwriter までスクロールすると、隣接するインジケーターが警告を示すオレンジの三角に変わります。そのインジケーターの上にポインタを置くと、サービスの信頼性を調べるように指示されます。インジケーターをクリックすると、サービスの [健全性] ページに戻ります。SLO の詳細を確認できます。トポロジビューでも、同じインジケーターがサービスに表示されます。

SLO 警告が表示された Anthos Service Mesh サービスリストのスクリーンショット

デプロイをさらに試す

デプロイでは、GKE Enterprise でまだ他にもやるべきことが残っています。次のセクションでクリーンアップ手順を行う前に、別のチュートリアルを試すか、Google Cloud で Bank of Anthos のデプロイを引き続き試すこともできます。

クリーンアップ

Bank of Anthos アプリケーションの探索が完了したら、Google Cloud で作成したリソースをクリーンアップして、今後料金が発生しないようにすることができます。

  • オプション 1。プロジェクトを削除できます。 ただし、プロジェクトを保持する場合は、オプション 2 を使用してデプロイを削除できます。

  • オプション 2。現在のプロジェクトを保持する場合は、terraform destroy を使用してサンプル アプリケーションとクラスタを削除します。

プロジェクトを削除する(オプション 1)

課金が発生しないようにする最も簡単な方法は、このチュートリアル用に作成したプロジェクトを削除することです。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

デプロイを削除する(オプション 2)

このアプローチでは、Bank of Anthos アプリケーションとクラスタが削除されますが、プロジェクトは削除されません。Cloud Shell で次のコマンドを実行します。

  1. インストール スクリプトをホストするディレクトリに移動します。

    cd bank-of-anthos/iac/tf-anthos-gke
    
  2. サンプルとクラスタを削除します。

    terraform destroy
    
  3. プロンプトが表示されたら、プロジェクト ID を入力します。

再デプロイを計画している場合は、始める前にセクションの説明に従って、すべての要件が満たされていることを確認します。

次のステップ

GKE Enterprise のドキュメントには他にもさまざまな機能が用意されています。

その他のチュートリアルを試す

  • Secure GKE Enterprise で Bank of Anthos の GKE Enterprise セキュリティ機能を確認する。

  • Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud Architecture Center をご覧ください。

GKE Enterprise の詳細