【每周快報】0206-0212 AWS 服務更新
前言
AWS 於二月初終於發布了 AWS CLI v2 了!本篇文章將會介紹此版本的幾項新功能,希望能為使用者帶來更棒的體驗。另外也會和大家分享 AWS CloudFormation StackSets 的新功能,現在可以透過 AWS Organizations 實現跨區域自動部署了。最後我們將詳細介紹這周各項服務功能的增強,包含了 Amazon ECS, Amazon Lex Slot, Amazon RDS, AWS RoboMaker… 等多項服務的改動。
一、新服務
AWS Command Line v2
經過了一段時間的 Developer preview,AWS CLI v2 正式 GA (Generally Available)發布!
AWS CLI v2 透過全新的 Installers 進行安裝,取代 Linux 原先需要透過 pip install --upgrade awscli
的方式。另外也支援透過 AWS Single Sign-On (SSO) 方式取得 Configuration、進而改善 v1 要宣告不同 Profiles 來配置多個身份操作權限,在權限切換、配置上更為便捷。
另外也基於優化使用者體驗,在 CLI v2 加入了 Auto-completion
自動完成帶入參數、--cli-auto-prompt
一步步提示使用者輸入參數、wizard
像是 AWS Console 般帶領使用者創建服務等新的參數,可以帶入到不同的服務、CLI 動作中。
二、服務的新功能
AWS CloudFormation StackSets 透過 AWS Organizations 實現跨區域、帳號的自動部署
原先若要實現跨帳號的自動部署,需要設定許多 IAM Role 來授權 StackSets 執行部署動作,而現在使用者可以經由 AWS Organizations,將一個 Template 同時部署在 Organizations 底下的多個帳戶,甚至可以跨區域部署!
StackSets 透過在 Target Account 裡創建 Stack instances 作為在各帳戶、各 Region 中部署的執行單位,當創建、更新、刪除 Stack 時,Stack instances 將會同步執行操作。此外,使用者也可以更改 Stack set operation options,幫助控制部署的時間及 Stack 數量。
- Maximum concurrent accounts:設定 CloudFormation 一次部署 Stack 的數量。例如:假設需要在 10 個帳戶中的 2 個 Region 中部署,設定百分之五十,那 CloudFormation 會在一個 Region 一次部署 5 個帳戶。
- Failure tolerance:設定部署失敗的 Stack 數量達到設定百分比時,停止繼續部署,以幫助更快速找到問題並即時停止,避免浪費資源。
在開始使用之前,使用者需要先登入 Master Account,啟用 AWS CloudFormation 與 AWS Organizations 之間的 trusted access。
三、功能的增強或改動
Amazon ECS Task Sets 支援 Tagging
ECS Task Sets 為 ECS Service 在部屬時可以指定不同 Revision,在 Service 層級下做版本切換、改善部署的便利性。在 Task Set 當中可以宣告 Task Desire Count、Capacity Provider、Task Definition、ELB 配置、Scale 邏輯…等有關於 ECS Service 的設定細節。
現在開始支援使用者為 Task Set 打上 Tag 標籤,透過自定義的 Meta data 加以管理、使用,也同時可以針對 Task Set 做 Tag-based 的存取控管、搜尋等。
Amazon ECS 支援透過 AWS CodeDeploy 實現 Canary 部署
原先 ECS 僅支援做 In-place 的方式,或是透過 CodeDeploy 切換 ALB 下面 Target groups 的方式做 Blue/Green 部署策略。若想要實作出 Canary 或是 Linear rolling update 的方式,則需要透過 Lambda 搭配 DNS Record 做權重分流方式切換版本。
在去年 11 月 ALB 支援了在同一個 Listener 底下可以做不同 Target groups 之間的 Weight routing,這個大大的改善了原先需要多個 ALB 切換 DNS 的部署方式,僅需要透過 CloudWatch Event 搭配 Lambda 的方式調整 ALB Weight 權重比,便能實現在 Endpoint 不變的情況下實作出 Canary 部署效果。
現在 ECS 新增 CodeDeploy 做部署動作的 Deployment Configuration。以原先實作 Blue/Green 的方式,透過修改 CodeDeploy 的部署配置,在部署階段 CodeDeploy 會自動地切換 ALB Target groups 之間的 Weight 權重比,進而實現 Canary / Linear 部署策略;大大降低了使用者要自己透過 CloudWatch Event & Alarm 搭配 Lambda 實現部署、Rollback 的功夫!
🥳 CodeDeploy now does canary deployments to ECS! https://t.co/O72skjzJUD
I'm super excited about this feature, so I thought I'd do a little visual journey about how these deployments work. Thread! 👇 👇 pic.twitter.com/VYGZUqaWRD
— Clare Liguori (@clare_liguori) February 6, 2020
參考來源至:AWS CodeDeploy now supports linear and canary deployments for Amazon ECS
Amazon Lex Slot 類別支援 AlphaNumeric 型態
過往在使用 自定義的 Slot 時,使用者都需耗費大量時間建立大量樣本。而 AlphaNumeric 型態的 Slot 類別可以辨識由字母與數字所組成的字串,並透過正規表示式定義 Slot 並限制使用者輸入的格式。如車牌 ABD8899
則可用 [A-Z]{3}[0-9]{4}
表示車牌前三碼必須為英文,後三碼須為數字。此功能可以加速使用者在設定自定義 Slot 的開發時間,並確保使用者輸入正確格式。
參考來源至:Amazon Lex announces support for Alphanumeric slot type
AWS CodeBuild 新增支援 Amazon EFS
使用者現在可以在 CodeBuild Project 中,指定一個或多個 EFS filesystem ID。透過在 buildspec 設定,CodeBuild 在建置的過程中,會確保該指定的 EFS filesystem 已成功掛載且可被存取。
Amazon Personalize 現在可使用更多項目屬性(item attributes)來提高個人化推薦的準確性
原先使用者在建構 ML 模型時,最多使用 5 個項目屬性作為分析的依據。現在此限制數量提升至 50 個,使用者可提供有關商品的更多信息,例如:類別、品牌、價格、尺寸、發布年份等,以提高推薦的準確性。
參考來源至:Amazon Personalize can now use 10X more item attributes to improve relevance of recommendations
Amazon RDS Data API 現在支援 AWS PrivateLink
利用 RDS Data API,當使用者建立與 Aurora Serverless DB cluster 的連線時,無需保持長時間的連線,而是透過安全的 HTTP endpoints 對 DB 發出 SQL 指令,進而減少管理連線的時間。此次更新之後,使用者可以在呼叫 RDS Data API 時,使用 AWS PrivateLink 作為連線的方式,不需要經過網際網路,以提升資料存取的安全性及穩定度。
AWS RoboMaker 新增批次處理 API
使用 RoboMaker 的使用者常常會同時模擬多個 Simulate Job 來測試模擬環境,但時常會碰到 RoboMaker 單次同時模擬的 Service Limit,導致無法有效率的測試。 此次更新的 Batch API 則可以有效的解決此問題,當使用者 透過此 API 模擬多個 Simulate Job 後,會進入佇列中等候,並以 Service Limit 為上限進行批次處理,當有某個 Simulate Job 完成後,便會自動啟動下一個 Simulate Job,讓使用者能夠不需要浪費過多的時間在等待上。
參考來源至:AWS RoboMaker now supports creating simulation jobs in batch with a single API call
AWS AppSync 支援 AWS X-Ray 及 GraphQL
現在你可以在 AppSync 上啟用 X-Ray,利用 X-Ray 追蹤在 AppSync 執行的請求,且可以透過 GraphQL API ,進而啟用 X-Ray tracing ,例如我們執行下面的 GraphQL query:
query getPost {
getPost(id: "1") {
id
title
}
}
透過 getPost
query 可以看到在 X-Ray 中 DynamoDB data source 裡 API 延遲的資訊:
進而幫助使用者分析、解決在後端服務中的問題和錯誤。
參考來源至:AWS AppSync releases integration with AWS X-Ray and GraphQL Info object support
Amazon EventBridge 新增數字內容過濾
Amazon EventBridge 原先就有支援針對事件內容進行過濾,使用者可以設置規則,針對不同的條件與情況做篩選,倘若規則不符合便不會將事件傳送至後端,以減少後端流量與成本。而 此次內容過濾則針對“數字內容” 進行過濾,例如:某個值是否存在或介於某個範圍內等相關比較,大幅的提高了規則的靈活性。
AWS Elemental MediaConnect 輸出數量限制更動
透過 AWS Elemental MediaConnect 將影片發送到的指定的位址、protocol 和 port,原先每個 flow 輸出的數量上限為 20,此次更新後將數量上限提升到 50,提升直播的便利性。
參考來源至:Up to 50 Outputs per Flow Now Supported in AWS Elemental MediaConnect
Amazon Elasticsearch Service 增加權限控制的顆粒度
針對許多不同的使用場景,時常會出現不同職位(權限)的人需要查閱同一個 Board 的情況,如何讓這些人僅閱讀他們權限範圍內的東西是一件非常頭痛的事情。此次更新後,將權限控管顆粒度縮小,能夠針對索引(index)、文件、與欄位進行設定唯讀。
參考來源至:Configure fine-grained data access with Amazon Elasticsearch Service
Amazon Cognito User Pools 支援設定 case insensitivity
Amazon Cognito User Pools 現在建立 User Pools 時可以設定 case insensitivity,讓使用在登入時可避免因大小寫輸錯而無法登入的問題。目前新建的 User Pools 會預設為 case insensitivity,而使用者可透過 Console 調整為 case sensitive。至於已建立的 Users Pool 則繼續維持 case sensitive,而透過 Cognito API 所建立的 Users Pool 預設亦為 case sensitive。
參考來源至:Amazon Cognito User Pools service now supports case insensitivity for user aliases
Amazon RDS for Oracle 導入 FIPS 140-2 協定
現在可以透過 Oracle SSL 設定去啟用 FIPS 140-2 ,將其中的設定的參數 FIPS.SSLFIPS_140
設定為 TRUE
,就可以啟用 FIPS 標準,讓 Client 端及 Oracle 資料庫之間的數據進行加密,不但可以提升安全性,且符合部分國家的規範。
Tag:AlphaNumeric, Amazon Cognito User Pools, Amazon ECS Task Sets, Amazon EFS, Amazon Elasticsearch Service, Amazon EventBridge, Amazon Lex Slot, Amazon Personalize, Amazon RDS Data API, Amazon RDS for Oracle, API, AWS AppSync, AWS CloudFormation StackSets, AWS CodeBuild, AWS CodeDeploy, AWS Command Line v2, AWS Elemental MediaConnect, AWS Organizations, AWS PrivateLink, AWS RoboMaker, AWS X-Ray, Canary, case insensitivity, FIPS 140-2, GraphQL, Tagging