📌 概要
Canary リリースとは、新しいバージョンの API を段階的にリリースする方法です。AWS API Gateway の「ステージ」という概念を利用して、API の異なるバージョンや開発段階を管理します。これにより、開発、テスト、本番環境などを個別に管理できます。
Canary リリースを使うことで、初めに一部のトラフィックを新しいバージョンに向け、徐々にその割合を増やして最終的には全トラフィックを新バージョンに移行します。
もし新しいバージョンで問題が発生した場合は、すぐに元のバージョンへ戻すことができ、リスクを分散しユーザーへの影響を最小限に抑えることが可能です。
✅ Canary リリースの基本的な流れ
-
新バージョンのデプロイ
既存の本番ステージに新しいバージョンをデプロイします。 -
トラフィックの一部を新バージョンへ割り当て
初めは全トラフィックの 10~20% を新しいバージョンに向けます。
例:- 80% → 旧バージョン
- 20% → 新バージョン
-
新バージョンの安定性を確認
もし新バージョンが正常に動作している場合は、段階的にトラフィックの割合を増やします。 -
全トラフィックを新バージョンに移行
最終的に 100% のトラフィックを新しいバージョンに割り当てます。 -
問題発生時の即時回復
もし新バージョンで不具合が確認された場合は、元のバージョンにすぐに戻すことができます。これにより、ユーザーへの影響を最小限に抑えられます。
🐦 Canary という名前の由来
Canary(カナリア)の名前は、鉱山で使用されていた**「カナリアによる有毒ガス検知」**に由来します。
昔、鉱山では有毒ガスの早期検知のためにカナリアが使われていました。カナリアはガスに敏感で、異常があればすぐに反応するため、鉱夫たちは安全を確保できました。
同様に、Canary リリースでは最初に少量のトラフィックを新しいバージョンに割り当て、その動作を検証します。これにより、異常があれば早期に気づき、大規模な影響を回避できます。
🛠 Canary リリースの設定手順
Step 1️⃣:Canary デプロイを有効化する
- AWS API Gateway コンソール にアクセスします。
- 任意の ステージ を選択します。
- Canary Release Deployment セクションで Canary を有効化 します。
- 初期トラフィックの割合(例:10%)を設定します。
Step 2️⃣:トラフィックの監視
- CloudWatch を使用して新しいバージョンのパフォーマンスを監視します。
- エラー率やレスポンスタイムを確認し、問題がないかチェックします。
Step 3️⃣:トラフィック割合の調整
- 新バージョンが安定して動作していることを確認したら、トラフィックの割合を段階的に増やします。
- 100% に到達するまで段階的にリリース します。
⚠️ 注意点
- Canary リリース中は必ず監視を行い、異常を早期に検出することが重要です。
- CloudWatch アラームを設定し、エラーやパフォーマンス低下が発生した際に通知を受け取るようにします。
- 回復オプションを事前に準備 し、問題発生時に迅速に対応できるようにします。
🏁 まとめ
Canary リリースを利用することで、新バージョンの API を安全かつ段階的にリリースできます。これにより、リスクを分散し、最小限の影響でユーザーに新しい機能を提供することが可能です。
新バージョンのリリース戦略を最適化したい場合は、Canary リリースをぜひ活用してみてください。