評価・監視・ガードレール

カナリアリリースとは|1%に絞ると気づくのに7万件、被害は12件で済んだ

カナリアリリースで流す割合はどう決めるのか小さくすると何が起きるのか気づけない悪化はあるのか

失敗率が2%から3%へ悪化した新版を、1%にだけ流しました。気づくまでに7万500件かかりました。

その間に余分に失敗したのは12件です。50%に流すと8500件で気づけますが、失敗は44件になります。

この記事の要点

  • 1%に流すと7万500件で気づく
  • そのときの被害は12件
  • 50%なら8500件で気づく
  • 被害は44件に増える

1%に絞ると気づくのに7万件、被害は12件で済んだ

流す割合を下げると、気づくまでの総件数は増えます。その間に傷つく件数は逆に減ります。

カナリアリリースは、新版を一部にだけ流して様子を見る出し方です。出典もこの形を定義しています。

その定義は変更を部分的かつ期間を限って配置し、それを評価することというものです。割合と期間の2つを決める必要があります。

計測に使った条件

現行の失敗率を2%として、失敗率の違う新版を用意しました。差が統計の目安を超えた時点で気づいたものとします。

種を変えて40回まわし、中央値を取りました。気づくまでの総件数と、その間に新版側で余分に失敗した件数を並べます。

割合を動かす

text
新版の失敗率  流す割合  気づくまでの総件数  うち新版に流れた件数  新版側の失敗
2.5%          1%                   522000件                 5126件           30件
2.5%          5%                    91000件                 4549件           29件
2.5%          20%                   42500件                 8315件           41件
2.5%          50%                   33500件                16841件           82件

3.0%          1%                    70500件                  719件           12件
3.0%          5%                    29000件                 1469件           16件
3.0%          20%                   11000件                 2223件           24件
3.0%          50%                    8500件                 4252件           44件

4.0%          1%                    31000件                  297件            8件
4.0%          5%                     7000件                  349件            9件
4.0%          20%                    3500件                  725件           15件
4.0%          50%                    2500件                 1288件           27件

6.0%          1%                    11500件                  111件            6件
6.0%          5%                     3500件                  174件            7件
6.0%          20%                    1500件                  288件           11件
6.0%          50%                    1000件                  505件           21件

失敗率3%の行を見てください。1%に流すと7万500件かかりますが、余分な失敗は12件です。

50%に流せば8500件で気づけます。ところが余分な失敗は44件と、3倍以上になります。

総件数と被害の向きが逆です。どちらを優先するかで割合が決まります

割合を下げると気づくのは遅いが、傷つく件数は減る。

単位: 件50%に流す44件20%に流す24件5%に流す16件1%に流す12件40回まわした中央値。気づくまでの総件数は順に70500件・29000件・11000件・8500件だった。
図1 ── 失敗率3%の新版を出したとき
出典Google SRE Workbook「Canarying Releases」2026-08-18 確認
We define canarying as a partial and time-limited deployment of a change in a service and its evaluation.
原文Google SRE Workbook「Canarying Releases」 この内容の有効期限2027-02-18

悪化が小さいほど、必要な件数が跳ね上がる

見逃したくない幅を狭くすると、必要な件数が急に増えます。1日の件数が足りないと判定が終わりません。

カナリアリリースで見落としやすいのが、悪化の幅によって必要な件数が大きく変わる点です。同じ表を縦に見ます。

1%に流した場合、失敗率6%への悪化なら1万1500件で気づきます。4%なら3万1000件、3%なら7万500件です。

幅が半分になると、必要な件数はおよそ4倍です。2.5%への悪化になると52万2000件で、桁がもう1つ上がります。

1日の件数と突き合わせる

1日1万件しか流れないサービスなら、1%の割合では7日かかっても3%への悪化に気づけません

その間、次の変更も出せません。出典もいらだたしいことに、これらの要件は互いに相反しうると書いています。

詰まったときの手

  1. 割合を上げる。被害を許容して速く判定する
  2. 幅を広げる。細かい悪化は見逃す前提にする
  3. 別の指標を見る。失敗率より動きの大きい値を使う
  4. 期間を延ばす。出す頻度を落として時間を稼ぐ

3番目が効くことがあります。失敗率は動きが鈍いので、応答時間や再試行の回数のほうが早く動きます

悪化の幅が狭いほど、必要な件数は跳ね上がる。

単位: 件2.5%へ悪化522000件3.0%へ悪化70500件4.0%へ悪化31000件6.0%へ悪化11500件現行の失敗率2%からの悪化。40回まわした中央値。
図2 ── 1%に流したときの必要件数
出典Google SRE Workbook「Canarying Releases」2026-08-18 確認
Frustratingly, these requirements can be mutually at odds.
原文Google SRE Workbook「Canarying Releases」 この内容の有効期限2027-02-18

割合は、1日に流れる件数から逆算する

先に決めるのは割合ではありません。見逃したくない幅と、判定に使える時間から引きます。

カナリアリリースの割合は、勘で決められがちです。この計測の表があれば逆算できます

決める順番

  1. 現行の失敗率を測る。比較の基準になる
  2. 見逃したくない幅を決める。2%が3%になったら止めるのか
  3. 使える時間を決める。何時間で判定を終えたいか
  4. 割合を引く。その時間に流れる件数から選ぶ

1秒に40件流れるサービスなら、1時間で14万4000件です。3%への悪化でも1%の割合で足ります

1日1万件なら話が違います。3%への悪化を1日で判定したいなら、割合を50%まで上げる必要があります。

良い変更を止めない

割合の設計は、悪い変更を止めるためだけのものではありません。良い変更を通すためでもあります

出典はこの仕組みをカナリアは実質的にA/Bテストの手続きであると位置づけています。比べる相手がいて初めて成り立ちます。

件数が足りないまま「差がありそう」で止めると、良い変更まで止まります。判定の組み方はA/Bテストの記事で扱っています。

割合は逆算する。勘で決めると判定が終わらない。

充足 2 / 4現行の失敗率を実測している比較の基準がないと、差が出たかどうかを判定できない1日の件数から割合を引いている3%への悪化を1%の割合で判定するには7万500件が要るとりあえず1%から始めている件数が足りないと判定が終わらず、次の変更も出せない止める基準を後から決めている差がありそうという印象で止めると、良い変更まで止まる現行の失敗率2%からの悪化を、40回まわして測った中央値にもとづく。
図3 ── 始める前の点検項目
余談 この計測での注意

失敗の起き方は各件が独立という置き方です。実際の障害は時間帯や利用者に偏って集まるので、少ない件数で目立つことも、逆に長く隠れることもあります。判定の目安も1つの基準で置いています。ここで見せているのは、割合と気づくまでの件数と被害の3つが同時には良くならないという関係です。

出典Google SRE Workbook「Canarying Releases」2026-08-18 確認
Canarying is effectively an A/B testing process.
原文Google SRE Workbook「Canarying Releases」 この内容の有効期限2027-02-18

よくある質問

カナリアで流す割合は小さいほど安全ですか
被害は減りますが気づくのが遅れます。この計測では1%で7万500件、50%で8500件かかりました。
なぜ割合を小さくすると被害が減るのですか
気づくまでに新版へ流れる件数が減るためです。総件数は増えても、新版側の件数は減ります。
小さい悪化は気づけますか
件数がかかります。2%から3%への悪化は1%流しで7万500件、2%から6%なら1万1500件で気づきました。
1日の件数が少ない場合はどうしますか
割合を上げるか、期間を延ばします。7万件に届かない規模なら、1%の割合では判定が終わりません。

まとめ

  • 一部にだけ流して様子を見る
  • 割合を下げると気づくのが遅い
  • 代わりに被害は小さい
  • 決め手は1日に流れる件数

今日から始められること

  1. 現行の失敗率を実測する
  2. 見逃したくない悪化の幅を決める
  3. その幅に気づくまでの件数を計算する
  4. 1日の件数と照らして割合を決める

実務で組んだカナリアリリースのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る