【每周快報】0618-0701 AWS 服務更新
前言
端午連假期間,AWS 悄悄推出不少新服務,也對於既有服務做了許多改善。其中最特別的新服務莫過於 Amazon Honeycode,造福許多 AWS 初學者甚至是不懂程式語言的人,有了這項服務即使不會寫程式碼,也能夠建立應用程式及網站。除此之外,許多 Beta 版本的服務也在這兩周內陸續 GA 了,包含大數據領域的 Amazon RDS Proxy、機器學習方面的 Amazon CodeGuru 以及適用於 Kubernetes 的 AWS App Mesh controller。
推出新服務外,AWS 也持續優化各領域的服務,像是透過機器學習服務的 Amazon Rekognition Video,現在新增媒體分析功能,而原始程式碼控制服務 AWS CodeCommit,則是開始在回應評論中支援表情符號,讓溝通方式變得更加活潑。上述多項有趣的新服務外,這周我們也會向大家介紹 Amazon DocumentDB、Amazon ECS Service、Amazon Athena…等多個服務的更新及改善。
焦點新聞
推出 Amazon Honeycode Beta 版本
Amazon Honeycode 是目前推出的 beta 服務,主打讓使用者 不需要寫任何的程式碼,就能快速建立應用程式。
Honeycode 目前的計價方式以月費計算,有三種方案可讓使用者選擇,值得注意的是 Basic
版本是免費的,非常適合想試水溫的使用者試用。
進入 Honeycode 後必須要創建 workbook
來作業,workbook
相當於專案的資料夾,裡面會存放所有此此專案的資料(以試算表的方式儲存)、介面等,並且能夠與團隊成員共用此資料夾。
Honeycode 也內建了幾個常用的使用場景,使用者可以直接套用模板,再自行定義需要修改的地方;也能夠匯入現有的試算表或者從空白的試算表開始,所以基本上使用者如果很熟悉試算表介面與相關函式的話,就可以很迅速的透過 Honeycode 來建立應用程式。
每個 workbook 都由三個重要的元素組成:Table、Builder 與 Automations,Table 為主要應用程式中存放資料與項目的地方,也是建立應用程式的第一步可以從 CSV 文件匯入,也可以使用內建模板快速入門,所以我們可以把它想像成應用程式資料庫的角色。
Builder 則為應用程式的介面設計,提供應用程式所需的使用者介面元件,像是按鈕、列表以及輸入欄位等,我們可以在 Builder 中拖曳、設計想要的使用者介面,並透過表達式與 Table 的值相關聯,當設計完成後可以直接預覽修改後的介面。
Automations 則為事件觸發的自動化流程,使用者可以選擇事件發生後傳送電子郵件告知使用者或是修改 Table 等。
當使用者想跟其他人共享開發成果,可以在 Honeycode 中選擇要共享的成員,對方將會收到專屬連結,點開連結便能開啟該應用程式,而 iOS 與 Android 用戶,則需要在行動裝置上先安裝 Honeycode Player 來開啟。
總結來說,如果應用場景範圍與資料較少的使用者會選擇使用工具軟體來解決需求,隨著應用範圍擴大、資料數量增加,往往會開始僱用軟體工程師來建立符合自身需求的應用程式,然而工具軟體與自行開發應用程式是非常兩極化的作法,也不是一兩天就能迅速移轉。所以大部分的使用者通常會選擇使用試算表來彌補這中間的落差,但試算表有很明顯的限制,不只難以處理大量資料,而且要將多個試算表與多個使用者共同編輯也存在著一定的限制。
Honeycode 則是為了解決此問題而誕生的服務,以試算表為基礎建立應用程式,並能與團隊成員共享共編,幫助使用者度過建立應用程式的過渡時期。
Amazon RDS Proxy 正式 GA
Amazon RDS Proxy 是用於 Amazon RDS的全託管資料庫 Proxy 代理,於 2019 年 12 月推出 Preview beta 版,而現在正式 GA!
圖片來自:Amazon RDS Proxy
當應用程式透過建立 Connection 與 RDS 溝通時,會取用 RDS Instance 上的 memory 和 computing resource。如果開啟大量的 Connection 或頻繁地開關的 Connection,可能會影響資料庫的 memory 和 computing resource,導致效能緩慢及受限應用程式的可擴展性。
透過使用 RDS Proxy,在應用程式及其資料庫之間,設立一個代理的角色,統一管理 Connection。當應用程式發出 request,RDS Proxy 會分配 Connection 給該次 request,而不是重新建立 Connection。從而提升資料庫效率和應用程式可擴展性。如果是 multi-AZ 的部署方式,當 Master Database 出現故障,RDS Proxy 會自動連線至 Secondary RDS Instance,同時保持與應用程式的連線,最多可降低 66% 資料庫容錯移轉的時間。
此外,使用者一樣可以搭配 AWS Secrets Manager 和 AWS IAM 管理資料庫憑證和存取,無需在應用程式程式碼中嵌入資料庫憑證,來降低洩漏的風險,並能實作到自動更換資料庫憑證的解決方案。
Amazon CodeGuru 正式 GA
開發的過程中,在不影響外部功能的前提下,修改內部的程式結構,讓程式更加容易閱讀、維護,是軟體團隊開發時的一個重要環節 — Code Review,Amazon CodeGuru 是 AWS 推出自動執行程式碼審查並提供應用程式效能建議的服務,藉由找到耗費資源的程式碼,改善應用程式效能。
CodeGuru 利用 Amazon 程式庫中的數十萬個專案訓練機器學習模型,而程式庫包含成千上萬 Amazon 開發人員在數十年間對程式碼進行審查與應用程式分析的應用程式分析的經驗。
CodeGuru 是 Reviewer 與 Profiler 組成,Reviewer 主要是在審查程式碼階段給予建議,透過使用者對 git 的 pull/push 請求,標記可能有問題的程式碼,對 Bitbucket、GitHub、AWS CodeCommit 及 GitHub Enterprise Server 中的程式碼進行分析並提供建議。而 Profiler 則會透過代理程式在程式的運行,尋找會耗費大量資源的程式法並給予建議,這兩項功能可以提供降低執行程式碼成本或提升程式碼執行性能的建議,進而提升程式碼品質。
適用於 Kubernetes 的 AWS App Mesh controller 正式 GA
AWS App Mesh 是一種服務網狀網路,可提供 application-level networking,可幫助多種類型的運算單位能夠彼此互相溝通。例如:使用者利用 ECS Container 架設了 Web Application,同時利用 EC2 作為 Database Server,而 Web Application 也可以觸發 Lambda,對 AWS 其他資源採取指定的動作。透過 App Mesh,可標準化服務之間通訊的方式,並提供 end-to-end 可見性,確保應用程式的高可用性。
此次更新後,使用者可以使用適用於 Kubernetes 的 AWS App Mesh controller,來建立連線至 App Mesh,並定義流量路由,以及設定加密等安全功能。另外,使用者還可以在 AWS Cloud Map 中自動註冊 Kubernetes Pod 以進行 service discovery。
此外,AWS 提供了官方教學,有興趣試用的使用者可參考官方文件 Tutorial: Configure App Mesh integration with Kubernetes。
參考來源至:AWS App Mesh controller for Kubernetes is now generally available
AWS AppMesh 推出新功能:Timeout Configuration
當多種類型的運算單位在彼此連線及溝通時,如果不同運算單位因各自特殊的原因而故障,無法回應 Request 時,會導致 Requester 端停滯在等待 Response 的階段。因應上述的情況,AWS App Mesh 推出了新的功能:Timeout Configuration。
使用者可依據自身需求,設置兩種 Timeout 的規則:
- 依據單一請求 (per-request) 回復的時間:如果請求等待 Response 的時間超過設定的 Timeout 時間長度,可選擇放棄連線
- 依據連線閒置的時間:如果 Connection 閒置的時間超過 Timeout 設定的時間長度,便會中斷連線。
透過設置 Timeout Configuration,使用者可優化系統的彈性,而不會因臨時的故障,讓系統停滯而無法繼續運作。
Amazon DocumentDB 新增查詢索引並支援空字串
Amazon DocumentDB 是一個與 MongoDB 相容的文件資料庫,使用者可以透過與 MongoDB 相同的 API 與查詢方式來與 DocumentDB 互動,但某些功能還是有些許不同,有關差異請詳見官方文件 DocumentDB – Functional Differences。
此次更新後新增支援 $regex
的查詢索引以及支援 null
值。
參考來源至:Amazon DocumentDB adds index and support for null characters in strings
Amazon ECS Service 現在提供註冊至多個 Target Group 的生命週期事件
使用者可將 ECS Service 掛載在多個 Target Group 底下以接收來自 ELB 的訪問流量,如來自 Internet 或 Private network 的流量;或是同一個 ELB,但來自不同 Port 的流量,如不同的 Port,對應到不同的服務內容。
以往 ECS 只有支援針對 ECS Service 掛到單一 Target Group 的事件通知(成功、失敗、移除),此次更新後,AWS 為掛載至多個 Target Group 的 ECS Service 提供了 ELB 生命週期事件。
ECS 會將三種類型的事件傳送給 EventBridge:Container Instance 狀態變更的相關事件、Task 狀態變更的相關事件以及 Services 動作的相關事件。當 Task 在 Target Group 中成功註冊或移除,或者註冊過程中出現錯誤時,ECS 會發出服務事件通知使用者,讓使用者可以即時了解 Task 註冊的到 Target Group 的進度,進而幫助使用者對意外事件採取應對措施。
參考來源至:ELB lifecycle events now available with Amazon ECS services registered with multiple target groups
Amazon VPC 新增 Prefix Lists
現在開始 VPC 可以透過新增 Prefix Lists 來管控多個 CIDR Block 的路由方式及 Security Groups 設定,也能透過 Resource Access Manager(RAM)服務與其他 AWS 帳戶共享。
現在可以在 VPC Console 的左側看到 Managed Prefix Lists 的選項,點開來後,會看到有兩個預設 Prefix Lists,分別是 S3 與 DynamoDB 的 AWS-managed prefix list。
使用者也可以客製 prefix list,指定 IPv4 或 Ipv6 CIDR Block,數量沒有限制,同時也能上 Tag。
完成後,可以看到 Prefix List 的狀態及 CIDR Block 的詳細資料。
接下來可以從 Security Group 中選到 Prefix list,作為 rule 其中之一。
除此之外,也能在 Route Table 選取 Prefix list 作為路由。
假設今天企業要設定架設在 AWS 上應用程式的安全設定及路由,Prefix list 可以簡化設定的流程,企業不需要一個一個增加,不但可以加快設定速度,也能有效控管存取的 CIDR Block 以確保 CIDR 配置的一致性。
其他服務更新
Amazon Athena 支援 Partition Projection
當資料表非常龐大時,使用者可能會採取 Partition 分割的方式,來提升效能存取,Athena 在這之前會先從 AWS Glue Data Catalog 或 Hive Metastore 查詢 Metadata 的訊息,但是如果 Partition 過多,在查詢 Metadata 時可能會相當耗時。
此次更新後,Athena 支援 Partition Projection ,在 In-memory 下存取 Metadata 的值,可以加速分割資料表查詢處理,且自動執行 Partition 管理。
Amazon Aurora Global Database 支援透過 Read Replica Write Fowarding
Aurora Global Database 是一個跨多個 AWS Region 的資料庫,支援較低延遲的讀取,且助於災難恢復。
Aurora 提供最多五個 Region 的 Read Replica,以提供更良好的體驗給位在不同 Region 的使用者。相較於連接至位在實體距離較遠的 Primary Database,透過實體距離較近的 Read Replica,可以獲取更低延遲的讀取,一方面也能降低 Primary Database 的負擔。
但是上述的使用方式會出現另一個問題,運行在次要 Region 中的應用程式也會有資料要寫入 Database 的需求。為了完成一次寫入的動作,次要 Region 中的應用程式需要連結至 Primary Database,將資料寫入後,再由 Primary Database 複寫至各 Region 中的 Read Replica。如果在完成複寫的過程中,有其他位在次要 Region 的使用者傳送 Read Request,就會讀取到舊的資料,而發生 Dirty Data、資料不一致的狀況。
此次更新後,Write Request 可傳送至次要 Region 中的 Read Replica,並透過安全通訊通道,將 Write Request 安全地轉發至 Primary Database,且能在低延遲的狀態下,將 Primary Database 寫入複寫至各 Region 的 Read Replica,降低 Primary Region 對應用程式的牽制。
參考來源至:Amazon Aurora Global Database supports read replica write forwarding
AWS PrivateLink 新增支援多個服務 / 服務的功能
AWS PrivateLink 透過不讓資料暴露於 Public Internet,提升雲端應用程式在傳輸資料時的安全性和隱密性。AWS PrivateLink 利用 Amazon 內部網路,安全地提供 VPC 及 AWS 服務與地端環境應用程式間的私有連線。AWS PrivateLink 可以輕鬆地連接不同帳戶和 VPC 的服務,從而大幅簡化網路架構。
AWS PrivateLink 新增支援以下服務 / 服務的功能:
- Amazon Transcribe Medical Real-Time Streaming
- Amazon Transcribe Real-Time Streaming
- Amazon Fraud Detector(Preview 版)
此次更新後,使用者可以利用 AWS PrivateLink 從 VPC 連線至上述的服務,不需要再訪問至 Public Service Endpoing,利用 Amazon 內部網路可以避免讓流量經過 Public Internet 以降低風險。
參考來源至:Amazon Fraud Detector Preview now supports connectivity through AWS PrivateLink
參考來源至:Announcing AWS PrivateLink Support for Amazon Transcribe Real-Time Streaming
參考來源至:Announcing AWS PrivateLink Support for Amazon Transcribe Medical Real-Time Streaming
Amazon SES 支援 E-mail 延遲通知
在使用 Amazon SES 時,在寄發 E-mail 可能因為一些原因會發生延遲的問題,例如:收件人的收件匣容量已滿,或是接收電子郵件的 Server 出現問題,使用者無法直接得知信件是否有真的送抵達到收件者位址。
此次更新後,Amazon SES 可以設置當 E-mail 發送延遲的通知,在這個通知裡會記載延遲的類型、發生延遲的日期、時間以及 Amazon SES 將停止重新傳遞訊息的日期與時間,讓使用者更方便掌控寄發信件的狀態。
參考來源至:Amazon SES can now send notifications when the delivery of an email is delayed
Amazon Redshift Materialized Views 新增支援外部來源資料
在做大數據分析時,應用程式經常需要對大型資料表執行複雜的查詢,例如在數十億筆的資料表上執行多個資料表 Join 及 Aggregate 等 SQL 查詢,然而處理這些查詢相當耗費資源,且運算非常耗時。
Materialized View 其實就是預先查詢好的結果,先設定好一個或多個資料表進行的 SQL 查詢後等候使用,所以對某些需要重複查詢的情況下非常有用。
此次更新後 Materialized View 會透過 Spectrum 來引用外部資源(S3)或透過 Federated Queries 來引用 RDS 中的數據。
參考來源至:Amazon Redshift materialized views support external tables
Amazon Rekognition Video 新增媒體分析功能
Amazon Rekognition Video 是一個利用機器學習(ML)的服務,可分析影片,以偵測各種物品、人物、臉部、文字和場景,並偵測任何不當的內容。此次更新後,Rekognition Video 推出了四個常用的媒體分析功能:偵測黑框、結束字幕、鏡頭切換,以及彩條。這些功能可幫助使用者執行各種後製作業,例如:片頭片尾的處理、廣告插入,以及放入警示字幕。
- 偵測全黑的畫面:在影片中,有時會以全黑的畫面表示場景、時間的轉換,Rekognition Video 可幫助使用者辨識出來,使用者可以選擇移除不想要的片段,並插入廣告,將整個封裝作業自動化。
- 偵測代表結束的字幕:通常在影片的結尾,會出現致謝詞,用以標示參與影片製作的所有團隊成員。透過 Rekognition Video,使用者可以實作互動式觀衆提示,預告下一部影片的內容、時間、劇情提要等等。
- 偵測鏡頭的切換:影片中經常會使用鏡頭切換的技巧,展示不同人的視角或是人物的不同面向。使用者可以使用選取的鏡頭創作促銷廣告,透過選擇鏡頭中的關鍵畫面來產生高品質預覽縮圖,並在不干擾觀衆體驗的情況下插入廣告,例如:避免在有人說話時中間插入鏡頭。
- 偵測畫面出現的彩條:Rekognition Video 可偵測顯示 SMPTE(電影電視工程師學會)彩條的部分,從影片內容中將其移除,或偵測各種問題,例如:當持續顯示彩條的時間過長,就暫停播放。
參考來源至:Announcing media analysis features for Amazon Rekognition Video
圖片來源至:New – Streamline media analysis tasks with Amazon Rekognition Video
Amazon Rekognition Custom Labels 現在支援僅對單一物件 training
Amazon Rekognition Custom Labels 為自動機器學習 (ML) 的功能,可讓使用者快速訓練出自己的模型,以便從影像偵測特定的物件和場景。例如:使用者訓練自訂模型,用以在社交媒體文章中尋找自身公司的標誌或產品,也可以對獨特機器的零件進行分類。
以往,使用 Rekognition Custom Labels,使用者至少要提供兩種物件作為標籤化的依據。但部分使用者僅需尋找單一物件類別,為此使用者必須建立第二個物件(另一個物件或「非物件」)的標籤。此次更新後,使用者只需要指定他們關注的單一物件標籤即可訓練模型。
參考來源至:Amazon Rekognition Custom Labels now supports single object training
AWS Config 與 AWS CloudFormation Registry 整合
使用 AWS CloudFormation Registry,使用者不僅可以透過 CloudFormation Stack 管理 AWS 應用程式資源,還可以自動管理私人和第三方的相關資源。而 AWS Config 可幫助使用者存取、稽核和評估應用程式資源的組態。
此次更新後,透過 Config 與 CloudFormation Registry 的整合,使用者可以利用 AWS Config 管理 CloudFormation Registry 裡的 AWS、私人、第三方的資源,藉此確保資源的合規性。
參考來源至:AWS Config integrates with the AWS CloudFormation Registry
AWS CodeCommit 現在支援以表情符號回應評論
此次更新後,AWS CodeCommit 現在支援可以在 Pull Requests 及 Commits 以表情符號回覆評論。開發人員只需按一下評論內的表情符號,就可以用能代表其意見回饋的表情符號快速回覆評論。支援的表情符號內含大眾常使用的表情符號,例如:豎起拇指和拇指朝下、微笑臉孔、心型和我同意。
開發人員針對 code 的變更,可以使用回覆向團隊成員提出自己的想法,團隊中的其他人也可以利用表情符號對回覆提供意見回饋,像是表示贊同或是不贊同。使用表情符號不僅有助於團隊的溝通,也讓溝通的方式更加多元與活潑,例如:開發人員可看到有多少團隊成員豎起拇指,同意他/她提出的評論。
參考來源至:AWS CodeCommit now supports Emoji Reactions to Comments
Amazon FSx for Lustre 提供高可靠檔案系統備份
此次更新後,使用者只要在 AWS Console 點擊備份按鈕,就能取得 FSx for Lustre 檔案系統內資料的 Point-in-time 備份副本,進一步保護檔案系統資料,並符合商業和規範合規要求。而每一次備份皆是以 Incremental 的方式備份,所以下一次備份僅會備份新更改的部分。
資料來源至:Amazon FSx for Lustre now provides highly-durable file system backups
AWS DataSync 支援 CloudWatch Logs
DataSync 是一項線上數據傳輸服務,自動化加速與 AWS Storage Service 之間的大量數據複製,此次更新後,DataSync 可以自動生成CloudWatch Logs 和資源設定,每當 DataSync 開始運作時,都可以在 CloudWatch Logs 看到 DataSync 數據傳輸的 Logs,像是每個傳輸的文件或物件的名稱,大小和 Timestamp。
參考來源至:AWS DataSync can now automatically configure your Amazon CloudWatch Logs configuration
Tag:Amazon Athena, Amazon Aurora Global Database, Amazon CodeGuru, Amazon DocumentDB, Amazon ECS Service, Amazon Honeycode, Amazon RDS Proxy, Amazon VPC, AWS App Mesh controller, AWS PrivateLink, Kubernetes, Partition Projection, Prefix Lists, Read Replica Write Fowarding, Target Group, Timeout Configuration