- SLI(サービスレベル指標)とは?
- SLI(サービスレベル目標)が必要な理由
- SLIに設定する項目
- まとめ
1.SLI(サービスレベル指標)とは?
SLI(サービスレベル指標)とは「Service Level Indicator」の略であり、サービスの稼働状況を数値化した指標のことを表します。
また、そのSLIはSLO(サービスレベル目標)を達成しているか測定するための指標になります。例えば、月間99.95%利用可能であると定めた場合、SLIがその値を超える必要があるということになるということです。
SLIを設定する際に注意すべき点は、SLIに採用するメトリクスの数です。多過ぎてしまうと重要な指標に対応することが疎かになってしまう可能性があります。一方、少な過ぎてしまうと、重要な指標を検証できなくなってしまいます。そのため、適切な数のメトリクスをSLIとしましょう。
設定する一般的な項目としては「可用性」「エラー率」「システムスループット」「リクエストのレイテンシ」が挙げられます。
この項目については後ほど詳しく解説していきます。
2.SLI(サービスレベル目標)が必要な理由
SLIは、主にSREを実践する際に使用されます。
SLIが実際にはどのように使用されるのかをGoogle社は以下のように述べています。
”サービスレベル指標(SLI)はサービスの動作を直接測定したもので、システムのプローブが成功した頻度として定義されます。
Google は、システムが過去 1 週間に SLO 内で実行されているかどうかを評価する際に、SLI を調べてサービス可用性の割合を取得します。指定された SLO を下回る場合は、問題が生じているため、なんらかの方法でシステムの可用性を高める必要があります。
たとえば、別の都市でもう 1 つのサービスのインスタンスを実行したり、2 つのサービスの間で負荷分散を行ったりします。サービスの信頼度を把握するには、SLI として成功したクエリと失敗したクエリの割合を測定できる必要があります。
システムをゼロから構築する場合は、SLI と SLO を必ずシステム要件に含めてください。すでに本番環境システムがあり、SLI と SLO を明確に定義していない場合は、それを定義する作業が最優先になります”
引用:https://cloud.google.com/blog/ja/products/devops-sre/sre-fundamentals-sli-vs-slo-vs-sla
つまり、SLO内でシステムが実行されているか測り、評価するために設定されるのがSLIと言うことになります。
もし、SLIがなければ「どこに問題が発生しているのか?」「何を改善していけば良いのか?」が分からなくなってしまいます。
サービスの信頼性を高水準に保ち運用していくために、SLI・SLOをシステム要件に含め運用していきましょう。
3.SLIに設定する項目
①可用性
システムが稼働可能な時間の比率のことです。
システムが稼働する全体時間から、アクセス過多や予期せぬサーバー障害によりシステムにアクセスできない時間を差し引いた時間の比率を指します。
②エラー率
ユーザーからのリクエスト全体に対するエラーの比率のことです。
一般的に、ユーザーから送信されたHTTPリクエストに対し、サーバエラーを示す「 5xx」 が返された比率を指します。
③システムスループット
単位時間あたりに処理可能なデータ量のことです。
「Mbps」などという単位で1秒あたりのデータ量をビット数で表すことが一般的です。
④リクエストのレイテンシ
ユーザーからのリクエストに対して、レスポンスを返すまでにかかった所要時間のことです。
レスポンスの遅延が大きいことはユーザーのページ離脱に繋がりやすいため、レイテンシを小さく保つためのアプリケーションの改善が必要になります。
4.まとめ
本記事では「SLIとは何なのか?」「なぜSLIが必要なのか?」について解説しました。
SLIを設定し、サービスの重要な箇所に問題が発生しているかを適切に評価することで、問題点の改善に繋げていきましょう。
本記事がSLIのより良い理解に繋がれば幸いです。
当社は、SREのプロフェッショナル集団としてSREの組織形成から運用支援までを行っています。まずは何をどのように監視し、改善すべきか貴社の状況をヒアリングさせていただければと思います。