EC運営者が売上時間帯のサイトダウンを30秒で検知する監視設計
月商3,000万円のECサイト運営者が、決済ページの不具合・在庫表示の異常・画像CDN障害をMiterlで30秒〜1分以内に検知する仕組み。SLA設計と売上時間帯の重点監視を解説します。
想定するチームと前提条件
月商3,000万円のBtoC向けセレクトショップ「D社EC」を想定したシナリオです。Shopify ベースのフロントに、自社開発のクーポン・在庫連携APIを組み合わせた構成。社内は店長 + 運営4名 + 業務委託のエンジニア1名。売上の70%が金土日の20-23時に集中する典型的なEC構造です。
「サイトが落ちる = 売上が止まる」のため、5分の障害が10〜30万円の機会損失につながります。Miterlで売上時間帯のサイト・決済・在庫を多層的に監視し、本物の機会損失をほぼゼロまで削減した運用です。
EC運営でクリティカルな3つの故障
1. 決済ページ(チェックアウト)の不具合
商品をカートに入れて決済画面に進もうとしたら500エラー、というパターン。フロントの商品ページは生きているため、ホームページ監視では絶対に検知できない最悪の障害です。
2. 在庫表示の異常
在庫切れ商品が「在庫あり」と表示され、注文を受けてしまう/逆に在庫があるのに「在庫切れ」と表示される事故。Webhook 経由の在庫同期APIが詰まると発生します。
3. 画像CDNの一斉障害
商品画像がすべて表示されない状態。Cloudinary / imgix などの障害だけでなく、自社のCDNトークン期限切れでも起きます。SNSで一気に拡散されるため、検知速度がとくに重要。
Miterl で組んだ「売上時間帯重点監視」
通常時間帯(5分間隔)
- トップページ、カテゴリ一覧、人気商品ページ × 10件のHTTP監視
- 決済ページ(カート→チェックアウト遷移先)のキーワード監視
- 在庫API
/api/v1/inventory/healthのHTTP監視 - 画像CDN代表URLのHTTP監視
売上ピーク時(金土日 19-24時、1分間隔に切替)
リリース集中監視(Release Mode)を使って、ピーク時間帯だけ監視を1分間隔に上げる設定にしています。Miterl のリリースモードはWebhookで起動できるため、cron で自動切り替えしています。
# crontab: 毎週金曜19時にリリースモード起動(5時間 = 24時まで)
0 19 * * 5 curl -X POST https://miterl.com/api/v1/webhooks/release-mode/$TOKEN \
-H "Content-Type: application/json" \
-d '{"duration_hours": 5, "interval_seconds": 60}'
土日も同様に19時起動するcronを設定。終了は duration_hours 経過で自動的に通常監視に戻ります。
決済ページのキーワード監視
Shopifyの決済ページHTMLには、正常時に必ず「カートに進む」「お会計」などのテキストが含まれます。これをキーワード監視のmust_containで常時チェックすることで、500エラーや空画面の事故を即座に検知。
逆に「Internal Server Error」「お探しのページは見つかりません」などをmust_not_containとしても登録し、二重チェックしています。
SLA を 99.9% に設定する判断
D社では Miterl の SLA 機能で月次目標を 99.9% に設定。この水準は「月の許容ダウンタイムが約43分」という意味です。
| SLA水準 | 月の許容ダウンタイム | 推奨フェーズ |
|---|---|---|
| 99% | 約7時間18分 | 立ち上げ初期 |
| 99.5% | 約3時間39分 | 安定運用フェーズ |
| 99.9% | 約43分 | 売上規模が出てきた段階 |
| 99.99% | 約4分 | エンタープライズ・金融 |
D社のフェーズでは 99.9% が適切。SLA違反の事前アラート(残り許容ダウンタイム 25%未満で通知)が発火することで、月末に「あと10分のダウンで違反」というギリギリの判断ができるようになりました。
デプロイ時の自動メンテナンス(売上時間帯外)
EC運営の鉄則として「売上時間帯にデプロイしない」を運用ルールにしていますが、緊急パッチ対応時は Webhook でメンテナンスを発令します。
# 緊急パッチ前
curl -X POST https://miterl.com/api/v1/webhooks/maintenance/$TOKEN/start \
-d '{"duration_hours": 1, "name": "Hotfix: Cart bug"}'
# パッチ反映 + 動作確認
./scripts/hotfix_deploy.sh
./scripts/cart_smoke_test.sh
# 解除
curl -X POST https://miterl.com/api/v1/webhooks/maintenance/$TOKEN/end
月次レポートでマーケに数字を渡す
毎月のMiterl月次PDFレポートを、マーケティングチームのKPI会議資料に組み込んでいます。
- 先月のサイト総稼働時間
- ピーク時間帯のレスポンスタイム平均値
- インシデント件数と原因(5XX系 vs CDN系 vs DB系)
「先月のCDN障害で機会損失見込みが約42万円」みたいな数字を出せると、CDN契約を上位プランに見直す判断もデータドリブンで進みます。
関連リンク
- Miterl ドキュメント — リリースモード/SLAの詳細
- Webhook によるメンテナンス制御 — CI/CD 連携の実例
- 料金プラン — Plus / Pro の SLA レポート機能
- 導入ユースケース一覧 — 他業種の運用シナリオ