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

Microservices Engine:タグベースルーティングの設定

最終更新日:Aug 28, 2026

タグベースルーティングは、トラフィックとノードにタグを付け、特定の特性を持つトラフィックを対応するタグを持つノードに転送する機能です。この方法は、ブルーグリーンデプロイメントやカナリアリリースなどの高度なデプロイ戦略の基盤となります。

前提条件

制限事項

説明

この機能は MSE ガバナンスセンターで利用可能で、アプリケーションを接続する必要があります。

タグベースルーティングをサポートする Java のバージョンとフレームワークの一覧については、「マイクロサービスガバナンスがサポートする Java フレームワーク」をご参照ください。

ユースケース

複数バージョンでの開発とテスト

複数のアプリケーションバージョンを並行して開発するには、バージョンごとに個別の開発環境が必要となり、高いリソースコストが発生します。トラフィック分離戦略により、これらのコストを大幅に削減できます。タグベースルーティングに基づくエンドツーエンドのトラフィック分離を使用することで、特定のトラフィックを指定された開発環境に転送できます。たとえば、開発環境 1 では、アプリケーション B とアプリケーション D のバージョン V1.1 に Tag1 タグを適用し、対応するルーティングルールを設定できます。アプリケーション A がアプリケーション B を呼び出すと、システムはトラフィックがルーティングルールに一致するかどうかを確認します。一致する場合、トラフィックは開発環境 1 のアプリケーション B の V1.1 インスタンスにルーティングされます。それ以外の場合は、ベースライン環境の V1 インスタンスにルーティングされます。同様に、アプリケーション C がアプリケーション D を呼び出すと、トラフィックはトラフィックの特性に基づいて、アプリケーション D の V1 または V1.1 インスタンスのいずれかにルーティングされます。

複数バージョンでのトラフィック分離

アプリケーションの複数のバージョンが通常環境や特殊目的環境など、異なる環境でオンラインで実行されている場合、タグベースルーティングを使用してバージョン間のトラフィックを分離できます。たとえば、フラッシュセールや特定のチャネルからのトラフィックを特殊目的環境にルーティングし、通常のトラフィックを通常環境に転送することができます。これにより、特殊目的環境で障害が発生した場合でも、その環境向けのトラフィックが通常環境にルーティングされることはなく、通常環境への影響を防ぐことができます。

A/B テスト

複数のアプリケーションバージョンで A/B テストを実行するには、タグベースルーティングを使用してエンドツーエンドのトラフィック制御を行うことができます。たとえば、リージョン A からの顧客トラフィックを V1 バージョンに、リージョン B からのトラフィックを V1.1 バージョンにルーティングすることができます。異なるバージョンを検証することで、新製品や新機能のリリースに伴うリスクを軽減できます。

マイクロサービスガバナンスの有効化とタグの設定

このトピックでは、spring-cloud-a という名前のアプリケーションを例とします。tag1 と tag2 を適用して、2 つのアプリケーションインスタンスのグループを作成します。リクエストが設定した条件に一致する場合、指定したタグを持つインスタンスにルーティングされます。ルールに一致しない場合、トラフィックは設定されたトラフィック分散のパーセンテージに基づいてインスタンスに分散されます。

  1. Container Service for Kubernetes (ACK) コンソールにログインします。

  2. 左側メニューで、[Clusters] を選択し、対象のクラスターの名前をクリックします。

  3. 左側メニューで、 を選択します。

  4. [Create from Image] をクリックして、spring-cloud-a-tag1 と spring-cloud-a-tag2 という名前の 2 つの Deployment ワークロードを作成します。詳細については、「ステートレスワークロード Deployment の作成」をご参照ください。

    パラメーター

    説明

    レプリカ

    値を 1 に設定します。

    [Type]

    Deployment を選択します。

    イメージ名

    ご自身でビルドしたイメージを選択するか、ビルド済みのイメージ registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-a:3.0.1 を使用します。

  5. 次の手順に従って、spring-cloud-a-tag1 と spring-cloud-a-tag2 をマイクロサービスガバナンスに接続し、タグを設定します。

    1. [Deployments] ページに戻ります。名前空間 を選択し、作成したアプリケーション (spring-cloud-a-tag1 と spring-cloud-a-tag2) を見つけます。操作 列で、もっと見る > [View in YAML] を選択します。

    2. [Edit YAML] ダイアログボックスで、spring-cloud-a-tag1 と spring-cloud-a-tag2 の両方をマイクロサービスガバナンスに接続するために、 の下に次のラベルを追加します。

      labels:
        msePilotAutoEnable: "on"
        msePilotCreateAppName: <your-app-name>
        alicloud.service.tag: <tag>
      説明
      • <your-app-name> をマイクロサービスガバナンスにおけるアプリケーション名に置き換えます。この例では、名前は spring-cloud-a です。

      • <tag> を tag1 または tag2 に置き換えます。

    3. [Update] をクリックします。

タグベースルーティングルールの作成

  1. MSE ガバナンスセンターコンソールにログインし、上部メニューでリージョンを選択します。

  2. 左側メニューで、マイクロサービス管理センター > アプリケーション管理 を選択します。

  3. [Application list] ページで、目的のマイクロサービスの名前空間を選択し、ACK で作成したアプリケーション spring-cloud-a を検索して、その名前をクリックします。

  4. 左側メニューで [Traffic Management] をクリックし、[Tag-based Routing] タブをクリックして現在のルーティング設定を表示します。

  5. [Tag-based Routing] リストで [Traffic Distribution] をクリックし、各タグのトラフィックのパーセンテージを設定して、保存 をクリックします。

    たとえば、tag1 のトラフィックのパーセンテージを 100% に設定し、tag2 とタグなしインスタンスのパーセンテージを 0% に設定します。

  6. [Traffic Rules] で [Add] をクリックします。[Create Tag-based Routing] パネルでパラメーターを設定し、OK をクリックしてルーティングルールを作成します。

    説明

    タグベースルーティングは、トラフィックルールで定義された条件を優先します。リクエストがトラフィックルールに一致する場合、対応するタグを持つ Pod にルーティングされます。それ以外の場合、リクエストは指定されたトラフィック分散のパーセンテージに基づいて Pod にルーティングされます。

    パラメーター

    説明

    ルーティングルール名

    タグベースルーティングルールの名前。例: test-springcloud

    [アプリケーション]

    アプリケーションの名前。例: spring-cloud-a

    [タグ]

    ACK でアプリケーションに設定したタグ。例: tag2

    アプリケーションインスタンス

    このタグを持つ spring-cloud-a アプリケーションインスタンスの IP アドレスとポート。

    トラフィックルール

    フレームワークタイプ

    アプリケーションのフレームワーク ([Spring Cloud] または [Dubbo]) を選択します。

    • [Spring Cloud] の場合、/getIp などの URL パスのみ設定できます。

    • [Dubbo] の場合、サービスとインターフェースを選択できます。

    条件モード

    要件に応じて条件モード ([Meet all of the following conditions] または [Meet any of the conditions]) を選択します。

    条件リスト

    • [フレームワークタイプ] が Spring Cloud の場合、[パラメーター]、[クッキー]、[ヘッダー]、または [ボディコンテンツ] に基づいて条件を設定できます。 たとえば、[パラメーター] 条件は name=xiaoming、[クッキー] 条件は hello = "world" or "world2" のようになります。

    • [Framework Type] が [Dubbo] の場合、パラメーター値を取得するための式を指定する必要があります。

検証

ビジネス要件に基づいて結果を検証します。

  • トラフィックルールに一致しないリクエストは、設定されたトラフィック分散率に従い、100% が tag1 タグを持つインスタンスにルーティングされます。

    Atag1[192.168.0.122]
  • ルールに一致するトラフィックは、対応するタグを持つノードにルーティングされます。

    Atag2[192.168.0.156]

関連ドキュメント

エンドツーエンドカナリアリリースを実装する方法については、「エンドツーエンドカナリアリリース」をご参照ください。