公開日:
SREとオブザーバビリティで実現する ユーザー体験重視のシステム運用|クラウドネイティブ時代の運用の新常識

1. クラウドネイティブ環境を巡る監視・運用の課題
コンテナ技術やオーケストレーションツール「Kubernetes(*1)」などを使ったクラウドネイティブ環境では、システムの構成要素が多くなり、コンテナの数が数百、数千、あるいは数万の規模に達することも珍しくありません。また、システム(アプリケーション)の機能が細かなサービスに分割されるので、サービスの依存関係が複雑に絡み合います。ゆえに、どのサービスの遅延が全体のパフォーマンスにどう影響するかが把握しにくくなります。
*1 Kubernetes:コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのオーケストレーションツール
こうした複雑なシステムの運用・監視を、インフラ監視を中心にした従来型の手法を使って行うことには限界があります。例えば、従来型の監視は、インフラの死活(稼働しているか否か)をチェックしたり、インフラリソース(CPUやメモリなど)の使用状況を監視し、リソースの使用率が一定のしきい値を超えた場合にはアラートを発報したりといったものでした。
ところが、コンテナなどを使ったシステムでは、たとえインフラが正常に動作していたとしても、アクセスの増大や機能(サービス)の追加、更新などによってパフォーマンスが急激に低下したり、予期せぬかたちでシステムがダウンしたりします。
また、監視のポイントを、いくつかのサービスに置いたとしても、サービスは増減を繰り返し、そのたびにサービスの依存関係が変化したりします。そのため、設定したポイントがすぐに意味をなさなくなる可能性も大きいといえます。

図1:コンテナ時代における運用監視のかたち
以上のような問題から、多数のサービスから構成された、複雑な構造のシステムの場合、障害の発生時にその原因を調査、特定するのに相当の工数と時間がかかるのが一般的です。というのも、全サービスから大量の動作記録(ログ)を収集したうえで、エラーの起きた処理の流れを、サービスを跨いだかたちでトレース(追跡)し、どの処理がボトルネックになっていたのかを突き止めなければならないからです。
こうした中で注目を集めているのが「SRE(Site Reliability Engineering)」と「オブザーバビリティツール」によって、システムの信頼性を維持・向上させるという手法です。
2. SREとオブザーバビリティとは何か
では、SRE、そしてオブザーバビリティとは、そもそも何なのでしょうか。以下に基礎的な概要を示します。
・SREとは
SREは、Googleが提唱するシステム運用の手法です。ソフトウェア・エンジニアリングによって、システムの信頼性を巡る課題を解決する取り組みであり、利用者の視点でシステムのサービス品質を確保することに力点が置かれています。言い換えれば、定義したSLO(サービスレベル目標)/SLI(サービスレベル指標)に基づいて、システムの品質を維持することがSREの中核となります。
先に触れたとおり、従来の運用・監視では、インフラの可用性や信頼性の確保を重視していましたが、SREでは「システムにエラーが発生していないか」「期待どおりの応答速度が出ているか」といったユーザー体験を優先します。従来型の運用・監視との主な違いは以下のとおりです。
重視する対象:
(従来型) インフラの可用性・信頼性
(SRE) エラーの有無、応答速度などのユーザー体験運用方針:
(従来型) 変化よりも安定を優先
(SRE) 開発スピードと信頼性の両立
また、従来の運用・監視では、システムにおける「変化」よりも「安定」を優先させていましたが、SREではソフトウェア開発(新規サービスの提供やサービス改定)のスピードと信頼性を両立させることを目指しています。
ソフトウェア開発のスピードと信頼性を両立させるために、SREでは障害からの素早い復旧や運用の自動化なども重要な取り組みとなります(図2)。

図2:SREのアプローチ
出典:クラウドネイティブ化で注目高まる「SRE」の考え方と実現方法 - Key Technology|CTC - 伊藤忠テクノソリューションズ(2023年2月)
・オブザーバビリティとは
オブザーバビリティは、インフラ、アプリケーション、ユーザー体験など、システムを構成するあらゆる要素を観測可能な状態にすることを意味します。ここでいう観測可能な状態とは、ソフトウェア(アプリケーション)の動作を示すログやインフラの状態を示すメトリクス(数値データ)などを収集し、分析・可視化できる状態を意味し、そうした可観測性をシステムに持たせるツールが、オブザーバビリティツールとなります。
オブザーバビリティツールと従来型の監視ツールとでは、できることの範囲が大きく異なります。
例えば、従来型の監視ツールでは、システム障害の要因をあらかじめ特定したうえで、そのポイントをしきい値ベースで監視し、問題を検知します。ゆえに、想定外の事態が起きてしまうと問題が検知できず、かつ、問題原因を特定するのも困難となります。
それに対し、オブザーバビリティツールでは、システム全体を監視しているので、想定外の事態が起きても、障害の発生を検知し、その原因を突き止めることができます。まとめると、オブザーバビリティツールでは一般的に下表の三つの機能を提供します。

表:オブザーバビリティの構成要素
3. オブザーバビリティツールの活用で起こりがちな失敗パターン
先に示した図1からもわかるとおり、SLO/SLIに基づくSREのサービス品質維持活動では、オブザーバビリティツールが一般に使われます。ただ、オブザーバビリティツールは、導入による成果がなかなか得られないことがあります。そうした失敗が起きるパターンとして、以下のようなものが挙げられます。
①収集データの活用不足
オブザーバビリティツールの導入に際しては、自社のシステムの品質や信頼性を高めるために、どのようなデータをどう使い、何を可視化するのが有効かを見定めることが大切です。その見定めがないと、収集したデータが有効に活用されないままで終わる可能性が大きくなります。また、収集したデータを速やかに分析して次のアクションを決定・遂行する体制を整えていないと、オブザーバビリティツール活用を実質的な成果につなげることが難しくなります。
②「アラート疲れ」による見逃し
すべての異常値に対してアラートを設定した場合、大量のアラートが発報されます。これにより、軽微な異常に気づけるようになりますが、一方で、即座に対応すべき重要度の高いアラートがどれかを判断するのが難しくなります。また、運用・監視の担当者が「アラート疲れ」の状態に陥り、重要なアラートが見逃されるリスクもあります。
③SLO/SLIの未定義・形骸化
実のところ、システムにおけるSLO/SLIを適切に定義するのはそれほど簡単ではありません。というのも、ユーザー体験に大きな影響を及ぼすポイントはシステムごとに異なるからです。ただし、SLO/SLIが未定義の状態にあると、サービス品質を維持・向上させるために何を行うべきかが曖昧なままとなります。また、SLO/SLIを定義して、その達成度を見えるようにしても、それを実際のアクションに速やかにつなげる体制、文化がなければ、SLO/SLIが形骸化することになります。
これらの失敗を避けるためにも、SLO/SLIを軸としたSREの実践が重要となります。これにより、オブザーバビリティツールをどのようにチューニングして、活用すべきかが明確になるといえます。
4. SREにおけるオブザーバビリティツール活用のポイント
では次に、上記のような失敗を避けながら、SREにおいてオブザーバビリティツールを有効に活用するためのポイントについてまとめます。
①ユーザー視点で意味あるSLO/SLIを設定する
SLO/SLIを定義するうえで最も大切なのは、ユーザー視点、あるいはユーザー体験起点で意味ある目標、指標を定めることです。
例えば、ECサイトであれば「検索→詳細表示→購入→決済→通知完了」というユーザーの動線において、どこでエラーや遅延が発生するとユーザー体験の悪化や離脱につながるのかを特定します。そのうえで、リクエストの成功率や遅延、データの反映速度といったメトリクスをSLIとして設定します。
ただし、SLIの対象をむやみに増やすと、運用の手間が膨らみます。したがって、「売上に直結する動線はどこか」「ブランド毀損につながる機能はどこか」といったビジネス要件とすり合わせながら、SLIを必要最小限のものに絞り込むことが大切です。
一方、SLOに関しては、留意すべきポイントとして「エラーバジェット」という概念があります。これは、開発と運用が対立しないための取り決めであり、システムの開発スピードと信頼性とのバランスを取るための考え方です。
開発チームはリリースのスピードを、運用チームは安定稼働をそれぞれ優先させるので、両者に軋轢が生じやすくなります。そこで、両者の間で「SLOの設定値を下回ったら新規リリースをいったんストップし、下回っていなければリリースを優先する」といった合意を形成しておくと、対立が避けられるようになります。
②メトリクス、ログ、トレース機能を包括的に活用する
SREを機能させるうえでは、オブザーバビリティツールの持つメトリクス、ログの収集・分析、トレースの機能を統合的に活用するのが有効です。
例えば、メトリクスの収集・分析の機能は、SLO/SLIの達成状況(設定値を下回っているか否か)を検知する仕組みとして活用できます。また、ログを収集・分析することで、SLO/SLIの設定値を下回った理由を明らかにできます。
加えて、トレース機能を使うことで、ユーザーのリクエストがどのような経路をたどったかを可視化し、エラーや遅延を引き起こした原因を速やかに特定できます。さらに、トレース機能を使って問題原因を特定した際には、そのボトルネックが、システム全体にどの程度の影響を及ぼしているかをメトリクスの統計データによって把握できます。
このようにして、オブザーバビリティツールの持つ機能を連携させることで、問題の検知から原因特定、影響範囲の把握までを迅速に行うことができるのです。
③アラートの質を高める
SLO/SLIを定義することで、発報されたアラートを重要なものと、そうでないものとに区分けできるようになります。言い換えれば、SLO/SLIの定義によって「対応が必要なもの」だけをアラート化し、ノイズを減らして重要なアラートへの対応に集中して取り組める環境が築けるということです。
アラートの質を高めるうえでは、アラートの抑制も有効です。例えば「特定の状態が一定期間持続した場合にのみアラートを発報する(=瞬間的な値の跳ね上がりでは発報しない)」「アラートの重複を排除する」「アラートをグルーピングして、まとめて通知する」といったかたちです。
加えて最近では、AI機能を搭載したオブザーバビリティツールが登場しており、そうしたツールを使うことで、アラートの棚卸しをAIに定期的に行わせたり、重要なアラートをAIに選ばせたりすることが可能になります。
④「ポストモーテム」の文化を作る
SREの実践においては、開発と運用の組織全体でシステム障害を学びの機会として捉え、障害の発生後に原因・対応内容・再発防止策を振り返る「ポストモーテム(事後分析)」の文化を築くことも重要です。もちろん、組織の文化を変えることは簡単ではありません。ゆえにまずは、SREチームの中で小さな成功体験を作り、それを横展開して組織全体への定着を図ることが現実的です。
一方、SREの取り組みでは同じシステム障害を再発させないことも大切ですが、それには、再発防止のプロセスを仕組み化するのが有効です。
例えば、再発の予兆を知らせるアラートを見逃さないようにする仕組みや、アラートの発生時に即座に参照すべきダッシュボードの構築、再発前に自動的に予防措置を講じる仕組みなどを構築します。こうした仕組みづくりやナレッジの蓄積・共有により、開発と運用の組織全体における障害対応能力を底上げすることができます。
5. SREの実践を支える“プラスα”のツールとは
SREを実践するうえでは、オブザーバビリティツールのほかにも、いくつかの有効なツールがあります。CTCでもこれらを組み合わせたSRE支援を行っていますが、まずは代表的なツールを紹介します。
まずは「インシデント管理ツール」です。同ツールを使うことで、インシデントとその対応記録を管理し、適切なメンバーへの通知・エスカレーションが可能になります。これにより、インシデント対応ワークフローの標準化や対応スピードの向上が実現されます。
また「IaC(Infrastructure as Code)」を実現するツールも、SREの実務を効率化するうえで有効です。IaCツールを使うことで、これまで人が手作業で行ってきたインフラの構築・運用の定型的な作業をコードによって自動化できます。加えて、先に触れた障害再発の予防措置も自動化できます。これにより、システムの運用を担っているSRE担当者の業務負担が軽減されるほか、開発組織のメンバーがシステムの運用、さらにはSREの実務を担うことも可能になります。
オブザーバビリティツールを含めて、SREの実践で使うツールを選ぶうえでは、ツール間のデータ連携が簡単に行えるかどうかがポイントになります。ツールのインテグレーションができていないと、ツール間のデータの受け渡しに人が介在しなければならなくなります。
また、SREのためのツールを選ぶ際には、以下の2点も留意すべきです。
AIの機能が搭載されているか。また、どのような用途でAI機能が使えるか。
人が迷わずに操作できる、わかりやすいUI設計になっているか。
なお、CTCでは、SREを取り入れた運用支援サービス「C-Native SRE Support Service」を提供しています。これは、クラウドネイティブ環境に求められる運用の自動化やオブザーバビリティツールを用いながら、ユーザー体験をベースとしたSLO/SLIの設定をはじめ、設定したSLO/SLIに基づいた監視の設計、サービスデスクの設置やツールを使った運用自動化プロセスの導入支援、さらには障害対応の振り返りと運用の改善などを行うサービスです。本サービスのご利用により、お客様のシステムにおけるサービス品質・信頼性の維持・向上を実現していくことが可能になります。お気軽にお問い合わせください。
当サイトに掲載されている情報(記事、資料、動画、テンプレート等)については、その正確性および妥当性の確保に努めておりますが、ご利用に際しては、利用者ご自身の責任においてご判断ください。なお、個別の事情に応じては、専門家へのご相談を含め、適切な対応をご検討いただくことを推奨いたします。






























