カナリアリリース
新バージョンを少数のユーザーに先行公開し、問題がないことを確認してから全体に展開するデプロイ手法
デプロイDevOps
カナリアリリースとは
カナリアリリースは、新バージョンを少数のユーザー (1〜10%) に先行公開し、エラー率やレイテンシに問題がないことを確認してから全体に展開するデプロイ手法である。炭鉱のカナリアが由来。
カナリア vs Blue/Green
カナリアと Blue/Green の違いを以下にまとめる。
| タイプ | 説明 |
|---|---|
| Canary10Percent5Minutes | 10% に 5 分間公開、問題なければ 100% |
| Canary10Percent30Minutes | 10% に 30 分間公開 |
| Linear10PercentEvery1Minute | 1 分ごとに 10% ずつ増加 |
| AllAtOnce | 一括デプロイ (カナリアなし) |
アラームが発火すると、CodeDeploy が自動的に旧バージョンにロールバックする。
CloudFront でのカナリア
CloudFront でのカナリアの例を示す。
Distribution:
Properties:
DistributionConfig:
CacheBehaviors:
- PathPattern: /api/*
TargetOriginId: api
# Lambda@Edge で Cookie ベースのルーティング
カナリアの監視項目
カナリアの監視項目を以下にまとめる。
| メトリクス | 閾値の例 |
|---|---|
| エラー率 | 旧バージョンの 2 倍以上で異常 |
| P99 レイテンシ | 旧バージョンの 1.5 倍以上で異常 |
| ビジネスメトリクス | コンバージョン率の低下 |
カナリアの進め方
カナリアの進め方を図で示す。
1. 新バージョンをデプロイ (トラフィック 0%)
2. 1% に公開 → 5 分間監視
3. 10% に拡大 → 30 分間監視
4. 50% に拡大 → 1 時間監視
5. 100% に展開
→ 各段階でアラームが発火したら自動ロールバック
詳しくは関連書籍を参照。
この記事は役に立ちましたか?