AWS Limit Monitor,主動跟蹤資源使用情況,接近limits時推送通知提醒

關注公衆號:AWS愛好者(iloveaws)
文 | 沉默惡魔(轉載請註明出處)
網站:www.iloveaws.cn

在這裏插入圖片描述

我們今天討論的主題是AWS Limit Monitor,該解決方案會自動配置必要的服務,以便在您使用AWS的過程中,當使用的資源接近limits限制時主動跟蹤資源使用情況併發送通知,幫助您避免有啓動資源需求時才發現limits到上限造成無法啓動資源從而影響線上業務的情況。

**

什麼是AWS service limits(服務限制)?

**

爲幫助AWS所有客戶提供高可用性,可靠性和強健的服務,並最大程度地減少新客戶的賬單風險,Amazon Web Services(AWS)維護每個帳戶的服務限制,也就是service limits。

登陸AWS控制檯,選擇EC2服務,然後點擊左側“限制”後,可以看到EC2服務相關的limits信息。那什麼是limits呢?如圖中“正在運行按需 t2.micro”,限制類型爲“正在運行的實例”,當前限制爲20,是指按需T2.micro,在當前的賬號,在當前區域,您正在運行的實例最大限制爲20個,如果要超過20個就需要提前向AWS申請提升limits。

AWS設置limits是爲了避免客戶因爲惡意攻擊或者腳本操作失誤等等造成開啓大量資源產生賬單風險。

在這裏插入圖片描述

幾乎每項AWS服務都是根據您在給定時間可以在特定AWS區域內啓動多少資源來控制的。但是,有時即使是最有經驗的AWS客戶也可能會意外達到服務限制,因爲申請開limits無法實時生效,那就會導致無法啓動新資源,對業務造成影響。所以如何能夠主動跟蹤AWS賬戶的資源使用情況,當接近limits的時候主動推送提醒,讓我們第一時間收到提醒,這個解決方案就產生了:

AWS Limit Monitor解決方案

爲了根據服務限制更主動地跟蹤其AWS資源使用情況,AWS提供了AWS Limit Monitor解決方案,該方案會自動配置必要的服務,以便在接近limits限制時主動跟蹤資源使用情況併發送通知。而且該解決方案易於部署,利用AWS Trusted Advisor服務Limits檢查和服務配額來幫助您顯示特定AWS服務的使用情況和Limits,並集中管理您的Limits。藉助AWS Limit Monitor,您可以接收電子郵件通知或將通知發送到現有的Slack,從而使您可以請求增加Limits或在達到Limits之前關閉資源。

Note:
要使用此解決方案,AWS帳戶必須具有Business或Enterprise 的AWS Support,才能訪問Trusted Advisor服務limits檢查。

AWS Limit Monitor架構概述

部署此解決方案將會在AWS Cloud中構建以下環境。

在這裏插入圖片描述

介紹一下這個方案的架構,上面這個架構圖看着比較複雜,其實很多都是可選項,在您的業務不需要管理Secondary賬戶limits、slack推送或vCPU limits時可以不對這些單項內容進行配置。

基礎架構非常簡單,AWS Limit Monitor包括一個在主賬戶中部署的模板。該模板會啓動一個AWS Lambda函數,該函數每24小時運行一次。(調用頻率可通過AWS cloudFormation模板調整)。Lambda函數通過API調用刷新AWS Trusted Advisor服務limits檢查,獲取最新的使用情況和limits數據。Trusted Advisor將根據limits和使用情況計算使用量,以確定狀態是正常(使用率低於80%),警告(使用率在80%至99%之間)還是錯誤(使用率100%),這個就是這個架構的核心的功能。

最近aws對於limits做了一些調整,登陸控制檯後進入到EC2的-限制頁面,在頁面最上面就會收到通知以及調整的內容:

在這裏插入圖片描述

簡單的說就是從實例計數limits調整爲vCPU計數限制(由於此調整不是本文重點,故不贅述),在我們這個AWS Limit Monitor方案中,如果您選擇監視基於Amazon Elastic Compute Cloud(Amazon EC2)的虛擬中央處理器(基於vCPU)的限制,則模板將啓動另一個Lambda函數,該函數每五分鐘運行一次。該功能檢查服務配額以檢索每個AWS區域的vCPU使用率和limits數據。該函數根據limits計算vCPU使用率,以確定狀態是“正常”(利用率低於80%),“警告”(利用率在80%至99%之間)還是“錯誤”(利用率100%)。

前面介紹了兩個Lambda函數的功能,然後由Amazon CloudWatch Events從Trusted Advisor和vCPU監視Lambda函數捕獲狀態事件,並使用一組CloudWatch Events規則將狀態事件發送到您在解決方案的初始部署期間選擇的所有目標:Amazon Simple Queue Service(Amazon SQS)隊列,Amazon Simple Notification Service(Amazon SNS)主題(可選)或Slack通知的Lambda函數(可選)。

Amazon SQS接收所有OK,WARN和ERROR狀態事件,並將它們發送到存儲事件的Amazon DynamoDB表。默認情況下,Amazon SNS和Slack僅接收WARN和ERROR狀態事件。但是,您可以根據自己的特定需求自定義通知。

以上,就是AWS Limit Monitor方案的架構及組成部分。

如果在初始部署期間啓用了Slack通知,則該解決方案將啓動一個Lambda函數,該函數將通知發送到您現有的Slack頻道。還將部署一個AWS Systems Manager參數存儲,以爲Slack WebHook URL提供高可用性,安全,持久的存儲,該URL用於將消息發送到Slack通道。

以上就是AWS Limit Monitor的架構組成部分。

支持多AWS賬戶架構

該解決方案還包括一個secondary模板,您可以將其部署在您的secondary賬戶和其他AWS區域中。可以對多賬戶進行limits集中管理,追蹤資源的使用情況,接近limits時推送通知。

secondary模板會啓動一個Lambda函數,該函數刷新secondary帳戶中的Trusted Advisor服務limits檢查。如果啓用,此模板還將啓動一個Lambda函數,以檢查服務配額中的vCPU限制。secondary帳戶中的CloudWatch Events捕獲這兩個功能的狀態事件,並使用CloudWatch Event Bus將這些事件發送到主帳戶。在主帳戶中收到這些事件後,CloudWatch Events規則會將事件發送到您選擇的目標。

以上,今天我們介紹了AWS Limit Monitor解決方案的內容,AWS Limit Monitor能讓我們輕鬆管理和跟蹤limits使用情況,接近limits上限推送提醒,避免了有啓動資源需求時才發現limits到上限造成無法啓動資源從而影響線上業務的情況,希望能夠給大家帶來幫助。

本文AWS Limit Monitor的後續內容,實際演示部署AWS Limit Monitor解決方案,我們下次再見吧。

關注公衆號:AWS愛好者(iloveaws)
文 | 沉默惡魔(轉載請註明出處)
網站:www.iloveaws.cn

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章