All Products
Search
Document Center

CloudOps Orchestration Service:Schedule temporary bandwidth upgrades for EIPs

Last Updated:Dec 27, 2024

This topic describes how to use CloudOps Orchestration Service (OOS) to plan and schedule temporary bandwidth upgrades for elastic IP addresses (EIPs). This ensures the performance and stability of applications during critical periods and reduces costs.

Background information

As business grows and Internet scenarios become more diversified, enterprises and individual users more commonly encounter significant spikes in network traffic within a specific period of time. Such spikes, driven by events such as large-scale promotional campaigns, popular live streaming events, major news announcements, or seasonal data backup activities, can quickly saturate existing bandwidth. This adversely affects user experience and potentially causes service interruptions. Traditional network bandwidth configurations often fail to handle these sudden spikes, and maintaining high bandwidth levels over the long term is prohibitively expensive. If you seek to balance cost with network performance, you may face a significant challenge.

To resolve the preceding issues, OOS introduces the feature of scheduled temporary bandwidth upgrades. OOS already supports temporary bandwidth upgrades. OOS now offers the scheduled bandwidth upgrade feature specifically for scenarios in which EIPs are used. This feature provides a flexible solution that allows you to temporarily increase bandwidth based on business requirements during a specific period of time in anticipation of business peaks. This enables proactive planning for expected traffic surges and automatically restores bandwidth to the original value after the peak period, thus reducing unnecessary additional costs.

Benefits

  • Scheduled triggering: You can preset specific dates and time for automatic bandwidth upgrades to be executed based on the schedule, which eliminates the need for manual intervention.

  • Automatic reversion: After the upgrade duration elapses, the bandwidth automatically reverts to the original value to reduce unnecessary costs.

  • Cost optimization: You can upgrade bandwidth based on your business requirements to significantly reduce operational costs and maximize resource utilization.

  • Simplified operation: The OOS console provides a user-friendly GUI that allows you to configure scheduled bandwidth upgrades with only a few steps.

Scenarios

Big sales promotions on e-commerce platforms

During e-commerce industry promotions at year-end and on specific holidays, website traffic dramatically surges. By using the scheduled bandwidth upgrade feature, e-commerce platforms can preset bandwidth upgrades ahead of time to ensure smooth customer access, thereby improving the shopping experience and increasing conversion rates.

Live classes on online education platforms

Online education platforms experience a rapid increase in user traffic during large-scale free public classes or live sessions with renowned instructors. By using the scheduled bandwidth upgrade feature, online education platforms can ensure that adequate network bandwidth is available during live streaming events, thereby facilitating the smooth delivery of courses.

Game releases and updates

When gaming companies launch new titles or roll out major updates, a concentrated influx of players downloading the update packages can cause a significant bandwidth spike. By using the scheduled bandwidth upgrade feature, gaming companies can offer stable download services during these critical periods, thereby improving the player experience.

Periodic data backup

For enterprises that need to undertake large-scale data migration or backups, using the scheduled bandwidth upgrade feature can ensure consistent network speed during the data transfer period. This helps shorten the backup time window and minimize the impact on business operations.

Note
  1. Only pay-as-you-go EIPs support temporary bandwidth upgrades.

  2. You can temporarily upgrade only the public bandwidth that is charged by using the pay-by-bandwidth billing method. You cannot temporarily upgrade the public bandwidth that is charged by using the pay-by-data-transfer billing method.

Procedure

  1. Log on to the CloudOps Orchestration Service console.

  2. In the left-side navigation pane, choose Automated Task > Common O&M Tasks. On the Common O&M Tasks page, click Temporary Bandwidth Upgrade and click Create.image

  3. On the Create Task Temporary Bandwidth Upgrade page, select EIP for Resource Type and configure the parameters.image

    • On the Create Task Temporary Bandwidth Upgrade page, select EIP for Resource Type and configure the parameters.

    • Bandwidth (Mbit/s): Enter the maximum bandwidth of the instance. Valid values: 1 to 500. You are charged on a pay-by-bandwidth basis. Unit: Mbit/s.

    • Duration of Bandwidth Upgrade: Unit: hours. You must specify a value that is greater than 1.

    • Permissions: To perform a temporary upgrade, you must grant the related permissions to the role assumed by OOS. For more information about how to create a role, see Use RAM to grant permissions to OOS.

      Permission policy that is required to perform this operation

      {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "vpc:DescribeEipAddresses",
              "vpc:ModifyEipAddressAttribute"
            ],
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
  4. Select Manually Select Instances, Specify Instance Tags, Specify Resource Group, Upload CSV File, or Select All in the Select Instances section.image

Appendix

Execution flowchart

The following figure shows the entire execution process.

image.png

The following figure shows the process of upgrading the bandwidth of an EIP.

image.png

Templates

The following sample code shows the content of the ACS-VPC-ScheduleToUpgradeEipBandwidth template that is used in this example:

FormatVersion: OOS-2019-06-01
Description:
  en: Schedule to upgrade EIP bandwidth   
  name-en: ACS-VPC-ScheduleToUpgradeEipBandwidth   
  categories:
    - time_trigger
Parameters:
  TimerTrigger:
    Type: Json
    Label:
      en: TimerTrigger      
    AssociationProperty: ALIYUN::OOS::Component::TimerTrigger
    AssociationPropertyMetadata:
      MinuteInterval: 30
  RegionId:
    Type: String
    Label:
      en: The id of region       
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  AllocationId:
    Type: List
    Label:
      en: TargetEIPInstance       
  Bandwidth:
    Label:
      en: Bandwidth       
    Description:
      en: The peak bandwidth of EIP needs to be modified. The value is:1~500. It is billed based on fixed bandwidth, in Mbps.
    Type: Number
    MinValue: 1
    MaxValue: 500
  DurationHour:
    Label:
      en: DurationHour
    Description: 
      en: Unit:Hour. The bandwidth upgrade should last at least 1 hours
    Type: Number
    MinValue: 1
    MaxValue: 24
    Default: 1
  RateControl:
    Label:
      en: RateControl 
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: The RAM role to be assumed by OOS  
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: GetEipInstance
    Description:
      en: Get the EIP instance  
    Action: ACS::ExecuteAPI
    Properties:
      Service: VPC
      API: DescribeEipAddresses
      Parameters:
        RegionId: '{{ RegionId }}'
        AllocationId:
          Fn::Join:
            - ','
            - '{{ AllocationId }}'
    Outputs:
      AllocationIds:
        Type: List
        ValueSelector: .EipAddresses.EipAddress[].AllocationId
  - Name: UpgradeEipAddressBandwidth
    Action: ACS::VPC::UpgradeEipBandwidth
    Description:
      en: Upgrade EIP instance bandwidth
    Properties:
      RegionId: '{{ RegionId }}'
      AllocationId: '{{ ACS::TaskLoopItem }}'
      Bandwidth: '{{ Bandwidth }}'
      DurationHour: '{{ DurationHour }}'
    Loop:
      RateControl: '{{ RateControl }}'
      Items: '{{ GetEipInstance.AllocationIds }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - TimerTrigger
        Label:
          default:
            en: Timer Trigger Configure
      - Parameters:
          - RegionId
          - AllocationId
          - Bandwidth
          - DurationHour
        Label:
          default:
            en: Select ECS Instances
      - Parameters:
          - RateControl
          - OOSAssumeRole
        Label:
          default:
            en: Control Options

The following sample code shows the content of Action: ACS::VPC::UpgradeEipBandwidth:

FormatVersion: OOS-2019-06-01
Description:
  en: Upgrading the temporary bandwidth of an EIP instance
  name-en: ACS::VPC::UpgradeEipBandwidth
Parameters:
  RegionId:
    Type: String
    Label:
      en: The id of region 
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  AllocationId:
    Type: String
    Label:
      en: TargetEIPInstance
  Bandwidth:
    Label:
      en: Bandwidth  
    Description:
      en: Unit: Mbit/s  
    Type: Number
    MinValue: 1
    MaxValue: 200
    Default: 10
  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: GetEipInstance
  Description:
    en: Views the EIP instances
  Action: ACS::ExecuteAPI
  Properties:
    Service: VPC
    API: DescribeEipAddresses
    Parameters:
      RegionId: '{{ RegionId }}'
      AllocationId: '{{ AllocationId }}'
  Outputs:
    Bandwidth:
      Type: String
      ValueSelector: .EipAddresses.EipAddress[].Bandwidth
- Name: UpgradeEipAddressBandwidth
  Action: ACS::ExecuteAPI
  Description:
    en: Upgrade EIP instance bandwidth
  Properties:
    Service: VPC
    API: ModifyEipAddressAttribute
    Parameters:
      RegionId: '{{ RegionId }}'
      AllocationId: '{{ AllocationId }}'
      Bandwidth: '{{ Bandwidth }}'
- Name: DurationHour
  Action: ACS::Sleep
  Description:
    en: Bandwidth upgrade duration
  Properties:
    Duration: '{{ DurationHour }}H'
- Name: RecoverEipAddressBandwidth
  Action: ACS::ExecuteAPI
  Description:
    en: Recover EIP instance bandwidth
  Properties:
    Service: VPC
    API: ModifyEipAddressAttribute
    Parameters:
      RegionId: '{{ RegionId }}'
      AllocationId: '{{ AllocationId }}'
      Bandwidth: '{{ GetEipInstance.Bandwidth }}'