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

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

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 の設計をご覧ください。

目標

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

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

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

費用

Anthos のサンプル デプロイを使用すると、Anthos のサブスクリプションを利用していない限り、料金ページに記載された Google Cloud での Anthos の従量課金制が適用されます。

また、Compute Engine VM やロードバランサの費用など、Anthos のサンプル デプロイの実行中に発生した他の Google Cloud の費用もお客様の負担となります。デプロイの Google Cloud Marketplace ページで、これらすべてのリソースの月額(見積もり)を確認できます。

追加費用の発生を避けるため、チュートリアルを終了した後、またはデプロイを試した後に、クリーンアップすることをおすすめします。Anthos のサンプル デプロイは本番環境での使用を想定していないため、コンポーネントをアップグレードすることはできません。

始める前に

このチュートリアルは、Anthos のチュートリアルを試すのフォローアップです。このチュートリアルを始める前に、このページの指示に従ってプロジェクトを設定し、Anthos のサンプル デプロイをインストールします。

SLI の特定

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

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

  1. 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 サービスリストのスクリーンショット

デプロイをさらに試す

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

クリーンアップ

Anthos サンプル デプロイの探索が完了したら、Google Cloud で作成したリソースをクリーンアップして、今後料金が発生しないようにすることができます。以降のセクションでは、リソースを削除または無効にする方法を説明します。

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

  • オプション 2。(試験運用版)既存の空のプロジェクトで作業している場合は、このチュートリアルの手順をすべて元に戻して、Deployment を削除することから始めることをおすすめします。

  • オプション 3。(試験運用版)Google Cloud に精通しているか、クラスタに既存のリソースがある場合は、このチュートリアルで作成したリソースを手動でクリーンアップすることをおすすめします。

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

  1. Cloud Console で [リソースの管理] ページに移動します。

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

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

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

このアプローチでは、Deployment Manager を使用して作成内容を元に戻します。デプロイでエラーが発生した場合でも、この方法で元に戻すことができます。

  1. Cloud Console の [ナビゲーション] メニューで、[Deployment Manager] をクリックします。

  2. デプロイを選択し、[削除] をクリックします。

  3. もう一度 [削除] をクリックして確定します。

  4. デプロイでエラーが発生した場合でも、選択して削除できます。

  5. [削除] をクリックしても削除されない場合は、最後の手段として、削除するがリソースは保持する方法を試します。Deployment Manager でリソースを削除できない場合は、これらのリソースをメモして、後で手動で削除する必要があります。

  6. Deployment Manager で削除を完了するまで待ちます。

  7. (一時的な手順)[ナビゲーション] メニューで、[ネットワーク サービス] > [負荷分散] をクリックし、anthos-sample-cluster1 クラスタによって作成された転送ルールを削除します。

  8. (省略可)https://source.cloud.google.com/<project_id> に移動します。名前に config-repo が含まれているリポジトリが存在する場合は、それを削除します。

  9. (省略可)デプロイ時に作成したサービス アカウントとそのすべての IAM ロールを削除します。

手動でクリーンアップを行う(オプション 3)

このアプローチでは、Google Cloud Console からリソースを手動で削除します。

  1. Cloud Console の [ナビゲーション] メニューで、[Kubernetes Engine] をクリックします。

  2. クラスタを選択して [削除] をクリックし、もう一度 [削除] をクリックして確定します。

  3. Cloud Console のナビゲーション メニューで、[Compute Engine] をクリックします。

  4. 踏み台サーバーを選択して、[削除] をクリックし、もう一度 [削除] をクリックして確定します。

  5. オプション 2 のステップ 7 と 8 を行います。

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

次のステップ

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

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

  • Anthos のセキュリティ確保で、Anthos サンプル デプロイを使用して Anthos のセキュリティ機能について調べます。

  • Google Cloud のリファレンス アーキテクチャ、図、チュートリアル、ベスト プラクティスについて詳細を確認する。Cloud Architecture Center を確認する。

Anthos の詳細

アンケートに答える

このチュートリアルでの作業が終了したら、アンケートにご回答ください。チュートリアルで発生した問題についてお聞かせください。フィードバック送信のためのアンケートにご協力いただき、感謝します。

ありがとうございます。

Anthos チーム