【每周快報】0514-0520 AWS 服務更新
前言
AWS 這周在機器學習及資料庫服務上都做了不少更新。像是對於許多產業來說都十分重要的「預測功能」,AWS 這周將 Amazon Forecast 新增了支援填補遺失值的功能,例如:平均值、零、中位數等,讓資料能更完整,預測也將更加準確。另一項機器學習服務則是 AWS Transcribe 語音即時轉文字,現在支援 Vocabulary Filtering 功能,例如小孩在看卡通時,現在翻譯功能可以即時過濾掉不雅文字,避免掉可能對小孩造成的不良影響。
資料庫服務方面,Amazon DynamoDB 現在支援 String 和 Binary Attribute 為空值,對於分析資料來說變得更有彈性也更方便。另外,Amazon Redshift Data Lake 的查詢性能在這此更新後提升了兩倍,Amazon RDS for SQL Server 則多了支援批次插入文件的功能。本篇新聞也將提及 EC2、AWS Client VPN、Amazon ECS…等各領域的服務更新。
焦點新聞
Amazon Forecast 支援填補遺失值
關於時間序列預測中時常會碰到某時段或某區間缺少數值,原因可能是格式問題或人為錯誤。例如:當我們在預測零售商店的產品需求,但該商品已經賣完了,所以暫時沒有銷售紀錄,該筆資料則變成了遺失值。為了讓模型可以更準確預測,因此我們常使用平均值、中位數等方法填補遺失值,藉此讓資料更完整。
在過去我們需要先將時間序列的空值補好後再上傳至 Amazon Forecast,而透過此次更新後,Amazon Forecast 提供多種常見填補遺失值方法,例如:平均值、零、中位數等。
Forecast 支援填補遺失值的功能也會因為使用的預測方法不同而有些許的差異,以下是 Target time series 與 Related time series 兩種預測方法的比較圖。
填補遺失值只支援:Target time series 和 Related time series 這兩種預測方式。
在選擇此功能時記得注意一下邏輯上的問題,零售場景中,記錄還有存貨的商品的 0 次銷售與無庫存的 0 次銷售是不同的,因為後者並不代表客戶對該商品不感興趣,而只是因為沒有庫存而已。
因此,這個 0 可能會導致預測的值偏低,但如果使用 NaN 可能會忽略實際發生的 0 個可用商品的實際銷售情況,並導致預測變量過高。
圖片來源至:Handling Missing Values
參考來源至:Amazon Forecast now supports new automated data imputation options for the related and target time series datasets
EC2 Instance Connect 現在支援 Attribute Based Access Control (ABAC)
當使用者想要透過 SSH 的方式連線到 EC2 時,其中一種方式是利用 Key Pair,驗證使用者是否具有權限可以存取 EC2。但 Key Pair 可能因為人為疏失導致遺失,或是意外被他人竊取等風險。因此 AWS 在 2019 年 6 月時,推出了 EC2 Instance Connect,讓使用者不再需要管理 Key Pair 也可以連入 EC2,並可利用 AWS IAM 管控權限。
此次更新後,使用者可以用 Attribute Based Access Control (ABAC) 的方式,在制定 IAM 授權時,依據資源 / IAM User 所具備的 Tags 賦予 EC2 Instance Connect 的權限。可以做到針對「具有對應 Tags 的 User 才可存取具有相同 Tags 的資源」。
例如:User A 有 [Key: Name, Value: John]
的 Tag,那他能夠利用 EC2 Instance Connect 連入的 Instances,必須也要具備 [Key: Name, Value: John]
的 Tag。更多Attribute Based Access Control (ABAC)
實作的範例,可參考 eCloudture Blog – 透過 AWS Tags 實作 Attribute-Based Access Control (ABAC)。
參考來源至:EC2 Instance Connect now supports Attribute Based Access Control (ABAC)
AWS Client VPN 支援利用 SAML 2.0 做身份驗證
過去 Client VPN 還未推出利用應用程式存取 AWS Client VPN 端點,僅能透過第三方 OpenVPN 來存取 AWS Client VPN 端點,連線 VPC 及內部部署網路,雖然 OpenVPN 可以提供基礎的連線,但是缺少進階驗證及管理功能。
為了解決這個通點,AWS 在今年 2 月時先推出適用於電腦的 Client VPN 應用程式,提供 Active Directory 及使用客戶端的憑證進行身份驗證。此次更新後,再新增 SAML 2.0 方式驗證身份,以便 IT 人員更有效、方便管理組織的應用程序。
參考來源至:AWS Client VPN now supports Federated Authentication via SAML 2.0
參考來源至:Authenticate AWS Client VPN users with SAML
Amazon DynamoDB 現在支援 String 和 Binary Attribute 為空值
DynamoDB 是存放 Key-value 資料的資料庫,代表一筆資料必須要有 Key 與 Value 才能成立。例如要輸入一筆名字,Key 定義成 Name
、其 Value 為 Leo
,這樣你在 Table 上就能看到這筆資料,但是在此次更新前,如果僅輸入 Key,卻沒有輸入 Value,那麼在 Table 上是不會看到這筆資料的。
此次更新後,當 DynamoDB Item 的 Attribute 資料屬性是 String 或 Binary 時,支援其 Value 的值可以為 Null,提供更大的彈性!
如下範例,新增一筆 Item 時,可以先行宣告所需要描述產品的 Key:Description
& Value:""
,待日後新增上去即可,大大的增加與 DynamoDB 互動的彈性!在邏輯上不用再先行判斷其 Key:Description
是否存在,或是轉換成 undedined、magic number 等方式處理。
{
"itemId": 154, # Partition Key
"itemName": "東方風矮櫃",
"price": "35000",
"Description": "" # 支援空值輸入
}
需要注意以下幾種限制:
- Partition key & sort key 不得為空值
- 有用在二級索引 local secondary indexes 或 global secondary indexes 的 attribute 也不得為為空值
其他服務更新
Amazon Redshift Data Lake 查詢性能提升兩倍
由於 Redshift 是針對資料倉儲所提供的高效能服務,在面臨龐大的資料量時,快速查詢資料經常成為資料倉儲所面臨的挑戰。Redshift 現在可以使用分散式 Bloom 過濾器啟用高性能資料配對,可以有效地過濾來源資料中與配對關係不符合的資料,大幅減少了網路傳輸的數據量,提升了整體查詢性能。
參考來源至:Amazon Redshift now leverages Bloom filters to improve data lake query performance by up to 2x
Amazon RDS for SQL Server 支援批次插入文件
此次更新後,Amazon RDS for SQL Server 可以從 S3 存放 .csv、.xml、.txt 等文件,利用 Bulk Insert
功能,批次導入 到 RDS 。
Amazon ECS for EC2 launch type 現在支援 Environment files
原先使用者在啟用 ECS Container 時,會把環境變數以宣告的方式定義在 Task Definition 的欄位中,當使用者要修改環境變數時,就需建立新一版的 Task Definition、更新 ECS Service 後,重新部署到 Container。
此次更新後,使用者可以把環境變數集中寫在一份 Environment files,放在 S3 Bucket 裡,當 ECS 在部署 Container 時,就可以直接抓取檔案中的設定;需要修改時,也不需要一再創立新版的 Task Definition,只需更新 Environment files 即可。
參考來源至:Amazon Elastic Container Service now supports Environment files for the EC2 launch type
透過 AWS Backint Agent 將 SAP HANA 資料庫備份與還原於 S3
AWS Backint Agent for SAP HANA 是針對在 Amazon EC2 執行個體上執行 SAP HANA 工作負載的 SAP 備份與還原的解決方案,AWS Backint Agent 可將 SAP HANA 資料庫備份至 Amazon S3,並可以使用 SAP HANA Cockpit、SAP HANA Studio 等 SAP 管理工具或 SQL 命令將其還原至 EC2 上。
參考來源至:Easily backup and restore your SAP HANA database to and from Amazon S3 with AWS Backint Agent
現在使用者可利用 Amazon CloudFormation 部署更多服務
此次更新後,新增了以下服務可以利用 Amazon CloudFormation 部署,詳細語法請參閱文件範例:
一旦服務加入 CloudFormation 支援,也意味著將可以透過 AWS CDK 以程式語言的方式進行宣告、配置,讓我們一起期待吧!
參考來源至:AWS Global Accelerator now supports AWS CloudFormation、AWS Systems Manager enhances support for State Manager resources in AWS CloudFormation、AWS CloudFormation now supports blue/green deployments for Amazon ECS
AWS Elastic Beanstalk 現在支援 Traffic Splitting Deployment Policy
AWS Elastic Beanstalk 具有四種 deployment policies:
- All at once
- Rolling
- Rolling with additional batch
- Immutable
每一種部署的方式在「部署時機、應用程序需停機時間、rollback 機制,以及部署失敗所產生的影響」都有不同的效果。
此次更新後,Elastic Beanstalk 新增 Traffic Splitting 部署方式,可幫助使用者實現 canary testing。
當使用者利用 Elastic Beanstalk 部署新版的應用程式時,可以使用切分流量的方式,根據新版應用程式的穩定程度,慢慢將終端使用者的流量導入到新版應用程式中,以完成部署。而在 canary testing 的過程中,如果部署失敗,也可觸發 Elastic Beanstalk rollback 機制,讓流量回到原有的應用程式之中,達到不影響使用者體驗的效果。
參考來源至:AWS Elastic Beanstalk adds Traffic Splitting Deployment Policy
AWS Transcribe 語音即時轉文字支援 Vocabulary Filtering 功能
在去年 12 月推出的 Vocabulary Filtering 功能,主要是讓使用者在語音轉文字時將特殊文字過濾,例如:不雅字詞、不當用語等。使用者可以定義欲過濾的詞彙,並以 txt 檔上傳至 AWS Transcribe,之後在進行語音轉文字的任務時套用特定過濾器,即可過濾掉特定的文字內容。
而在此次更新後,Vocabulary Filtering 功能支援 real-time 即時的過濾不當文字。像是卡通在放映時,使用者可以透過此服務自動轉錄合適的字幕,藉此避免不當文字對兒童的影響。
參考來源至:Amazon Transcribe now supports vocabulary filtering for real-time transcription
AWS Backup 新增備份選項
AWS Backup 如其名是一個備份服務,可以自動備份 AWS 服務中的資料,支援的服務有我們常使用的 EFS、DynamoDB、EC2、EBS、RDS 以及 Strorage Gateway 等。
此次更新後,提供了帳號級別的設定選項,讓使用者決定是否要啟用該服務的備份功能,這樣當 AWS Backup 有支援新服務的時候,可以直接在此設定,而不用去修改 Tag。
參考來源至:AWS Backup supports new options for customizing backup selections
Amazon QLDB 現在支援即時串流
此次更新後,Amazon QLDB 新增支援 Amazon Kinesis Data Streams,可以把存放在 QLDB 中的資料傳入 Kinesis Data Streams 以實現即時資料串流。使用者可以在收到資料變動的 Event 時,把資料傳入 Kinesis Data Streams,再交由其他作為運算單元 AWS Service 來處理,例如:AWS Lambda、Amazon Elasticsearch Service、Amazon EC2 等等,幫助實現即時分析的目的。
Tag:ABAC, Amazon CloudFormation, Amazon DynamoDB, Amazon ECS, Amazon Forecast, Amazon QLDB, Amazon RDS for SQL Server, Amazon Redshift Data Lake, Attribute Based Access Control, AWS Backint Agent, AWS Backup, AWS Client VPN, AWS Elastic Beanstalk, AWS Transcribe, Binary Attribute, EC2 Instance Connect, EC2 l, Environment files, S3, SAML 2.0, SAP HANA, String, Traffic Splitting Deployment Policy, Vocabulary Filtering