Amazon CloudWatch と Datadog で実現する IVRy の SLI/SLO 運用とパフォーマンス調査
Author : 渡部 龍一 (株式会社IVRy)
SLI/SLO の基本概念と IVRy における重要性
システムの可用性やパフォーマンスを確保するために、SLIとSLO の設定は非常に重要です。これらの指標を適切に運用することにより、サービス品質を維持し、ユーザー体験を向上させることができます。
IVRy のような音声通話を中心としたサービスでは、SLI/SLO の運用が特に重要です。なぜなら、IVRy はユーザーとのリアルタイムでのやり取りを提供しており、その品質が直接的にビジネスや顧客満足度に影響を与えるからです。例えば、通話の接続成功率はサービスの評価に直結します。このため、SLI/SLO の運用を通じて、サービスの可用性やパフォーマンスを維持することは、IVRy の運用における重要な要素です。
SLI/SLO 運用の重要性
SLI はサービスの健全性を測るための指標であり、SLO はその指標に基づいて達成すべき目標値を設定するものです。IVRy においては、例えば「通話成功率」や「通話品質」「API のレスポンス時間」などが SLI として設定され、これらを達成することが SLO として目指されています。これにより、IVRy はサービスレベルを明確に定義し、サービス品質を維持しながら運営することが可能となります。
SLI/SLO 運用の最大の利点は、サービスの状態を定量的に把握できる点です。Datadog などのツールを用いて、これらの指標をリアルタイムでモニタリングすることで、問題が発生した際には迅速に対応でき、顧客に対して一貫したサービス品質を提供し続けることができます。
IVRy におけるサービスレベルの重要性
IVRy のサービス特性上、特に重要なのは「リアルタイム性」と「信頼性」です。音声通話という特性上、遅延や不安定な接続は即座にユーザー体験に影響を与えます。IVRy が提供する音声通話や自動音声応答システム (IVR) は、24 時間 365 日稼働し続ける必要があり、障害が発生すると即座にユーザーに影響を及ぼします。
そのため、IVRy ではサービスの健全性を常に監視し、目標とするサービスレベルを確実に達成することが必須です。IVRy における SLI/SLO 運用は、サービスの品質を保つためだけでなく、ユーザー体験を向上させ、信頼性を高めるために不可欠な要素となっています。
Datadog を活用した SLI/SLO のモニタリング
Datadog は、リアルタイムでメトリクスを収集し、監視ダッシュボードを通じて可視化するツールです。IVRy では、Datadog を利用して、以下のような SLI/SLO を監視しています。(数値と指標については実際の値ではなく分かりやすくするために記載しています)
- 通話開始までのレイテンシー
通話開始までのレイテンシーは、ユーザーが通話を発信してから実際に通話が開始されるまでの時間を測定する重要な指標です。IVRy では、この指標の SLI とし「99.9% の通話でレイテンシーが ◯ ms 以下」という SLO を設定しています。この目標を達成することで、ユーザーにスムーズで快適な通話体験を提供しています。 - API レスポンスタイム
API のレスポンスタイムを測定し、SLO として「95% のリクエストは ◯ms 以内に応答する」という目標を設定しています。Datadog の APM 機能を活用し、レスポンスの遅延や障害を迅速に検知します。
DB のパフォーマンス劣化の原因調査に Amazon CloudWatch Database Insights が有用
IVRy では 2024 年 12 月ごろにリリースされた Amazon CloudWatch Database Insights といった機能も積極的に有効化して使用しています。CloudWatch Database Insights では Performance Insights と合わせて調査する際にシームレスな操作で大変便利です。
図は Amazon CloudWatch Database Insights の画面になります。この画面からはデータベースのメトリクスを見ながらロック競合、データベースのログ、スロークエリのログの確認といったことを行うことができます。例えば DB のメトリクスから負荷が高い時間にタイムウィンドウを合わせスロークエリの特徴を調べてたり実際の実行計画を確認するといったことができます。Datadog の APM で特定のエンドポイントが DB 操作がボトルネックとなって遅延していることがわかると DB レイヤーでの調査は現時点だと Amazon CloudWatch Database Insights だけで完結させることができています。
Amazon CloudWatch Container Insights with Enhanced Observability でコンテナ単位の状態把握
Amazon CloudWatch Database Insights に加えて Amazon CloudWatch Container Insights with Enhanced Observability も使用しています。例えば特定のアプリケーションでレイテンシー悪化が発生した際はクラスター全体のメトリクスを俯瞰してみたいタイミングが出てきます。その際には Amazon CloudWatch Container Insights with Enhanced Observability を確認することでクラスター単位、サービス単位、タスク単位、コンテナ単位のそれぞれでリソース状況について確認することができます。
コンテナごとのヘルスチェックの状態なども確認することができます。特定のコンテナだけ調子が悪くなっているケース (AZ 障害など) を確認することができ以降のドリルダウン時のヒントとして有効な情報を得ることができます。具体的な活用例としてはあるサービスで定期的に外形監視が落ちてしまうという事象が発生していました。サービス単位のメトリクスだけを監視しているとメトリクスが平均で表示されてそれぞれ問題が起きていなかったのですが、コンテナ単位で確認することで起動直後のコンテナがリソースを大量に使うために、API のレスポンスが遅延してしまっていたということが判明しました。
まとめ
本記事では、IVRy における SLI/SLO の運用方法と、その実現に向けた Datadog や Amazon CloudWatch Container Insights with Enhanced Observability、Amazon CloudWatch Database Insights の活用方法について詳しく紹介しました。IVRy のようなリアルタイム音声通話サービスにおいて、SLI と SLO は、サービス品質を維持し、顧客満足度を高めるために欠かせない指標であり、その運用はサービスの信頼性とパフォーマンス向上に直結します。
今後も、IVRy では SLI/SLO の運用をさらに進化させ、サービス品質を高めるために最適なツールと技術を活用し続けます。これにより、ユーザーの期待を超える信頼性の高いサービスを提供し、継続的な成長を目指していきます。
筆者プロフィール

渡部 龍一 (@ryuichi_1208)
株式会社IVRy SRE
2024 年 11 月に株式会社IVRy に入社。SRE としてサービスの信頼性に関わる領域全般で活動中。
AWS を無料でお試しいただけます