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

Auto Scaling:Tair のホワイトリスト内の ECS インスタンスを自動的に管理

最終更新日:Aug 22, 2026

このチュートリアルでは、Auto Scaling のライフサイクルフックを使用して ECS インスタンスを保留状態にし、CloudOps Orchestration Service (OOS) テンプレートを使用してインスタンスを Tair インスタンスのホワイトリストに自動的に追加または削除する方法について説明します。

前提条件

  • スケーリンググループが作成され、有効になっています。

  • Tair インスタンスが作成済みであること。

  • CloudOps Orchestration Service (OOS) 用の RAM ロールを作成する必要があります。この RAM ロールは、エンティティとして Alibaba Cloud サービス を、信頼できるサービスとして CloudOps Orchestration Service を信頼する必要があります。また、このロールには OOS テンプレートを実行する権限も付与されている必要があります。詳細については、「OOS 用の RAM ロールを作成して権限を付与する」をご参照ください。

    説明

    このトピックでは、OOSServiceRole RAM ロールを例として使用します。カスタム RAM ロールを使用することも可能です。

背景情報

スケーリンググループは、Server Load Balancer (SLB) インスタンスや ApsaraDB RDS インスタンスと関連付けることはできますが、Tair インスタンスと関連付けることはできません。ビジネスデータを Tair インスタンスに保存している場合、ECS インスタンスを手動で Tair インスタンスのホワイトリストに追加したり削除したりするのは非効率です。ライフサイクルフックと OOS テンプレートを使用すると、ECS インスタンスを Tair インスタンスのホワイトリストに自動的に追加したり削除したりできます。

操作手順

このチュートリアルでは、パブリック OOS テンプレート ACS-ESS-LifeCycleModifyRedisIPWhitelist を使用して、スケールアウト中に ECS インスタンスを Tair インスタンスのホワイトリストに追加する方法を説明します。

説明

スケールイン中に ECS インスタンスを Tair インスタンスのホワイトリストから削除するには、スケールイン用のライフサイクルフックを作成してから、スケールインをトリガーします。

手順 1: OOS RAM ロールへの権限付与

ACS-ESS-LifeCycleModifyRedisIPWhitelist OOS テンプレートを実行するには、関連する Elastic Compute ServiceAuto Scaling、および Tair (Redis OSS-compatible) リソースに対する権限が必要です。

  1. RAM コンソールにログインします。

  2. 権限ポリシーの作成

    1. 左側のナビゲーションウィンドウで、権限管理 > ポリシー を選択します。

    2. ポリシーの作成 をクリックします。

    3. ポリシーの作成ページで、JSONタブをクリックしてパラメーターを設定し、OKをクリックします。

      次の表にパラメーターを示します。記載されていないパラメーターについては、デフォルト値を使用します。

      パラメーター

      説明

      [名前]

      ESSHookPolicyForRedisWhitelist と入力します。

      [ポリシードキュメント]

      次の内容を入力します。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeInstances"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "kvstore:ModifySecurityIps"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "ess:CompleteLifecycleAction"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  3. OOSServiceRole RAM ロールへの権限ポリシーのアタッチ

    1. 左側のナビゲーションウィンドウで、アイデンティティ > ロール を選択します。

    2. OOSServiceRole を見つけて、操作 列の 権限の付与 をクリックします。

      OOS が偽装する OOSServiceRole RAM ロールに必要な権限を付与します。これにより、権限付与が完了します。

    3. 権限の付与 ページで、承認範囲と権限を設定し、権限を付与 をクリックします。

      次の表にパラメーターを示します。記載されていないパラメーターについては、デフォルト値を使用します。

      パラメーター

      説明

      [リソースの範囲]

      [Account] を選択します。

      [ポリシー]

      ESSHookPolicyForRedisWhitelist という名前のカスタムポリシーをアタッチします。

手順 2: スケールアウトフックの作成とトリガー

ライフサイクルフックを作成するときは、通知方法として OOS テンプレートを選択し、必要なパラメーターを設定します。これにより、スケールアウトがトリガーされたときに ECS インスタンスが Tair インスタンスのホワイトリストに自動的に追加されます。

  1. Auto Scaling コンソールにログインします。

  2. 左側メニューで、スケーリンググループ をクリックします。

  3. 上部メニューで、リージョンを選択します。

  4. 管理するスケーリンググループを見つけて、次のいずれかの方法で詳細ページを開きます。

    • スケーリンググループ名/ID 列で、スケーリンググループの ID をクリックします。

    • 操作 列で、詳細 をクリックします。

  5. スケールアウト用のライフサイクルフックの作成

    1. ページの上部で、事件とリンクする タブをクリックします。

    2. ルールの作成 をクリックします。

    3. ライフサイクルフックを設定し、OK をクリックします。

      次の表にパラメーターを示します。記載されていないパラメーターについては、デフォルト値を使用します。

      パラメーター

      説明

      [名前]

      ESSHookForAddRedisWhitelist と入力します。

      [スケーリングアクティビティタイプ]

      [スケールアウト] を選択します。

      [タイムアウト時間]

      300 秒など、適切なタイムアウト時間を入力します。

      説明

      タイムアウト時間は、カスタムアクションを実行するために利用できる時間です。この時間が短すぎると、アクションが失敗する可能性があります。カスタムアクションに必要な時間を評価し、適切なタイムアウト時間を設定してください。

      [デフォルトの実行ポリシー]

      [続行] を選択します。

      [フック中に実行されたアクション]

      テンプレートを次のように設定します。

      • 通知方法: OOS テンプレート を選択します。

      • OOS テンプレートタイプ: パブリックテンプレート を選択します。

      • パブリックテンプレート:ACS-ESS-LifeCycleModifyRedisIPWhitelist を選択します。

      ACS-ESS-LifeCycleModifyRedisIPWhitelist の実行パラメーターを次のように設定します。

      • [RedisInstanceId]:Tair インスタンスの ID を入力します。

      • [ModifyIPWhitelistMode]:スケールアウトに対応する Append を選択し、ECS インスタンスを Tair インスタンスのホワイトリストに追加します。

      • [OOS が引き受ける RAM ロール]:OOSServiceRole を選択します。手順1で、ECS、Auto Scaling、および Tair (Redis OSS-compatible) リソースを管理する権限が OOSServiceRole RAM ロールに追加されています。OOS サービスはこのロールを引き受けて、必要な権限を取得します。

  6. スケールアウトのトリガー

    このチュートリアルでは、手動でスケーリングルールを実行してスケールアウトをトリガーする方法を説明します。スケジュールされたタスクやイベントトリガータスクを使用してスケールアウトをトリガーすることもできます。

    説明

    ライフサイクルフックは、スケーリングルールがスケールアウトまたはスケールインをトリガーした場合にのみ有効です。既存の ECS インスタンスを手動で追加または削除した場合には有効ではありません。

    1. スケーリングルールとアラートタスク タブをクリックします。

    2. スケーリングルール タブで、スケーリングルールの作成 をクリックします。

    3. スケーリングルールのパラメーターを設定し、OK をクリックします。

      次の表にパラメーターを示します。記載されていないパラメーターについては、デフォルト値を使用します。

      パラメーター

      説明

      [ルール名]

      Add1 と入力します。

      [ルールタイプ]

      [シンプルスケーリングルール] を選択します。

      [操作]

      値を 1 インスタンス追加 に設定します。

    4. 作成した Add1 スケーリングルールを見つけ、操作 列の 行う をクリックします。

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

    スケーリングルールが実行されると、ECS インスタンスが自動的に作成されます。その後、ESSHookForAddRedisWhitelist ライフサイクルフックがインスタンスを保留状態にし、OOS サービスに通知して ACS-ESS-LifeCycleModifyRedisIPWhitelist テンプレートで定義された操作を実行させます。

手順 3: Tair インスタンスのホワイトリストの表示

  1. Tair (Redis OSS-compatible)コンソールにログインします。

  2. 左側のナビゲーションペインで、インスタンスリスト をクリックします。

  3. Tair インスタンスを見つけ、インスタンス ID/名前 列でその ID をクリックします。

  4. 左側のナビゲーションペインで、ホワイトリスト設定 をクリックします。

    • 新しい ECS インスタンスのプライベート IP アドレスが Tair インスタンスのホワイトリストに表示されている場合、ACS-ESS-LifeCycleModifyRedisIPWhitelist テンプレートが正常に実行されたことを意味します。

    • ECS インスタンスは存在するものの、そのプライベート IP アドレスが Tair インスタンスのホワイトリストにない場合は、OOS コンソールで OOS タスクの実行ステータスを確認してください。詳細については、「(オプション) 手順 4: OOS の実行の確認」をご参照ください。

(オプション) 手順 4: OOS の実行の確認

  1. OOS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、自動タスク > エグゼキューション を選択します。

  3. 開始時刻で実行を検索し、詳細操作 列からクリックします。

  4. 実行詳細ページで、実行情報を確認します。

    例えば、基本情報 セクションで実行 ID とステータスを確認できます。 また、実行結果 セクションでタスクノードをクリックして詳細を表示することもできます。 詳細については、「タスク実行の詳細を表示する」をご参照ください。

    説明

    実行が失敗した場合、実行詳細ページにエラーメッセージが表示されます。

よくある質問

オーケストレーションタスクが失敗した場合は、その実行結果に表示されるエラーメッセージを参照してトラブルシューティングを行ってください。詳細については、「よくある質問」をご参照ください。

以下の表は、一般的なエラーメッセージを示しています。

エラーメッセージ

原因

解決方法

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

Auto Scaling に指定された操作を実行するための必要な権限が付与されていません。

OOSServiceRole RAM ロールに必要な権限が付与されているか確認してください。

Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM.

RAM ユーザーまたは RAM ロールに、指定されたリソースに対する操作権限がありません。

OOS テンプレートで指定されたリソースを管理するために、OOSServiceRole RAM ロールに必要な権限が付与されていることを確認してください。たとえば、OOS のサンプル権限をロールに付与できます。

LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and LifecycleHookId you provided does not match any in process lifecycle action.

進行中のライフサイクルアクションが期限切れになったか、中止されました。

ライフサイクルフックのタイムアウト値を確認し、OOS テンプレートで定義されたオーケストレーションタスクが完了するのに十分な長さに設定されていることを確認してください。