IT用語: カナリアリリースとは|一部ユーザーへ先行公開する安全なデプロイ手法
新バージョンを全ユーザーの5〜10%に先行公開し問題がなければ徐々に拡大するカナリアリリースの仕組みを解説。
カナリアリリースとは
カナリアリリースは、新バージョンのソフトウェアをいきなり全ユーザーに公開せず、まず一部(例: 5%)のユーザーに先行公開し、問題がなければ徐々に割合を増やしていくデプロイ手法です。名前の由来は「炭鉱のカナリア(危険を先に察知する)」です。
ブルー/グリーンとの違い
ブルー/グリーンは「全員を一気に切り替える」のに対し、カナリアは「段階的に移行する」点が違います。カナリアはリリースのリスクをより細かく制御できますが、新旧バージョンが同時稼働するため、APIの後方互換性確保が必要です。
実装方法
- ロードバランサーの重み付け: AWS ALBのターゲットグループ重み付けで5%/95%等に分割
- フィーチャーフラグ: コード内で特定ユーザーにだけ新機能を見せる
- Kubernetes: Deploymentのreplica数を調整し段階的にロールアウト
関連する用語 (DevOps)
全58件を見るFluentd
オープンソースのデータ収集・転送ツール(ログアグリゲーター)。各種ソースからログを収集し、Elasticsearch・S3・Splunkへ転送できる。プラグインが豊富でログ基盤構築に広く使われる。
Helm
KubernetesのパッケージマネージャーAptやyumのK8s版。Helmチャートと呼ばれるテンプレートで複雑なK8sリソースを一括管理・デプロイできる。バージョン管理やロールバックも容易。
SAST
Static Application Security Testing(静的アプリケーションセキュリティテスト)の略。ソースコードを実行せずに静的解析して脆弱性を検出する手法。SonarQube・Checkmarx等が代表的ツール。
GitOps
Gitをシステムの信頼できる唯一の情報源(Single Source of Truth)として扱う運用手法。インフラやアプリの設定変更をGitのPull Requestで管理し、自動デプロイを行う。ArgoCD・Fluxが普及。
Fargate
AWSのサーバーレスコンテナ実行エンジン。EC2インスタンスを意識することなくコンテナを実行できる。ECSやEKSとともに使用し、インフラ管理の負荷を大幅に削減できる。
IaC(Infrastructure as Code)
インフラ構成をコードとして記述・管理する手法。Terraform・AWS CDK・Ansibleなどのツールを使い、インフラの再現性・バージョン管理・自動化を実現する。