AWS - FIS 災難演練


背景

一般來說對於系統與軟體的設計我們要悲觀的設想哪邊可能會出問題,此外我們可以更近一步的用一些情境來演練我們實際遇到一些現實狀況的問題而應該採取的策略,而 AWS 有提供一項服務稱作 FIS(Fault Injection Service) 於 AWS Resilience Hub,FIS 提供很多災難情況的 Template 來模擬 EC2/EKS/Zone 掛掉的情境,你可以套用在你的 EC2/EKS 等,檢驗你的系統是否能夠撐過這個情境之中。


實作環節


建立一個 ASG

比如設置個 min 1 max 10 的 ASG

image


選擇你要模擬的情境

在 FIS 中 Create experiment from senario

你會看到有很多種情境可以選擇來模擬

image

這邊我們選 EC2 Stress: Instance Failure

接下來就可以給這個 Experiment 一些設定,甚至可以指定多個帳號

比較需要注意的是在 Step.2 Specify actions and targets

  • Actions
    • StopAction 停止模擬的條件
  • Targets
    • TaggedInstance 擁有指定標籤的資源

當然這些都可以設定,我的話就會用 Resource IDs 指定我要模擬失敗得 Instance 用來測試 ASG 有沒有正常維持 Desired 的數量

最後給予這個 Experiment 一個 IAM Role 就可以 Create 了


啟動 Experiment Start

進到 ASG 會發現指定的 EC2 真的 Unhealthy

image

但是 ASG 也 Health Check 到這台 Instance 所以成功啟動新的 EC2 Instance 了

image

這就代表有達到我們災難演練的目的

更新於