【每周快報】1104-1110 AWS 服務更新
前言
AWS 在月初推出了項新服務 – AWS Resilience Hub,幫助使用者在建置架構時,可以更有系統的去部署服務符合 Best Practice。除了這項服務,AWS 也針對 Serverless 推出了新功能 – SAM 新增 CICD 功能 – SAM pipeline,讓原本 SAM 應用程式的使用者能夠快速地透過這個新功能來完成 CICD 自動化佈署流程。
上述服務外,本周也將介紹 AWS Amplify、AWS IoT Core、Amazon Athena⋯等,各式領域的新服務與功能。
焦點新聞
AWS 推出新服務 AWS Resilience Hub
對於使用者在 AWS 建立資源過程時,時常會反覆思考怎麼設計架構與部署服務能夠滿足 Best Practice,甚至符合 AWS 提出的 Well-Architected,協助相關人員建置安全、高效能、有彈性又有效率的應用程式。
一個缺乏評估的服務和環境是無法判斷是否有符合 Best Practice,以及應付未來各種場景與突發狀況。也許使用者都知道建系統與服務總有一天會發生狀況,但問題不是有狀況發生,而是當有狀況時卻無法應付,然而使用者有多少時間能夠恢復系統,甚至在這段時間的損失該如何避免,也是許多使用者非常重要的一道課題。
該如何判斷系統或服務是否具有彈性與應付未來故障的能力,主要以兩大指標來看:
- Recovery Time Objective (RTO):意旨為花了多少時間從失敗和故障中修復。
- Recovery Point Objective (RPO):意旨為當故障事件發生後,有多少資料會從中流失。
而現在 AWS Resilience Hub 可讓使用者去定義其服務 RTO 與 RPO 的指標,它會根據使用者提供的指標給予相關建議操作,並且會產出 resilience 的分數。此外,在 AWS Console 還提供了可以預先測試流程和評估其雲端資源的功能,還可以依照特定事件來觸發警報。
AWS Resilience Hub 偵測服務範圍:服務是否是利用 AWS Cloudformation 部署起來的(包括 SAM 與 CDK),甚至涵蓋跨區域、跨帳戶資源。 另外偵測來自 Resource Groups 或 Tags 的服務,或是服務已預先被定義在 AWS Service Catalog AppRegistry 等。
而上述提到的服務不單純為應用程式與程式碼而已,還包含基礎設施:網路、虛擬機器、資料庫等。
Resilience Hub 會與 AWS Fault Injection Simulator (FIS) 來模擬所有故障可能會發生的情況,例如網路配置錯誤,或是資料庫公開的連結過多等等,除此之外, Resilience Hub 還提供了 API 供測試團隊建立測試的 CI/CD pipeline 來進行驗證,確保每個更動都有即時更新。
接下來就讓我們實作吧。
要使用 Resilience Hub 之前,必須先定義好以下四個步驟:
- 先將其服務加入評估,選擇你想要評估的服務類型。
- 定義自己的 Resilience Policy,Policy 文件需要描述服務的 RTO 與 RPO
- 開始跑評估流程, Resiliencre Hub 會列出服務破壞了哪些 Policy 並且提出建議
- 最後將評估後的建議採納至服務裡頭,並且做定期的服務評估流程
開啟 AWS Management Console,並到 AWS Resilience Hub 介面:
再者選擇將要評估服務的建置類型:
接著 Resilience Hub 會識別哪些資源會影響整體的 resilience,可以自己勾選哪些服務。
將原先定義好的 Policy 配置到該服務上。
好了之後將其 publish 出去,並且開始跑評估流程。
你會看到某些服務已經破壞原先定義的 policy。
我們可以打開報告查看細節,並且會有可視化的 dashboard 能展示其要改善的地方。
接著 Resilience Hub 會提供一系列的改善措施與方法。
以上的步驟就可以讓開發者有一個標準化的流程來測試其服務部署在 AWS 上的 resilience 以及更有系統的去部署服務符合 Best Practice。
不過該服務現在僅在以下地區支援:US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Tokyo), Europe (Ireland), and Europe (Frankfurt) 。
參考來源至:Announcing general availability of AWS Resilience Hub
圖片來源至:Measure and Improve Your Application Resilience with AWS Resilience Hub
SAM 新增 CICD 功能 – SAM pipeline
SAM 全名為 Serverless Application Model,是 AWS 針對 Serverless 應用程式所推出的一個框架,基於 CloudFormation 之上再進化,可以透過最少的資源定義來創建最完整的 Serverless 資源。
SAM pipeline 是 SAM CLI 的一項新功能,主要讓原本 SAM 應用程式的使用者能夠快速地透過這個新功能來完成 CICD,這項新功能主要由兩個指令所組成:
sam pipeline bootstrap
:是一個初始化的指令,用來創建此功能所需的 AWS 資源(基本上只要下一次就夠了)。
$ sam pipeline bootstrap
...
...
...
This will create the following required resources for the 'xxx' environment:
- Pipeline IAM user
- Pipeline execution role
- CloudFormation execution role
- Artifact bucket
Should we proceed with the creation? [y/N]: y
sam pipeline init
:用來產生 pipeline file 的指令,例如:gitlab-ci.yaml、Jenkinsfile。
在執行時會問使用者要輸出成 Jenkins、GitLab 還是 GitHub 的格式。
基本上就是先幫使用者把 CICD 至 AWS 時所需要的資源先建好(User、Role)什麼的,然後使用者得回過頭去程式碼來源那邊設定好相關權限,好讓程式碼來源可以拿著這些權限把東西傳上來;而 init
指令只是幫助使用者寫 ci 檔案而已,總結一下這個新功能對於尚未實踐 CICD 的 SAM 使用者來說算是一個快速入門,但對於已經有 pipeline 的使用者可能就沒太多幫助。
其他服務更新
-
AWS Amplify Admin UI 推出進階資料管理: AWS Amplify Admin UI 是 AWS 近年推出方便管理 AWS Amplify 應用程式和環境的後台,現在不只可以支援 Python Faker 套件產出數據,也能將數據下載成 csv 檔案方便分析且無需切換環境,讓你在 Admin UI 環境就可輕鬆操作,不僅如此若是後端環境資料有異動,也可在 data model 做欄位異動,直接 deploy model,前端環境就會跟著連動,方便使用者管理資料。
-
AWS IoT Core for LoRaWAN 支援 Firmware Over-the-Air Update: IoT Core for LoRaWAN 現在支援韌體在線更新。
-
Amazon Athena 在 Query execution plan 中增加執行成本詳情:Amazon Athena 現在會 Query execution plan 旁邊顯示執行成本,其中包含在每個階段的 CPU 使用量及處理到第幾行程式碼。
-
Amazon EC2 Fleet 和 Spot Fleet 現在支援在 capacity rebalancing 時自動關閉機器功能:Amazon EC2 fleet 是一個可定義 instance 組態設定來啟用一個或多個 instances 的功能,其組態也可以包含 Spot Instance 的類型。不過在過去,如果使用者的 EC2 Fleet 或 Spot Fleet 有啟用 capacity rebalancing 的話,當 Spot Instance 收到「高機率被收回」的信號時,會啟用新的 Spot Instance,卻不會主動關閉舊有的 Spot Instance,需要額外的手動操作來關閉。而現在推出自動關閉舊有機器功能,不過會產生些微的延遲性。
-
Amazon Translate 支援 AWS KMS 加密:Amazon Translate 是一款基於神經網路推出的深度學習服務,用於提供高品質的語言翻譯。在過去 Amazon Translate 僅支援使用 S3-SSE 加密儲放在 S3 的資料;現在支援 AWS KMS 加密且做到更方便的金鑰管理。此外,Amazon Translate 新增支援愛爾蘭語、馬拉地語、葡萄牙與和旁遮普語。
-
AWS Polly 的自然語言轉譯功能,新支援西班牙語及義大利語:現在使用者可以透過 AWS Polly 的自然語言轉譯功能,把西班牙文或是義大利文,轉成語音。
-
Amazon Lex 支援奧地利德語及南非英語:Amazon Lex 是一項可幫助使用者實作聊天機器人的服務,現在新增支援奧地利德語及南非英語,讓使用者的機器人對於奧地利德語及南非英語可以有更好的辨識及反應能力。
-
Amazon SageMaker Pipelines 支援從失敗的部署步驟重新 deploy 即可: Amazon SageMaker Pipeline 是一款將機器學習要建立到模型的 workflow,期間幫開發者做如處理資料、訓練資料、部署模型等,但在過去一但某個步驟錯誤,就得重新執行過一次 workflow,現在新功能的釋出只需要重錯誤和失敗的步驟部署即可,並且方便開發者 debug。
-
AWS Lambda 支援取用存放在不同 AWS 帳戶內 ECR 的 Container Image 作為運行環境:在去年 AWS 2020 re:Invent,AWS Lambda 新支援使用使用者自定義的 Container Image 作為運行環境,而當時只能取用存放在同一個帳戶 ECR 的 Container Image。此次新增支援能夠跨帳號的取用位在不同 AWS 帳戶內 ECR 的 Container Image。
-
Amazon SageMaker Inference endpoints 發布新的 deployment guardrails: 使用者可以通過 deployment guardrails 輕鬆的控制 host 在 Amazon SageMaker Inference endpoints 的模型版本,不只這樣,這次的更新還加入了 Canary 和線性流量轉移模式,以便使用者在新舊模型中更精細的調整流量。
-
Amazon ECS 新增底層 EC2 Host 健康狀況資訊:Amazon ECS 為 AWS 容器服務,現在支援了可視化底層 EC2 instance 的健康狀況,開發者只需透過呼叫 ECS API 就能得知目前 instance 或是 container runtime (ex: Docker) 的健康狀態,使用者更容易監控 application 的狀況及了解產生問題的原因。
-
Amazon QuickSight 在帳號設定中加入 4 個新的管理屬性:這 4 個新的屬性分別為 IP-based 的存取管制、Service Control Policy (SCP)、自動同步 emil 的 SSO 認證,以及 Bring-you-own-role,而這些新功能只有在企業版才可以用喔!
-
AWS Backup 新增支援 Amazon Neptune 及 Amazon DocumentDB 作為備份的對象:使用者現在可透過 AWS Backup 快速、集中化管理地備份存放在 Amazon Neptune 及 Amazon DocumentDB 裡的資料。