surfup

物流SaaS

夜間の手動リリースに代わり、15分でデプロイ

物流 · DevOps · Kubernetes · CI/CD · 監視
プロジェクトの背景

顧客は1日に数万件の注文を扱う物流サービスです。夕方やセール時に負荷が集中し、提携する小売チェーンには厳格なSLAを約束していました。インフラは場当たり的に拡大し、VPSが分散し、設定は「各サーバーに」残り、wikiの手順に沿って手作業でデプロイしていました。リリースのたびに夜間作業と停止が発生し、ピークのたびに注文を失うリスクがありました。年末前のセールでプラットフォームが4時間停止し、提携先へ補償を支払った事故を機に相談がありました。

01 · 課題

事業を止めずにプラットフォームを管理可能なインフラへ移行します。Infrastructure as

Code、自動デリバリー、コンテナ化とオーケストレーション、可観測性、予測可能な障害復旧を整備します。創業者は成功条件を「営業時間内に、ダウンタイムなしで、SSHアクセスを持つ人に頼らずデプロイすること」と定義しました。

02 · 実施した作業

実績のある順序で進めました。まずコンテナと再現可能な環境を整え、次にデリバリーを自動化し、その後でオートスケーリング付きのオーケストレーションを導入しました。

  • インフラを監査しました。サービスと依存関係の図、ピーク負荷の測定、障害につながりやすい手作業の一覧を作成しました。
  • サービスをコンテナ化しました。ビルド方法を統一し、設定をコードから環境変数へ移し、同一構成のdev/stage/prodを用意しました。
  • Terraformでインフラをコード化しました。環境はリポジトリから展開し、クラウド事業者のコンソールでの手動変更は禁止しました。
  • GitLab CIパイプラインを構築しました。テストとイメージのビルドを自動化し、stageには即時デプロイ、prodにはレビュー後にボタンでデプロイします。ロールバックは一操作で行えます。
  • オートスケーリング付きのKubernetesへ移行しました。夕方やセールのピークには、緊急の手作業ではなくプラットフォームが追加インスタンスを起動します。
  • レイテンシ、エラー、トラフィック、飽和度というゴールデンシグナルを中心に監視とアラートを導入し、当番とエスカレーション手順も整えました。
  • バックアップと災害復旧を設定しました。復旧手順を定め、stageで障害訓練を行い、実際のMTTRを測定しました。

最も価値があったのは技術ではなく、責任の置き方を変えたことです。インフラは「SSH権限を持つ人」に依存しなくなりました。デプロイは再現可能で、環境はコードから復元でき、最初の顧客が連絡してくる前にダッシュボードで障害が見えます。これにより停止は大惨事ではなく、明確な手順と測定可能な復旧時間を伴う日常のインシデントになります。

03 · 結果

経済効果は3つです。オートスケーリングを使い、ピーク用の能力を常時ウォーム状態にするのをやめたことで、インフラ費用を直接32%削減。夜間デプロイに使っていたチームの時間も節約しました。そして最も重要なのは、ピーク時の売上をインシデントなしで守れたことです。大手小売チェーンの顧客は、新インフラで最初のセールを無事に終えた直後に契約を更新しました。

04 · 主な成果
指標結果
リリースのデプロイ手作業で3〜4時間 → 自動で15分
リリース頻度月2〜3回 → ほぼ毎日
プラットフォーム稼働率97.8% → 99.95%
ピーク負荷停止リスク → 人手を介さないオートスケーリング

指標はケースの原資料から転記しています。期間は出典に記録がある場合に記載しています。

5か月後の成果
リリースのデプロイ(以前は手作業で3〜4時間)
15分
プラットフォーム稼働率(以前は97.8%)
99.95%
障害後の復旧時間(以前は2〜4時間)
20–30分
インフラコスト
−32%
導入前と導入後
リリースのデプロイ時間、分
導入前3〜4時間
導入後15分
低いほど良い
復旧時間(MTTR)、分
導入前2〜4時間
導入後20〜30分
低いほど良い
プラットフォーム停止時間
導入前2.2%
導入後0.05%
低いほど良い

範囲の上限(4時間、30分)を表示。停止率 = 100% − 稼働率。

デリバリーパイプライン
  1. 01コミット
  2. 02テスト
  3. 03イメージのビルド
  4. 04ステージング即時
  5. 05本番環境レビュー後にボタンで実行
今後の展開

次のサイクルでインフラを発展させる領域:

  • FinOpsの実践。コスト異常をアラートし、チーム別に費用を透明化します。
  • GitOpsの導入。prodの状態をリポジトリに記述し、変更はpull request経由に限定します。
  • マルチリージョン化。重要サービスを複製し、クラウド事業者の障害への耐性を高めます。
お客様の声
以前、リリースは夜更かしとコーヒー、そして祈ることでした。今はボタンを押して15分。新インフラで障害のない最初のセールを迎え、会社全員で祝いました。

— 物流サービスの技術責任者

最新の資料

すべての資料

SurfUpの実践的な記事とガイド。

ガイド · 10分

「〜とは」ページとAI回答:失われたクリックか、需要の低下か

ある銀行の解説セクションは、需要が13%減る中で訪問を24%失いました。AIブロックに奪われたクリックと需要の低下の見分け方と、その測定方法。

読む
ガイド · 8分

Googleのアップデート後にトラフィックが減った

減少の原因がGoogleのアップデート、季節性、サイトの不具合のどれかを確認する方法。2026年のアップデート年表、6つの質問による確認、最初の14日間の計画を紹介します。

読む
ガイド · 9分

需要が減ったのか、サイトが負けたのか:流入とWordstatの突き合わせ

預金の需要は75%減、流入は37%減。カードは需要−35%、流入−63%。流入と需要を突き合わせ、市場の変化をサイトのせいにしない方法。

読む