iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0

這次我們要講的就是工程師的好朋友──AWS EventBridge
講白了,它就是 AWS 幫你包裝好的「雲端鬧鐘小弟」,負責準時叫醒人、準時關機。你不需要自己在 EC2 裡面搞一個 cron job,然後還要擔心這台 EC2 會不會掛掉。

為什麼需要 EventBridge?

想像一下,如果沒有 EventBridge,你會怎麼做?

  • 自己開一台 EC2,寫個 cron job。結果 EC2 掛了,你的排程也跟著 RIP。
  • 或者乾脆跑在自己筆電上,但老闆問你:「昨天半夜為什麼沒有幫 RDS 關掉?」
    你只能乾笑回應:「筆電進入休眠狀態了。」

EventBridge 出現後,世界變得簡單了。它就像是那個每天準時催你交報告的 PM,雖然煩人,但至少不會請假、也不會突然去打 LOL。
而 Lambda 就是那個被催著要交活的打工仔。EventBridge 跟 Lambda 搭配起來,就是「雲端自動化打工仔組合包」。

EventBridge 的角色與定位

  • EventBridge Schedule = 雲端版 cron job。
    不用顧 Server、不用重開機,AWS 幫你撐住。
  • 精準控制頻率:每 10 分鐘一次、每小時一次、每天凌晨 3 點自動執行。
  • 全託管:不會有「為什麼 Server 又當了」這種爛理由。

換句話說,EventBridge 是 AWS 幫你實現「偷懶工程師的自動化春秋大夢」。

建立 EventBridge Schedule

  • 建立 Schedule:進入 EventBridge → Schedules → Create Schedule
    https://ithelp.ithome.com.tw/upload/images/20251001/20141071wiyk8dCFPc.png
  • 選擇 Schedule
    1. Schedule name:輸入Schedule名稱,這裡以 Shutdown-RDS-Schedule 為名稱
    2. Shedule pattern:因為是週期性定期出發,所以選擇 Recurring schedule
    3. Time zone:注意時區要選擇加8時區
    4. Schedule type:我們選擇 Linux 下 cron table 來做設定比較符合工程師的習慣
    5. Cron expression:因為是每10分鐘要執行一次所以在minutes的地方填入 10 ,其他欄位輸入 *?,要特別注意的是 Day of monthDay of the week 這兩個欄位不可以同時是 * 或者是同時 ?
    6. 可以在這個區塊預覽設定的時間是否正確
    7. Flexible time window:設定5分鐘表示,到達指定時間後,5分鐘內會執行。
    8. 最後按下右下角的next
      https://ithelp.ithome.com.tw/upload/images/20251001/20141071Yyqc4ZWIEh.png
  • 指定目標:Lambda ShutdownRDS
    1. Target detail:請選擇 Templated targets
    2. 目標服務,請選擇 AWS Lambda
    3. 從下拉式選單中選出我們昨天建立用來關閉 RDS 的Lambda
    4. 最後按下右下角的 next
      https://ithelp.ithome.com.tw/upload/images/20251001/201410716bFEnaUOFX.png
  • 接著確認設定的資訊是否都正確,確定正確無誤後,按下右下角的 Next 進到下一步
    https://ithelp.ithome.com.tw/upload/images/20251001/20141071lynUniEKa0.png
  • 再來就是做最後確認了,沒有問題後按下右下角的 Create Schedule,AWS就會開始建立Schedule設定
    https://ithelp.ithome.com.tw/upload/images/20251001/20141071gUF5Zb6lAH.png
  • 畫面上方出現綠色的訊息告知已經建立成功
    https://ithelp.ithome.com.tw/upload/images/20251001/20141071IrRqSmzWk4.png
    恭喜你已經成功建立了一個EventBridge Schedule 每10分鐘驅動AWS Lambda 的設定

測試與驗證

  • 測試:看看 EventBridge Schedule 有沒有在下一個整點的 10 分時成功叫醒 Lambda。想知道 Lambda 有沒有成功的執行,可以到 Lambda 介面 → Monitor 就可以看到 Lambda 執行的指標了。
    https://ithelp.ithome.com.tw/upload/images/20251001/20141071KpgtnlX1Im.png
  • CloudWatch Log:確認打工仔有沒有乖乖幫你關機。
    如果想要看到 CloudWatch Log 的紀錄,可以在上圖中(Monitor)的最下方,可以看到Log 的記錄
  • 如果沒反應?
    → 工程師經典解法:「重建一次就好了啦。」

最常見的坑

  1. IAM 權限沒設好:EventBridge 明明觸發了,但 Lambda 一臉死魚樣。請檢查 Lambda 有沒有賦予應該要有的權限。
  2. 時間格式搞錯:cron expression 打錯,結果半夜 3 點啟動。
  3. 間隔設太短:每分鐘就關一次 RDS,Log 爆到你自己先爆。

簡單來說,EventBridge + Lambda = 雲端自動化打工仔 ,從此之後有什麼需要定期執行的小操作,都可以用同樣的方式來達成。

之後會再快速的介紹怎麼幫EC2做定時開關機,可以讓伺服器在上班的時候開機下班或放假的時候關機達到節省費用的效果。


上一篇
Day 20 - 拆解 RDS 七天自動開機的神秘炸彈 - Part 1
下一篇
Day 22 - 讓 EC2 準時上下班,不再加班爆肝:EventBridge + Lambda 自動開關機指南
系列文
最適合小型工作室精打細算的服務使用法25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言