すべてのプロダクト
Search
ドキュメントセンター

Server Load Balancer:カナリアリリース

最終更新日:Jul 09, 2026

カナリアリリースを使用すると、旧バージョンと新バージョンのアプリケーションを並行してデプロイできます。新バージョンをすべてのユーザーに展開する前に、一部のユーザーに公開できます。カナリアリリースを使用すると、ビジネス要件に基づいて、旧バージョンと新バージョンに公開されるユーザーの割合を制御できます。

シナリオ

アプリケーションを構築する際、ユーザーエクスペリエンスを確保しながら、リリースプロセスを高速化したい場合があります。新バージョンのエラーによってワークフローが中断されるリスクを軽減するために、カナリアリリースを実装し、新バージョンが一部のユーザーからサービス トラフィックを受信できるようにします。その後、カナリアユーザーからのフィードバックに基づいて、ログ、パフォーマンス、安定性などの指標について新バージョンを評価できます。評価に基づいて、新バージョンをすべてのユーザーに段階的に展開するか、旧バージョンにロールバックできます。

事前準備

  1. 旧バージョンと新バージョンを異なるバックエンドサーバーにデプロイします。サービス可用性を確保するために、各バージョンを複数のバックエンドサーバーにデプロイできます。

  2. Application Load Balancer (ALB) インスタンスを作成します。Basic ALB インスタンスは Cookie ベースのルールをサポートしていません。標準 ALB インスタンスを作成する必要があります。詳細については、「ALB インスタンスの作成と管理」をご参照ください。

  3. サーバーグループを作成します。次に、旧バージョンと新バージョンがデプロイされているバックエンドサーバーを異なるサーバーグループに追加します。詳細については、「サーバーグループの作成と管理」をご参照ください。

  4. リスナーを作成します。次に、旧バージョンがデプロイされているバックエンドサーバーをリスナーのデフォルトサーバーグループに追加します。詳細については、「HTTP リスナーの追加」、「HTTPS リスナーの追加」、および「QUIC リスナーの追加」をご参照ください。

    上記のタスクを完了すると、すべてのリクエストが旧バージョンに転送されます。次の 1 つ以上の方法を使用して、カナリアリリースを実装できます。この例では、新バージョンはサーバーグループ A に、旧バージョンはサーバーグループ B (デフォルトサーバーグループ) に追加されているものとします。

HTTP ヘッダーに基づくカナリアリリース

この例では、User-Agent ヘッダー Mozilla/4.0 を含む HTTP リクエストが新バージョンに転送されます。

image
  1. ALBコンソールにログインします。
  2. 上部メニューで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. インスタンス ページで、管理する ALB インスタンスの ID をクリックします。

  4. リスナー タブで、管理するリスナーを探し、操作 列の 転送ルールの表示 / 変更 をクリックします。

  5. 転送ルール タブで、新しいルールの追加 をクリックします。

  6. 以下のパラメーターを設定し、OK をクリックします:

    • 条件の追加: ドロップダウンリストから HTTP ヘッダー を選択し、キーを user-agent に設定し、値を Mozilla/4.0 に設定します。

    • アクション: ドロップダウンリストから [転送先] を選択し、サーバーグループ A を選択します。

    詳細については、「リスナー転送ルール」をご参照ください。

    説明

    転送ルールを追加することで、新バージョンに分散されるトラフィックの割合を増やすことができます。新バージョンが期待どおりに機能する場合は、旧バージョンを廃止し、すべてのリクエストを新バージョンに転送できます。

Cookie に基づくカナリアリリース

この例では、キーと値のペアで指定された Cookie に基づいて、リクエストを新バージョンに転送するように ALB を設定する方法を示します。

image
  1. ALBコンソールにログインします。
  2. 上部メニューで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. インスタンス ページで、管理する ALB インスタンスの ID をクリックします。

  4. リスナー タブで、管理するリスナーを見つけ、操作 列の 転送ルールの表示 / 変更 をクリックします。

  5. 転送ルール タブで、新しいルールの追加 をクリックします。

  6. 次のパラメーターを設定し、OK をクリックします:

    • [Cookie]:ドロップダウンリストから Cookie を選択し、値を key: value に設定します。

    • 操作: ドロップダウンリストから[転送]を選択し、サーバーグループ A を選択します。

    詳細については、「リスナー転送ルール」をご参照ください。

    説明

    転送ルールを追加することで、新バージョンに分散されるトラフィックの割合を増やすことができます。新バージョンが期待どおりに機能する場合は、旧バージョンを廃止し、すべてのリクエストを新バージョンに転送できます。

サーバーグループに基づくカナリアリリース

この例では、example.com 宛てのリクエストの 80% が旧バージョンに転送され、リクエストの 20% が新バージョンに転送されます。

image
  1. ALBコンソールにログインします。
  2. 上部メニューで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. インスタンス ページで、管理する ALB インスタンスの ID をクリックします。

  4. リスナー タブで、管理するリスナーを見つけ、操作 列の 転送ルールの表示 / 変更 をクリックします。

  5. 転送ルール タブで、新しいルールの追加 をクリックします。

  6. 次の情報に基づいて転送ルールを設定して、OK をクリックします:

    • 条件の追加: ドロップダウンリストからドメイン名を選択し、ドメイン名を example.com に設定します。

    • アクション: ドロップダウンリストから [転送先] を選択し、サーバーグループ B とサーバーグループ A を選択します。 サーバーグループ B の重みを 80 に、サーバーグループ A の重みを 20 に設定します。

    詳細については、「リスナー転送ルール」をご参照ください。

    説明

    ビジネス要件を満たすために、サーバーグループの重みを変更できます。新バージョンが期待どおりに機能する場合は、旧バージョンを廃止して、すべてのリクエストを新バージョンに転送できます。