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 の識別に使用できる情報を探します。
Bank of Anthos をインストールしたプロジェクトの [Anthos Service Mesh] ページに移動します。
このビューの上部には、アプリケーションのサービスの現在のステータスと、アラートと SLO のインジケーターが表示されます。たとえば、SLO のないサービスの数を確認できます。現在はすべてのサービスで SLO が設定されていません。また、[ステータス] 列にはすべてのサービスが黒丸のインジケーターで表示されます。いずれかのサービスに対してそのポインタの上にポインタを置くと、サービスに SLO が設定されていないことがわかります。
ledgerwriter
の 99% レイテンシの値(ミリ秒単位)を確認します(下にスクロールしないと見えない場合もあります)。この指標は、100 件のリクエストのうち 1 件で、このレベルの遅延が発生したことを意味します。この値は次のセクションで使用します。
SLO の作成
次に、サービスのレイテンシ SLI に対して SLO を作成します。サービスがエラー バジェットを超過した場合の動作を確認するには、前のセクションで表示した情報に基づいて、しきい値を意図的に低く設定します。実際の本番環境サービスの場合、ユーザーがアプリを快適に利用するために必要なしきい値のレイテンシ値を出しておく必要があります。
Anthos Service Mesh のテーブルビューで、[legerwriter] をクリックしてサービスの概要ページに移動します。
[サービスのステータス] で [SLO を作成] をクリックします。
[SLI Type] リストで、[レイテンシ] を選択します。
デフォルトのリクエスト ベースの評価方法のままにして、[続行] をクリックします。
[レイテンシのしきい値] を
10 ms
などの任意の低い値(たとえば、先ほど確認した 99% レイテンシの値よりもかなり低い値)に設定し、[続行] をもう一度クリックします。[コンプライアンス期間] で、[期間タイプ] を
Rolling
、[期間の長さ] を1 Day
に設定します。[SLO Goal] で、コンプライアンス ターゲットを
90%
に設定します。Anthos Service Mesh は、この値を使用して、この SLO のエラー バジェットを計算します。つまり、指定したレイテンシのしきい値を超えるリクエストの最大割合(%)が確認できます。[プレビュー] には、直近の 1 日の SLO のパフォーマンスが表示されます。[続行] をクリックします。[Name your SLO] セクションには、新しい SLO のデフォルト名が提示されます。推奨のデフォルト値をそのまま使用することも、新しい名前を指定することもできます。SLO を作成し、
ledgerwriter
の [健全性] ページに移動するには、[SLO を作成] をクリックします。
プルダウン矢印をクリックすると、SLO の詳細が表示されます。設定に応じて、SLO がエラー バジェットの範囲外になっていることがわかります。このビューから SLO を編集または削除することもできます。
SLO とアラート インジケーターの再確認
サービスの概要ページで、戻る矢印をクリックしてテーブルビューに戻ります。ここで、SLO が設定されていないサービス数が 1 つ減り、SLO がエラー バジェットの範囲外のサービスが 0 でなくなったことがわかります。
lengerwriter までスクロールすると、隣接するインジケーターが警告を示すオレンジの三角に変わります。そのインジケーターの上にポインタを置くと、サービスの信頼性を調べるように指示されます。インジケーターをクリックすると、サービスの [健全性] ページに戻ります。SLO の詳細を確認できます。トポロジビューでも、同じインジケーターがサービスに表示されます。
デプロイをさらに試す
このデプロイメントでは、GKE Enterprise でまだやるべきことが残っています。次のセクションでクリーンアップを行う前に、別のチュートリアルを試すか、Google Cloud で Bank of Anthos のデプロイを引き続き試すこともできます。
クリーンアップ
Bank of Anthos アプリケーションの機能を詳しく確認できたら、Google Cloud で作成したリソースをクリーンアップして、今後料金が発生しないようにします。
オプション 1。プロジェクトを削除できます。ただし、プロジェクトを保持する場合は、オプション 2 を使用してデプロイを削除できます。
オプション 2。現在のプロジェクトを保持する場合は、
terraform destroy
を使用してサンプル アプリケーションとクラスタを削除します。
プロジェクトを削除する(オプション 1)
課金が発生しないようにする最も簡単な方法は、このチュートリアル用に作成したプロジェクトを削除することです。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
デプロイを削除する(オプション 2)
この方法では、Bank of Anthos アプリケーションとクラスタは削除されますが、プロジェクトは削除されません。Cloud Shell で次のコマンドを実行します。
インストール スクリプトをホストするディレクトリに移動します。
cd bank-of-anthos/iac/tf-anthos-gke
サンプルとクラスタを削除します。
terraform destroy
プロンプトが表示されたら、プロジェクト ID を入力します。
再デプロイを計画している場合は、始める前にの説明に従って、すべての要件を満たしていることを確認します。
次のステップ
GKE Enterprise のドキュメントには、他にもさまざまな機能が説明されています。
その他のチュートリアルを試す
Secure GKE Enterprise で Bank of Anthos の GKE Enterprise セキュリティ機能を確認する。
Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。
GKE Enterprise の詳細
技術概要で GKE の詳細を確認する。
設定ガイドで、本番環境で GKE Enterprise を設定する方法を学習する。
Anthos Service Mesh のドキュメントで、Anthos Service Mesh をさらに活用する方法を確認する。