本文介紹了如何利用OOS提前規劃并實施定時對EIP實例的帶寬進行臨時性升級,從而保障關鍵時刻應用的性能和穩定性,同時優化成本。
功能背景
隨著業務的不斷發展和互聯網應用場景的多樣化,企業或個人用戶在特定時間段內面臨網絡流量劇增的挑戰變得尤為常見。這些流量高峰,如大規模促銷活動、熱門直播事件、重大新聞發布或季節性數據備份等場景,往往會導致原有帶寬瞬間飽和,影響用戶體驗甚至導致服務短暫不可用。然而,傳統網絡帶寬配置往往在流量驟增的特定時期無法滿足需求,而長期維持高帶寬配置則費用昂貴,這對于需要在成本控制和網絡性能間取得平衡的用戶而言,是一大挑戰。
為解決上述問題,系統運維管理OOS推出了定時升級臨時帶寬的功能,此前系統運維管理已經支持了帶寬臨時升級功能,針對使用EIP實例帶寬的場景,系統運維管理OOS新推出了EIP實例的定時升級帶寬功能,該功能旨在提供一種靈活的解決方案,允許用戶根據業務需求在特定時間段內臨時增加帶寬,提前對高峰業務做好規劃,以應對預期的流量高峰,而在高峰過后自動降低帶寬,以免產生額外成本。
關鍵特性
定時觸發:用戶可預設具體日期和時間,按計劃自動執行帶寬升級操作,無需人工介入。
自動回退:升級時長結束后,帶寬自動恢復至原定標準,避免不必要的費用支出。
成本優化:通過在需要時升級帶寬,用戶能顯著降低運營成本,實現資源的最優化利用。
簡潔操作:通過云服務平臺提供的用戶友好界面,幾步操作即可完成定時升級設置。
應用場景
電商平臺大促
在電商行業的年終大促或特定節假日促銷活動期間,網站訪問量急劇上升。通過定時升級帶寬功能,電商平臺可以在活動開始前預設帶寬升級,保證顧客訪問流暢,提升購物體驗和成交率。
在線教育直播課程
在線教育平臺在開展大型免費公開課或名師直播時,用戶訪問量會短時間內激增。利用本功能,平臺可確保在直播期間提供足夠的網絡帶寬,保障課程的順利進行。
游戲發布與更新
游戲公司在發布新游戲或進行大型更新時,玩家集中下載更新包會引起帶寬暴漲。通過定時升級帶寬,游戲公司可以在此期間提供穩定的下載服務,提升用戶體驗。
周期性數據備份
對于需要進行大規模數據遷移或備份的企業,利用定時升級帶寬功能可以在數據傳輸期間確保網絡速度,縮短備份時間窗口,減少對業務運營的影響。
僅付費類型為按量付費的實例支持EIP帶寬臨時升級。
僅能臨時提升按固定帶寬計費的公網帶寬,不能提升按使用流量計費的公網帶寬。
操作步驟
登錄系統運維管理控制臺。
在左側導航欄找到
,在常用運維任務頁面,單擊帶寬臨時升級,單擊創建。選擇EIP實例資源類型,并設置參數。
定時類型:立即執行,僅在指定時間執行一次,周期性重復執行。
帶寬(Mbps):填寫需要修改的帶寬值1-500,按固定帶寬計費,單位Mbps。
帶寬升級持續時間:以小時為單位,持續時間最少1小時。
執行使用到的權限的來源:進行臨時升級操作需要授予OOS所扮演的角色,如何創建角色,請參見為OOS服務設置RAM權限。
{ "Version": "1", "Statement": [ { "Action": [ "vpc:DescribeEipAddresses", "vpc:ModifyEipAddressAttribute" ], "Resource": "*", "Effect": "Allow" } ] }
通過手動選擇實例、指定實例標簽、指定實例資源組、上傳CSV文件、選擇全部這幾種方式選擇您要操作的EIP實例。
附錄
執行流程圖
整體執行流程圖:
其中升級EIP實例帶寬流程
模板
上述步驟中使用的模板“ACS-VPC-ScheduleToUpgradeEipBandwidth”內容如下(模板鏈接):
FormatVersion: OOS-2019-06-01
Description:
en: Schedule to upgrade EIP bandwidth
zh-cn: 定時升級EIP實例臨時帶寬
name-en: ACS-VPC-ScheduleToUpgradeEipBandwidth
name-zh-cn: 定時升級EIP實例臨時帶寬
categories:
- time_trigger
Parameters:
TimerTrigger:
Type: Json
Label:
en: TimerTrigger
zh-cn: 定時類型
AssociationProperty: ALIYUN::OOS::Component::TimerTrigger
AssociationPropertyMetadata:
MinuteInterval: 30
RegionId:
Type: String
Label:
en: The id of region
zh-cn: 地域ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
AllocationId:
Type: List
Label:
en: TargetEIPInstance
zh-cn: 目標EIP實例
Bandwidth:
Label:
en: Bandwidth
zh-cn: 帶寬
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.
zh-cn: 需要修改 EIP 的帶寬峰值,取值:1~500,按固定帶寬計費,單位為 Mbps。
Type: Number
MinValue: 1
MaxValue: 500
DurationHour:
Label:
en: DurationHour
zh-cn: 帶寬升級持續時間
Description:
zh-cn: 單位:小時。持續時間最少1小時
en: Unit:Hour. The bandwidth upgrade should last at least 1 hours
Type: Number
MinValue: 1
MaxValue: 24
Default: 1
RateControl:
Label:
en: RateControl
zh-cn: 任務執行的并發比率
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: The RAM role to be assumed by OOS
zh-cn: OOS扮演的RAM角色
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: GetEipInstance
Description:
en: Get the EIP instance
zh-cn: 獲取EIP實例
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
zh-cn: 升級EIP實例的帶寬
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:
zh-cn: 定時設置
en: Timer Trigger Configure
- Parameters:
- RegionId
- AllocationId
- Bandwidth
- DurationHour
Label:
default:
zh-cn: 選擇實例
en: Select ECS Instances
- Parameters:
- RateControl
- OOSAssumeRole
Label:
default:
zh-cn: 高級選項
en: Control Options
其中Action: ACS::VPC::UpgradeEipBandwidth內容如下:
FormatVersion: OOS-2019-06-01
Description:
en: Upgrading the temporary bandwidth of an EIP instance
zh-cn: 升級EIP實例臨時帶寬
name-en: ACS::VPC::UpgradeEipBandwidth
name-zh-cn: 升級EIP實例臨時帶寬
Parameters:
RegionId:
Type: String
Label:
en: The id of region
zh-cn: 地域ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
AllocationId:
Type: String
Label:
en: TargetEIPInstance
zh-cn: 目標EIP實例
Bandwidth:
Label:
en: Bandwidth
zh-cn: 帶寬
Description:
en: Unit:Mbps
zh-cn: 單位:Mbps
Type: Number
MinValue: 1
MaxValue: 200
Default: 10
DurationHour:
Label:
en: DurationHour
zh-cn: 帶寬升級持續時間
Description:
zh-cn: 單位:小時。持續時間最少1小時
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
zh-cn: 獲取EIP實例
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
zh-cn: 升級EIP實例的帶寬
Properties:
Service: VPC
API: ModifyEipAddressAttribute
Parameters:
RegionId: '{{ RegionId }}'
AllocationId: '{{ AllocationId }}'
Bandwidth: '{{ Bandwidth }}'
- Name: DurationHour
Action: ACS::Sleep
Description:
en: Bandwidth upgrade duration
zh-cn: 帶寬升級持續時間
Properties:
Duration: '{{ DurationHour }}H'
- Name: RecoverEipAddressBandwidth
Action: ACS::ExecuteAPI
Description:
en: Recover EIP instance bandwidth
zh-cn: 恢復EIP實例的帶寬
Properties:
Service: VPC
API: ModifyEipAddressAttribute
Parameters:
RegionId: '{{ RegionId }}'
AllocationId: '{{ AllocationId }}'
Bandwidth: '{{ GetEipInstance.Bandwidth }}'