運用性@AWS¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
02. 監視¶
ビジネス成果の監視¶
▼ ビジネス成果の監視とは¶
ビジネス成果に関するメトリクスを監視する。
例えば、BIツール (例:Redash、Metabase、Google Cloud Looker、など) を採用し、DBから取得したデータ (例:取引履歴) をメトリクスとする。
▼ DevOps成果¶
以下のメトリクスをDevOps成果の指標として、QuickSightで監視する。
Code三兄弟のデータポイントを収集し、メトリクスとして分析している。
- リポジトリ別コード変更量 (コミッター、コード変更数)
- アプリケーション別のMTTR
- 変更失敗率 (デプロイの失敗頻度)
- CIの状態 (失敗、成功、実施頻度)
- CDの状態 (失敗、成功、実施頻度)
- CI/CD全体の状態 (失敗、成功、実施頻度)
システムの監視¶
▼ システムの監視とは¶
システムに関するメトリクスを監視する。
▼ ユーザー定義の名前空間¶
名前空間ユーザー定義としたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) |
---|---|---|---|
<任意のプレフィクス>LogMetrics |
カウント | ログステータスの検出数をデータポイントとする。メトリクスと検出ルールはフィルターパターンで作成できる。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
▼ ALB¶
名前空間をALBとしたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) |
---|---|---|---|
HTTPCode_ELB_4XX_Count |
カウント | ALBが原因で返信した400 系ステータスをデータポイントとする。 |
・統計 : 期間内合計数 ・期間 : 24 時間・閾値 : >= 1 |
HTTPCode_ELB_5XX_Count |
カウント | ALBが原因で返信した500 系ステータスをデータポイントとする。 |
・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
HealthyHostCount |
カウント | ターゲットグループ内の正常なターゲットの数をデータポイントとする。 | |
UnHealthyHostCount |
カウント | ターゲットグループ内の異常なターゲットの数をデータポイントとする。 | |
HTTPCode_TARGET_4XX_Count |
カウント | ターゲットグループ内のターゲットが400 ステータスを返信した数をデータポイントとする。 |
・統計 : 期間内合計数 ・期間 : 24 時間・閾値 : >= 1 |
HTTPCode_TARGET_5XX_Count |
カウント | ターゲットグループ内のターゲットが500 ステータスを返信した数をデータポイントとする。 |
・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
RejectedConnectionCount |
カウント | ターゲットグループ内のターゲットから接続拒否された数をデータポイントとする。 | |
TargetConnectionErrorCount |
カウント | ターゲットグループ内のターゲットに対する通信でエラーが発生した数をデータポイントとする。 | |
TargetTLSNegotiationErrorCount |
カウント | ターゲットグループ内のターゲットへのHTTPSプロトコルでエラーが発生した数をデータポイントとする。 |
▼ API Gateway¶
名前空間をAPI Gatewayとしたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) |
---|---|---|---|
IntegrationLatency |
マイクロ秒 | API Gatewayがリクエストをバックエンドにルーティングしてから、バックエンドからレスポンスを受信するまでの時間をデータポイントとする。 | |
Latency |
マイクロ秒 | API Gatewayがクライアントからリクエストを受信してから、クライアントにこれを返信するまでの時間をデータポイントとする。 | |
4XXError |
カウント | 400 系ステータスの数をデータポイントとする。 |
・統計 : 期間内合計数 ・期間 : 24 時間・閾値 : >= 1 |
5XXError |
カウント | 500 系ステータスの数をデータポイントとする。アプリケーションが停止してしまうようなインシデントを検出することに適する。 |
・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
▼ EC2¶
名前空間をEC2としたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) |
---|---|---|---|
CPUUtilization |
% | EC2で使用されているCPU使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
MemoryUtilization |
% | EC2で使用されているメモリ使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
StatusCheckFailed_Instance |
カウント | インスタンスのインスタンスステータスの失敗数をデータポイントとする。インスタンスが停止してしまうようなインシデントに適する。反対に、インスタンスが正常に稼働していて、プロセスが停止しているようなインシデントを検出することには不適である。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html#types-of-instance-status-checks |
|
StatusCheckFailed_System |
カウント | インスタンスのシステムステータスの失敗数をデータポイントとする。AWSの障害によるインシデントの検出に適する。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html#types-of-instance-status-checks |
似たメトリクスにStatusCheckFailed_System
やStatusCheckFailed_Instance
がある。
これらはAWS側が原因のメトリクスであるため、ユーザーが監視する必要はない。
▼ ECS¶
名前空間をECSクラスターまたはECSサービスとしたメトリクスの監視ポリシーは以下の通りである。
ClusterNameディメンションとServiceNameディメンションを使用して、ECSクラスターとECSサービスに関するメトリクスを区別できる。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) | 補足 |
---|---|---|---|---|
CPUUtilization |
% | ECSクラスターまたはサービスで使用されているCPU使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
|
MemoryUtilization |
% | ECSクラスターまたはサービスで使用されているメモリ使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
|
RunningTaskCount |
カウント | 稼働中のECSタスク数をデータポイントとする。 | ECSタスク数の増減の遷移から、デプロイのおおよその時間がわかる。 |
▼ ElastiCache Redis¶
名前空間をRedisとしたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) | 補足 |
---|---|---|---|---|
BytesUsedForCache |
バイト数 | Redisで使用されているメモリ使用サイズをデータポイントとする。 | ・統計 : 期間内合計サイズ ・期間 : 5 分・閾値 : >= 8 GB |
|
CPUUtilization |
% | ノードのCPU使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
|
Evictions |
カウント | 空きサイズを確保するために削除されたRedisのキー数をデータポイントとする。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
|
SwapUsage |
バイト数 | ストレージ上のスワップ領域の使用サイズをデータポイントとする。 | ・統計 : 期間内最大サイズ ・期間 : 5 分・閾値 : >= 50 GB |
使用可能な最大メモリを超えると、Redisはストレージ上のスワップ領域を使用する。 https://zenn.dev/dehio3/scraps/710a9714ce9496 |
▼ RDS (Aurora)¶
名前空間をRDS (Aurora) としたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) | 補足 |
---|---|---|---|---|
BlockedTransactions |
カウント | 秒当たりトランザクションの拒否の回数をデータポイントとする。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
|
CPUUtilization |
% | Aurora DBインスタンスのCPU使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
|
DatabaseConnections |
カウント | Aurora DBインスタンスへの接続数をデータポイントとする。失敗した接続も含まれている可能性があり、実際よりはやや多めに計測される。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 400 |
クライアントがDBにリクエストしている時間帯がわかるため、メンテナンスウィンドウを実施時間の参考になる。 |
Deadlocks |
カウント | 秒当たりデッドロック平均数をデータポイントとする。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
|
EngineUptime |
秒 | インスタンスの起動時間をデータポイントとする。 | ダウンタイムの最低発生時間の参考になる。 | |
DMLLatency |
マイクロ秒 | Aurora DBインスタンスに対するDML系クエリの遅延秒数をデータポイントとする。 | ・統計 : 期間内最大サイズ ・期間 : 5 分・閾値 : >= 2 GB |
|
FreeableMemory |
バイト数 | Aurora DBインスタンスの使用できるメモリの最大空きサイズをデータポイントとする。 | ・統計 : 期間内最大サイズ ・期間 : 5 分・閾値 : >= 2 GB |
|
FreeLocalStorage |
バイト数 | Aurora DBインスタンスの使用できるローカルストレージの最大空きサイズをデータポイントとする。 | ・統計 : 期間内最大サイズ ・期間 : 5 分・閾値 : >= 10 GB |
DBインスタンスのローカルストレージは、一時テーブルやログの保管に使用される。 |
LoginFailures |
カウント | Aurora DBへのログインの失敗回数をデータポイントとする。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |
▼ RDS (非Aurora)¶
名前空間をRDS (非Aurora) としたメトリクスの監視ポリシーは以下の通りである。
RDSのコンソール画面にも同じメトリクスが表示されるが、単位がMByteであり、CloudWatchメトリクスと異なることに注意する。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) | 補足 |
---|---|---|---|---|
CPUUtilization |
% | DBインスタンスのCPU使用率をデータポイントとする。 | ・統計 : 期間内平均使用率 ・期間 : 5 分・閾値 : >= 80 |
|
DatabaseConnections |
カウント | DBインスタンスへの接続数をデータポイントとする。失敗した接続も含まれている可能性があり、実際よりはやや多めに計測される。 | ・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 400 |
クライアントがDBにリクエストしている時間帯がわかるため、メンテナンスウィンドウを実施時間の参考になる。 |
FreeableMemory |
バイト数 | DBインスタンスの使用できるメモリサイズをデータポイントとする。 | ・統計 : 期間内最大サイズ ・期間 : 5 分・閾値 : >= 2 GB |
▼ S3¶
名前空間をS3としたメトリクスの監視ポリシーは以下の通りである。
メトリクス名 | 単位 | 説明 | アラート条件例 (合致したら発火) |
---|---|---|---|
5xxErrors |
カウント | S3バケットが原因で返信した500 系ステータスをデータポイントとする。 |
・統計 : 期間内合計数 ・期間 : 5 分・閾値 : >= 1 |