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

Platform For AI:EAS サービスの更新計画の設定

最終更新日:Sep 04, 2026

EAS サービスが数十または数百のレプリカに拡張される場合、完全なローリングアップデートはバッチ制御や一時停止メカニズムを提供しないため、デプロイのリスクが大きくなります。更新計画機能は、手動バッチ (パーティション) と自動バッチ (バッチ更新) という 2 つの更新モードをサポートすることでこの問題に対応し、大規模デプロイのペースを制御し、問題が発生した場合に迅速にロールバックできるようにします。

基本概念

  • 複数の更新モード: 手動バッチ (パーティション) と 自動バッチ (バッチ更新) の 2 つのモードがサポートされています。

    特性

    [手動バッチ] (パーティション)

    [自動バッチ] (バッチ更新)

    制御

    完全に手動で、各バッチを手動で進めます

    設定後、システムが自動的にバッチを進めます

    運用負荷

    高い

    低い

    柔軟性

    最高

    中程度

    最適な用途

    重要なオンラインサービスのカナリアリリース

    大規模サービスの定期的な更新

  • 更新プロセスの完全な制御: 更新中のどの時点でも、一時停止、ロールバック、またはバッチ戦略の変更が可能です。計画を削除すると、デフォルトの完全置換戦略に戻ります。

  • リアルタイムのステータス可視性: サービス詳細ページの オートスケーリング タブにある 計画の更新 セクションには、リアルタイムステータス、進行状況、バッチカウントダウン、その他の主要な情報が表示されます。

クイックスタート

次の例では、10 個のレプリカを持つサービスで手動バッチを使用して更新計画を作成し、サービス更新を完了する手順を説明します。

前提条件:更新計画機能の有効化

重要

更新計画機能は、新しいサービスの作成時にのみ有効にできます。既存のサービスを更新して有効にすることはできません。

サービスを作成するときは、JSON 設定の features フィールドに "eas.aliyun.com/enable-rollout": "true" を追加します。この設定がない場合、更新計画機能は利用できません。例:

{
  "metadata": {
    "instance": 10
  },
  "features": {
    "eas.aliyun.com/enable-rollout": "true"
  }
}

ステップ 1:更新計画の作成

  1. 対象のサービスをクリックして、EAS サービス詳細ページを開きます。

  2. オートスケーリングg タブをクリックし、計画の更新 セクションで 更新スケジュールの作成 をクリックします。

  3. 右側からスライドインするパネルで、手動バッチを選択し、インスタンス数の更新を 2/10 に設定します。

  4. OK をクリックします。

更新計画が作成されると、計画の更新 セクションにステータスが[保留中]と表示されます。(現在は有効化待ちです。設定のみ保存されており、「サービスの更新」で変更を送信すると、計画に従って実行されます。)

ステップ 2:更新のトリガー

サービス詳細ページで更新をクリックして、新しいサービス設定を送信します。

システムは計画に従って更新を開始します。最初に 2 つのレプリカを更新し、その後一時停止して待機します。[更新計画] セクションに現在の進行状況 (2/10) が表示されます。

ステップ 3:検証と次のバッチへの移行

ビジネスメトリクス (レイテンシー、エラー率など) を確認します。問題が見つからない場合は、プランを変更し、ターゲットレプリカ数を 10 に設定します。システムは、更新が完了するまで残りの 8 つのレプリカを更新します。

説明

問題が見つかった場合は、更新計画を変更してターゲットレプリカ数を 0 に設定します。更新されたすべてのレプリカが以前のバージョンにロールバックされます。

ステータスリファレンス

更新計画は 2 段階のステータスモデルを使用します。上位レベルは**フェーズ**で、下位レベルは**ステージ**です (ステージは、フェーズがアクティブの場合にのみ存在します)。

  • 未設定:更新計画が存在しません。サービスを更新すると、完全置換がトリガーされます。

  • 保留中:計画は作成済みで、サービス更新によって有効化されるのを待機しています。

  • アクティブ:更新がトリガーされ、システムがレプリカをバッチで置き換えています。アクティブフェーズには 3 つのステージがあります:

    • 現在のバッチ実行中: バッチが進行中です。更新済みのインスタンス数がターゲット数に近づいています。

    • 現在のバッチ一時停止中: ユーザーによって実行が一時停止されました。進行が停止しています。

    • 現在のバッチ完了: バッチのターゲット数に到達しました。システムは、手動で次に進められる (手動バッチ) か、カウントダウンが終了する (自動バッチ) のを待機します。

  • 完了:現在のラウンドの更新が完了しました。

    • サービスを再度更新すると、計画が再トリガーされ、ステータスが [アクティブ] に変わります。

    • 計画を変更すると、ステータスが [保留中] に変わり、次のサービス更新を待ちます。

次の表は、各ステータスで使用可能な操作を示しています:

操作

未設定

保留中

アクティブ

完了

現在のバッチ実行中

現在のバッチ一時停止中

現在のバッチ完了

計画の作成

✓

計画の変更

✓

✓

✓

✓

✓

計画の削除

✓

✓

✓

✓

✓

一時停止

✓

再開

✓

サービスの更新

✓

✓

✓

✓

✓

✓

使用上の注意

  • アクティブ状態の計画を変更する場合: 新しいパラメータは直ちに有効になります。計画が現在一時停止されている場合、変更を適用すると自動的に再開されます。

  • 完了状態の計画を変更する場合: 設定は保存されますが、自動的に更新はトリガーされません。新しい計画を適用するには、サービスを再度更新してください。

  • アクティブ状態の計画を削除する場合: 残りのレプリカは完全置換戦略を使用して更新が続行されます。ロールバックは発生しません。

  • 更新計画が存在する状態でスケーリングする場合: 計画の設定は変更されず、実行時の実際のレプリカ数に基づいて適用されます。

  • 手動バッチで最初のバッチ数を 0 に設定する場合: これは有効な値です。サービス更新は直ちにトリガーされますが、更新開始直後に一時停止し、手動で処理を進めるのを待機します。

  • 自動バッチでバッチサイズ ≥ 合計レプリカ数を設定する場合: すべてのレプリカが単一のバッチで更新され、これは完全置換と同様の動作になります。

JSON 構成

サービス JSON 設定の metadata.rolling_strategy フィールドでパラメーターを設定して、更新計画を構成します。

設定全体の構造

{
  "metadata": {
    "rolling_strategy": {
      "max_surge": "25%",
      "max_unavailable": "20%",
      "partition": 5,
      "paused": false,
      "batch_update": {
        "interval": "5m",
        "batch_size": 2
      }
    }
  }
}

フィールドリファレンス

フィールド

型

説明

デフォルト値

max_surge

数値またはパーセンテージ

更新中に許可される追加レプリカの最大数

0

max_unavailable

数値またはパーセンテージ

更新中に利用不可になる可能性があるレプリカの最大数

20%

partition

数値またはパーセンテージ

手動バッチ: 現在のバッチで更新するレプリカ数

—

paused

ブール値

更新を一時停止するかどうかを指定します。この設定は両方のモードに適用されます。

false

batch_update.interval

期間文字列 (例: 5m)

自動バッチ: あるバッチの完了後、次のバッチを開始するまでの待機時間

—

batch_update.batch_size

数値またはパーセンテージ

自動バッチ: 1 バッチあたりに更新するレプリカ数

max_unavailable に等しい

構成例

手動バッチ:カナリアリリース

{
  "metadata": {
    "instance": 10,
    "rolling_strategy": {
      "partition": 2,
      "max_unavailable": 1
    }
  }
}

レプリカは合計 10 個です。最初の 2 個が更新され、残りの 8 個は、手動で計画を次に進めるまで古いバージョンを維持します。

自動バッチ:大規模サービス

{
  "metadata": {
    "instance": 100,
    "rolling_strategy": {
      "batch_update": {
        "interval": "10m",
        "batch_size": 5
      }
    }
  }
}

レプリカは合計 100 個です。システムが 10 分ごとに 5 個のレプリカを自動的に更新します。

緊急一時停止

{
  "metadata": {
    "rolling_strategy": {
      "paused": true
    }
  }
}

クイックロールバック

{
  "metadata": {
    "rolling_strategy": {
      "partition": 0
    }
  }
}

partition を 0 に設定すると、更新されたすべてのレプリカが以前のバージョンにロールバックされます。これは、手動バッチ処理モードと自動バッチ処理モードの両方で機能します。

よくある質問

Q: 迅速にロールバックするにはどうすればよいですか?

更新中に問題が発見された場合 (例:V2 から V3 への更新時) は、次の手順で迅速にロールバックできます:

  1. 更新計画を 手動バッチ に切り替え、ターゲットレプリカ数を 0 に設定します。更新されたすべてのレプリカが以前のバージョン (V2) にロールバックされます。

  2. サービス設定を更新します (V4 や他の安定したバージョンなど)。

  3. 必要に応じて更新計画を変更して、ロールアウトを続行します。

更新がすでに完了し、すべてのレプリカが新しいバージョン (V3) を実行している場合、更新計画を使用してロールバックすることはできません。サービスバージョンリストに移動し、ロールバックする特定のバージョンを選択してください。

Q: 手動バッチと自動バッチのパラメータを同時に設定できますか?

いいえ。partition パラメーター (手動バッチ処理) が優先されます。partition が設定されている場合、システムはすべての自動バッチ処理パラメーターを無視します。

Q: 進行中の更新を一時停止するにはどうすればよいですか?

paused: true に設定します。これは、手動バッチ処理と自動バッチ処理の両方で機能します。

Q: 自動バッチのバッチサイズを設定しない場合はどうなりますか?

システムは max_unavailable の値をバッチサイズとして使用します。

Q: 自動バッチのバッチ間隔を設定しない場合はどうなりますか?

バッチサイズは引き続き適用されますが、システムは自動的に次のバッチに進みません。各バッチが完了すると更新は一時停止し、次のバッチに進むには手動での再開操作が必要になります。