使用情境
大家是否都知道如何在 AWS 上設定自動化的系統通知呢? 相信多數功力深厚的老師傅對 CloudWatch alarm + SNS 這套組合拳都不陌生。 在 AWS 上大多數資源都須要透過在 CloudWatch 上設置 alarm 來觸發通知, 透過將 SNS topic 加入 CloudWatch alarm 的 Notification 便可在 alarm 被觸發時由系統自動發信。 以上操作對大師們肯定毫無難度,但對初出江湖的雲端小白或非技術人員來說依舊存在著較高的上手難度,當此類User在打開CloudWatch介面後面對著琳瑯滿目的metrics時往往無法順利操作而感受到深深的挫敗感。
對於AWS較不熟練的使用者來說要設定東一個警報西一個通知往往過於複雜,可以說並非每位使用者都是實際有能力又願意花費額外精力做監控與警報的。降低使用者操作難度絕對是一項產品的決定性關鍵,越簡單使用的物品往往能收獲越多消費者的青睞就如大多數使用者的作業系統依舊是使用有著良好GUI的WINDOWS。您在使用AWS時您是否時常碰到以下的情況呢? 我明明只是希望當我的資源狀態改變或異常時被通知卻得對一個個metrics進行alarm的設定。真希望有方法能讓我一次性的完成這重複性的工作,若今天有個更簡潔方便的方法能設定自動化通知該有多好呢?若您曾有過類似想法的話恭喜您,因為在經過幾個月的預測後終於正式推出的AWS User Notifications便可完美的解決此問題節省您寶貴的時間。
原理
AWS User Notifications 提供使用主控台通知中心統一設定和查看 AWS 服務、所有帳戶、區域和服務發出的通知,透過此服務可方便您集中管理 AWS Notification(AWS Health 事件、Amazon CloudWatch 警示、AWS Support Case更新,或 EC2 執行個體狀態變化等)。

操作步驟
以下我們將用EC2這項服務來做為AWS User Notifications的實際測試
首先我們在AWS User Notifications介面必須先創建一個包含五個要素的notification configuration,其中兩個要素為Name& description與Tagging以下將個別講解另外3個要素。
Event rule
1.首先我們需要選擇對應的AWS服務
2.在選取好服務後我們便能進一步搜尋目前該服務所能使用的event type
3.下一步我們可以選取該event type的任何state或者是特定state。
4.當選取完以上設定後最後我們將選擇希望生效的Region。

(這邊測試將選取當EC2有任何的狀態改變時通知)
Aggregation settings
當設定好通知的規則後下一步我們需要考量的是發送通知的頻率,我們是希望先前的規則一被觸發就馬上收到通知?又或是通知的優先度並不高我們可以考慮將期間內的notification做統整後寄送成一封信? 就AWS User Notifications來說目前提供3種設定:
5分鐘內合併發送(建議項目) | 12小時內合併發送 | 不做合併發送 |
1.針對優先度較高的工作項目我們可以設定成當規則被觸發時立刻寄送給關鍵人員來及時進行處理,此類設定適合設定在PRODUCTION環境中的關鍵資源來最大化降低效能的降低。
2.對於較不緊急的資源則推薦設定為將Notification每5分鐘整理一次做寄送,如此可以有效降低過於頻繁的收到通知。
3.優先度更低的項目若只是希望能有個定期的通知來整理資源狀態可以設定為每12小時整理一次狀態並寄送,此類設定可以更有效率的收集通知外也可以減少收信的頻率。
Delivery channels – optional
針對寄送的選項目前AWS User Notifications提供了三種選擇分別為:
AWS Chatbot | AWS Console Mobile App |
1.以信件來說最多可以設定100組信箱做通知的動作,當設定完成後使用者便能在信箱收到AWS寄送的確認信件並且須點選信件內的驗證連結開通後才能夠順利收到通知。
2.若不希望經由信件的形式收到通知也可以設定AWS Chatbot將通知用聊天室的方式直接寄送給群組的人員進行問題盤查,須留意的是目前此設定只支援在同個AWS帳號內的AWS Chatbot而無法跨帳號做使用。
3.對於有在手機上使用AWS Console Mobile App的使用者AWS User Notifications也支援將通知直接發送到AWS Console Mobile App上讓使用者能直接透過手機APP來接獲通知。
*若不設立以上三種發送通道AWS User Notifications會將Notification統整好並顯示在Notification center的儀錶板上讓使用者僅做Notifications的閱覽而不進行任何通知。


(立即發送之信件)

(5分鐘合併發送之信件)
總結來說透過AWS User Notifications服務使用者可以透過單一服務的介面進行多數通知的設定因而大幅降低了操作難度,有別於過往需要在各個服務與CloudWatch alarm內進行通知設定現在可以統一於此介面進行操作。
*值得留意的是,此服務目前尚不支援自訂郵件內容,若希望能客製化信件內容暫時還是得回歸傳統的方式。
宏碁智雲秉持著宏碁母公司打破人與科技之間的藩籬的企業使命力求降低客戶的雲端操作難度來使客戶在使用雲端資源時能得心應手,透過減少複雜的流程來讓客戶能將精力投入到其他方向與實際產品上。在協助客戶設計建置架構時宏碁智雲同樣注重客戶端現有的技術能力以及架構後續維運的困難度並且透過與客戶的持續溝通來提供專業建議與架構調整。在為客戶打造最適合的雲端環境之餘也輔導客戶清楚了解其雲端環境設定與操作來減少潛在的維運成本達到第一次上雲就上手的效果。
—Ting
相關文章
*若希望跨帳號/區域使用可透過將不同帳號之EventBridge做串聯可達到此效果https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html
*若需要更進一步的設立event rule可以透過撰寫客製化的JSON event patterns 來達到此效果https://docs.aws.amazon.com/notifications/latest/userguide/common-usecases.html
參考文章
https://aws.amazon.com/tw/notifications/
https://docs.aws.amazon.com/notifications/latest/userguide/what-is-service.html