【每周快報】0312-0318 AWS 服務更新
前言
在去年底的 re:Invent 上,Werner Vogels 提到的 Fault Injection Simulator 終於在上週發布了,這項新功能可以幫助使用者做系統演練,即早找到未知的問題,進而優化系統效能及修復 Bug。此外,AWS 也針對容器領域推出了新服務,現在 Amazon ECS 允許使用者在 Amazon EC2 或 AWS Fargate 上運行的容器中執行指令了。
上述服務外,文中也將提及 AWS Config、Amazon RDS Proxy…等多項服務新增的支援及改動。
焦點新聞
AWS 推出新服務【Fault Injection Simulator】自動協助企業找出 IT 系統的潛在問題
在建置完系統時,必須進行測試,除了確保系統是否可以正常運行在正式環境上,通常我們也會確保系統是否有符合高可用性、高容錯能力及安全性,就算發生了 SPOF(單點故障),不會危及整個系統,或是系統具有持續復原能力,且具備災難復原的特性。但我們要如何去驗證系統是否有具備這些能力呢?
AWS Fault Injection Simulator 是一個混沌工程的服務,使用者可以透過它發現在 AWS 應用程式上潛在弱點,就像透過防火演習,即早找到未知的問題,進而優化系統效能及修復 Bug。
透過 AWS Fault Injection Simulator,使用者可以透過故障注入的實驗方式,當發生各類型的故障事件,系統會如何做出回應,使用者可以在 FIS Console 上創建 Experiment template ,給予執行實驗所需的權限:
然而指定要對哪些資源去做實驗、執行多久時間等,將這些執行的動作進行排序。AWS 提供許多預設的模板可以做選擇:
除此之外也能指定當 CloudWatch Alarm 被觸發時,立即中斷實驗。目前 AWS Fault Injection Simulator 僅支援 EC2、ECS、EKS 及 RDS。提供企業對系統進行弱點分析
參考來源至:AWS Fault Injection Simulator – Use Controlled Experiments to Boost Resilience
Amazon ECS 允許使用者在 Amazon EC2 或 AWS Fargate 上運行的容器中執行指令
Amazon Elastic Container Service(Amazon ECS)引入了 Amazon ECS Exec,這是一種簡單、安全且可稽核的管道,讓使用者可以在 EC2 instance 或 AWS Fargate 運行的容器中執行指令。
ECS Exec 讓使用者可以用 shell 或指令更輕鬆地 debug、診斷錯誤、dump 資料和統計資訊,以及與容器中的程式進行互動。 使用ECS Exec,使用者可以直接與正在運行的容器互動,無需透過 host instance,避免需要打開 port 或管理 SSH key 進而改善 container instances 的安全性。
使用者可以在更細的顆粒度下(如 ECS 任務或服務)來啟用此功能,以幫助使用者維護更嚴格的安全性,透過 IAM policy 使用者可以已適當的顆粒度 policy 來控制誰可以對那些集群、任務或容器執行指令。一旦有了權限,使用者也可以利用 AWS CloudTrail 來查看哪個用戶訪問了那些容器,也可以將用戶輸入的指令輸出至 S3 或 Amazon CloudWatch 中。這讓 ECS 用戶能够安全地排除開發過程中遇到的bug或系統問題,並為他們的容器化應用程式的開發過程提供了一個調整工具。
AWS Copilot 也同步支援
參考來源至:Amazon ECS now allows you to execute commands in a container running on Amazon EC2 or AWS Fargate
參考來源至:AWS Copilot launches v1.4 with support for ECS exec and more
圖片來源至:NEW – Using Amazon ECS Exec to access your containers on AWS Fargate and Amazon EC2
其他服務更新
Amazon EC2 Auto Scaling 新增對本地時區支援以實現 scheduled scaling
Amazon EC2 Auto Scaling 可以讓使用者為他的 Auto Scaling group 設定一組時間表,以調整 EC2 的容量在固定的時間依據設定擴展到對應容量,EC2 Auto Scaling 現在可以透過 AWS Command Line Interface (CLI) 跟 AWS SDKs 來設定 scheduled scaling 的本地時區,AWS Management Console 跟 AWS CloudFormation 也即將上線此功能,選擇時區可以使時間表更易於查看,也無需調整夏令時間(DST)。
參考來源至:Amazon EC2 Auto Scaling adds support for local time zones for scheduled scaling
Amazon Elasticsearch Service 新增更新服務狀態功能
AWS Elasticsearch 會定期發布軟體更新,以往我們僅能透過 Amazon Elasticsearch 控制台看到目前有什麼可用的更新及看到更新狀態,此次更新後,使用者可以透過 AWS CloudWatch 和 AWS EventBridge 看到現在是否有什麼可用的更新、正在執行的更新以及完成的更新,幫助企業可以更便利去追蹤 AWS Elasticsearch 的狀態。
AWS Config 針對 Secrets Manger 新增 Config rule
通常我們會透過 AWS Config 幫助我們評估及驗證在 AWS 環境是否有根據合規性進行配置,確保資源都有符合最佳實踐。此次更新後,AWS Config 針對 AWS Secrets Manger 新增了以下三個規則:
- secretsmanager-using-cmk: 檢查存放在 AWS Secret Manager 裡的 Secrets 是否有透過 AWS KMS 作加密。
- secretsmanager-secret-unused:檢查 Secrets 是否有在指定的天數內被存取。
- secrets manager-secret-periodic-rotation: 檢查是否有在指定的天數內更新 Secrets。
透過這三個規則可以幫助使用者管理 AWS Secrets 的週期,確保資源皆具有合規性及安全性。
參考來源至:AWS Config Adds 3 New Config Rules for Amazon Secrets Manager
Amazon RDS Proxy 為 Amazon Aurora Replicas 新增 read-only endpoints
在一般情況下,RDS Proxy 會為應用程式提供一個 Aurora primary instance 的連線,現在使用者可以創建一個或多個 read-only endpoint 來將應用程式連結到那些 Aurora Replica。
RDS Proxy 藉由共享 Aurora Replica 之間的 database connection 來增強 scalability 。如果出現故障,RDS Proxy 會自動連接到下一個可用的 Aurora Replica,同時保持應用程式的連接,從而提高 Aurora Replica 的可用性。最後,使用 RDS Proxy,應用程式對 Aurora primary instance 跟 Aurora Replica 都使用 IAM 驗證,從而無需在應用程式中存儲資料庫的憑證。
參考來源至:Amazon RDS Proxy adds read-only endpoints for Amazon Aurora Replicas
Amazon RDS Proxy now supports database connectivity from multiple Amazon VPCs
Amazon RDS Proxy 現在允許使用者建立額外的 endpoint,每個 endpoint 都有自己的 VPC 網絡設定,讓來自不同 VPC 中的應用程式可以存取 Aurora 或 RDS。
此次更新後,使用者現在可以建立額外的 RDS proxy endpoint,以實現從其他 VPC 到資料庫的連接。例如,使用者在執行的報表應用程式需要存取在不同 VPC 的資料庫時,可在應用程式所在的 VPC 中創建 RDS proxy endpoint 來啟用與資料庫的連線。
參考來源至:Amazon RDS Proxy now supports database connectivity from multiple Amazon VPCs
Tag:Auto Scaling, AWS Fault Injection Simulator, Ec2, ECS, Fargate, 容器服務, 混沌工程