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

Tair (Redis® OSS-Compatible):Tair (Redis OSS-compatible)インスタンスの一時的な帯域幅アップグレードのスケジュール

最終更新日:Nov 27, 2024

背景情報

今日のデータ駆動型のビジネス環境において、Tair (Redis OSS-compatible)は、その優れたパフォーマンスと柔軟性のおかげで、多くの企業の重要なインフラストラクチャの中心的なコンポーネントになりました。 Tair (Redis OSS-compatible)は、キャッシュ、セッション管理、メッセージキューなど、データを大量に消費し、レイテンシを重視するさまざまなシナリオで広く使用されています。 ビジネスの継続性とユーザーエクスペリエンスの向上に大きく貢献します。 しかし、大規模なマーケティングキャンペーン、製品の発売、または高トラフィックを引き付ける他の計画されたイベントの間、標準的な帯域幅構成は、かなりの課題に直面する可能性がある。 このような重大な時期には、最小限の待ち時間でさえ、企業の市場への悪影響やユーザー保持の損失につながる可能性があります。

上記の問題を解決するために、CloudOps Orchestration Service (OOS) は、Tair (Redis OSS-compatible)インスタンスの一時的な帯域幅へのスケジュールアップグレードを可能にする機能を提供します。 OOSを使用して、帯域幅の一時的なアップグレードまたはEIPの一時的な帯域幅のアップグレードをスケジュールすることもできます。 この機能により、ビジネス負荷予測に基づいて、スケジュールされた帯域幅アップグレードを計画および実行できます。 これにより、重要な瞬間にアプリケーションのパフォーマンスと安定性が保証され、コストが最適化されます。

主な機能

  • スケジュールされたトリガー: 特定の日付と時間をプリセットして、ビジネス要件に基づいて帯域幅のアップグレードを自動的にトリガーできます。

  • 自動復帰: 指定されたアップグレード期間が完了すると、帯域幅は自動的に元の値に戻ります。 これにより、オフピーク時のコスト無駄を効果的に防ぎます。

  • コスト最適化: 帯域幅はオンデマンドでのみアップグレードされるため、企業はサービス品質を維持しながら運用コストを大幅に削減できます。

  • 合理化された操作: ユーザーフレンドリーなユーザーインターフェイス (UI) 設計により、わずか数ステップで帯域幅のアップグレードプロセスを完了できます。

シナリオ

  • Eコマースプラットフォームのプロモーション: 主要なプロモーションイベント中に帯域幅のアップグレードをスケジュールして、ユーザートラフィックの急増に対処します。

  • 大規模なゲームアップデート: 新しいゲームバージョンのリリースまたはメジャーアップデート中に帯域幅をアップグレードして、プレイヤーがシームレスにダウンロードできるようにします。

  • 休日のトラフィックスパイク: 休暇中に予想される訪問数の急増に対応するために、帯域幅の拡張を事前に計画します。

  • データ集約型タスク: 大規模なデータ移行や分析操作などのタスクの完了を促進するために、帯域幅を一時的に増やします。

手順

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

  2. 左側のナビゲーションウィンドウで、[自動タスク]> [パブリックテンプレート] を選択します。 [パブリックテンプレート] ページで、検索ボックスに [ACS-Redis-ScheduleToUpgradeInstanceBandwidth] と入力します。 ACS-Redis-ScheduleToUpgradeInstanceBandwidthテンプレートを見つけて、[実行の作成] をクリックします。

image.png

  1. [タスクの作成] ページで、[次のステップ: パラメーター設定] をクリックします。 [パラメーター設定] ステップで、[Timer Trigger configure] セクションで [TimerTrigger] パラメーターを設定します。

TimerTriggerパラメーターは、[今すぐ実行] 、[指定された時刻に1回実行] 、または [定期的に実行] に設定できます。 [今すぐ実行] を選択した場合、スケジュールされた帯域幅アップグレードタスクは作成後すぐに実行されます。 [指定した時間に1回実行] を選択した場合、スケジュールされた帯域幅アップグレードタスクは、指定した時点で1回だけ実行されます。 [定期的に実行] を選択した場合、スケジュールされた帯域幅アップグレードタスクは、スケジュールされた時間に基づいて定期的に実行されます。 たとえば、スケジュールされた帯域幅アップグレードタスクを1時間ごとに実行するように指定できます。image.png

  1. [インスタンスの選択] セクションで、Tair (Redis OSS-compatible)インスタンスが存在するリージョンを指定します。 TargetInstanceの次のいずれかのオプションを選択して、管理する1つ以上のTair (Redis OSS-compatible)インスタンスを検索します。手動でインスタンスを選択し、インスタンスタグを指定し、リソースグループを指定し、CSVファイルをアップロードし、すべてを選択します。 帯域幅およびDurationHourパラメーターを設定します。 最小帯域幅アップグレード期間は1時間です。 [コントロールオプション] セクションで、Tair (Redis OSS-compatible)インスタンスにアクセスできるロールを選択し、[次のステップ: OK] をクリックします。 次に、次のステップで [作成] をクリックします。 これまで、Tair (Redis OSS-compatible)インスタンスの帯域幅アップグレードスケジュールタスクが作成されました。 指定された時間が経過すると、システムはTair (Redis OSS-compatible)インスタンスの帯域幅を自動的にアップグレードします。 アップグレード期間が完了すると、帯域幅は自動的に元の値に戻ります。

image.png

付録

実行フローチャート

実行プロセス全体を次の図に示します。

image.png

次の図は、Tair (Redis OSS-compatible)インスタンスの帯域幅をアップグレードするプロセスを示しています。

image.png

テンプレート

次のセクションでは、この例で使用するACS-Redis-ScheduleToUpgradeInstanceBandwidthテンプレートの内容について説明します。

FormatVersion: OOS-2019-06-01
Description:
  en: Scheduled upgrade of the temporary bandwidth of a Redis instance
   
  name-en: ACS-Redis-ScheduleToUpgradeInstanceBandwidth
   
Parameters:
  RegionId:
    Type: String
    Label:
      en: RegionId
       
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  Targets:
    Type: Json
    Label:
      en: TargetInstance
       
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::Redis::Instance
      RegionId: regionId
  TimerTrigger:
    Type: Json
    Label:
      en: TimerTrigger
       
    AssociationProperty: ALIYUN::OOS::Component::TimerTrigger
    AssociationPropertyMetadata:
      MinuteInterval: 30
  Bandwidth:
    Type: Number
    Label:
      en: Bandwidth
       
    Description:
      en: Unit:MB/s. The maximum incoming bandwidth is 6 times the default bandwidth of this instance specification, but the upper limit is 192MB/s. For example, the default bandwidth of an instance is 10 MB/s, and the value range of this parameter is 0~60.
         
    MinValue: 1
    MaxValue: 192
  DurationHour:
    Label:
      en: DurationHour
       
    Description:
        
      en: Unit:Hour. The bandwidth upgrade should last at least 1 hours
    Type: Number
    MinValue: 1
    Default: 1
  RateControl:
    Label:
      en: RateControl
       
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
       
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: TimerTrigger
    Action: ACS::TimerTrigger
    Description:
      en: Triggers a task as scheduled by specifying type and expression
       
    Properties:
      Type:
        Fn::Select:
          - type
          - '{{ TimerTrigger }}'
      Expression:
        Fn::Select:
          - expression
          - '{{ TimerTrigger }}'
      EndDate:
        Fn::Select:
          - endDate
          - '{{ TimerTrigger }}'
      TimeZone:
        Fn::Select:
          - timeZone
          - '{{ TimerTrigger }}'
  - Name: GetInstance
    Description:
      en: Get the redis instances
       
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::Redis::Instance
      RegionId: '{{ RegionId }}'
      Filters:
        - '{{ Targets }}'
    Outputs:
      InstanceIds:
        Type: List
        ValueSelector: Instances.Instance[].InstanceId
  - Name: UpgradeRedisInstanceBandwidth
    Action: ACS::Redis::UpgradeRedisInstanceBandwidth
    Description:
      en: Modify redis instance bandwidth
       
    Properties:
      RegionId: '{{ RegionId }}'
      InstanceId: '{{ ACS::TaskLoopItem }}'
      Bandwidth: '{{ Bandwidth }}'
      DurationHour: '{{ DurationHour }}'
    Loop:
      RateControl: '{{ RateControl }}'
      Items: '{{ GetInstance.InstanceIds }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - TimerTrigger
        Label:
          default:
             
            en: Timer Trigger Configure
      - Parameters:
          - RegionId
          - Targets
          - Bandwidth
          - DurationHour
        Label:
          default:
             
            en: Select Instances
      - Parameters:
          - RateControl
          - OOSAssumeRole
        Label:
          default:
             
            en: Control Options

次のセクションでは、Action: ACS::Redis::UpgradeRedisInstanceBandwidthの内容について説明します。

FormatVersion: OOS-2019-06-01
Description:
  en: Upgrade of the temporary bandwidth of a Redis instance
   
  name-en: ACS::Redis::UpgradeRedisInstanceBandwidth
   
Parameters:
  RegionId:
    Type: String
    Label:
      en: RegionId
       
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  InstanceId:
    Type: String
    Label:
      en: InstanceId
       
  Bandwidth:
    Type: Number
    Label:
      en: Bandwidth
       
    Description:
      en: Unit:MB/s. The maximum incoming bandwidth is 6 times the default bandwidth of this instance specification, but the upper limit is 192MB/s. For example, the default bandwidth of an instance is 10 MB/s, and the value range of this parameter is 0~60.
         
    MinValue: 1
    MaxValue: 192
  DurationHour:
    Label:
      en: DurationHour
       
    Description:
        
      en: Unit:Hour. The bandwidth upgrade should last at least 1 hours
    Type: Number
    MinValue: 1
    Default: 1
Tasks:
  - Name: UpgradeRedisInstanceBandwidth
    Action: ACS::ExecuteApi
    Description:
      en: Upgrade redis instance bandwidth
       
    Properties:
      Service: r-kvstore
      API: EnableAdditionalBandwidth
      Parameters:
        RegionId: '{{ RegionId }}'
        InstanceId: '{{ InstanceId }}'
        Bandwidth: '{{ Bandwidth }}'
        AutoPay: true
  - Name: DurationHour
    Action: ACS::Sleep
    Description:
      en: Bandwidth upgrade duration
       
    Properties:
      Duration: '{{ DurationHour }}H'
  - Name: RecoverRedisInstanceBandwidth
    Action: ACS::ExecuteAPI
    Description:
      en: Recover redis instance bandwidth
       
    Properties:
      Service: r-kvstore
      API: EnableAdditionalBandwidth
      Parameters:
        RegionId: '{{ RegionId }}'
        InstanceId: '{{ InstanceId }}'
        Bandwidth: 0
        AutoPay: true