【每周快報】0709-0715 AWS 服務更新
前言
這周 AWS 跟大家分享了即時串流媒體的服務 – IVS,這項服務不僅可以提供高品質影像還將延遲降到極低,可以為觀眾帶來更好的觀看體驗。另外許多人在關注的 AWS DeepRacer Evo 於這周開始現實折扣價 399 美元,比常規組省了高達 199 美元,有興趣的朋友們都可以在亞馬遜官網買到!上述焦點外,這周 IoT 領域也有心服務的推出,像是 IoT SiteWise 正式 GA,現在非技術人員也可以即時檢視和分析工業資料了。今天,我們還會為各位介紹 Amazon ECS、Amazon DocumentDB、AWS WAF…等,各式不同類型的服務更新唷!
焦點新聞
Amazon Interactive Video Service(IVS)即時串流媒體服務
以往要做直播串流,需要使用者自己建立應用程式、串流平台,針對直播串流內容做訊號擷取、影像處理和發訊號源到不同的媒體上,設定包含解析度、Frame、Bitrate 等影像編碼配置、音訊輸入等參數,實作 RTMP Server透過 ABR 和不同傳輸協定以支援多種平台來觀看串流影片,以 CDN 把訊號散佈到世界各個節點讓使用者透過播放器觀看…等諸多工作,現在都可以透過 Amazon IVS 一條龍解決。
Amazon IVS 是一個全託管的即時串流服務,使用者可以透過 IVS 輕鬆地打造直播平台,免除了基礎架構、網路延遲甚至全球部署等繁瑣問題。使用 AWS 全球網路基礎架構,它帶來了優秀的影像品質與超低延遲,可以為觀眾帶來更好的觀看體驗!
使用者可以直接透過 Open Broadcaster Software(OBS)等即時串流軟體,將影片串流至 IVS,便可以透過 IVS 所提供的 Endpoint 將串流影片鑲嵌至應用程式與網頁中,上述的繁瑣流程通通由 IVS 完成。
創立好 channel 之後,以 OBS 為例,使用者在開啟串流之前,需要先把 IVS 的 endpoint 複製貼到 「OBS -> 設定 -> 串流 -> 伺服器」 裡。
接著,只需要在 OBS 點選 「開始串流」。
便可以在 IVS Console 畫面看到由 OBS 串流上去的直播畫面,實測 IVS 延遲時間非常短,大約在 1~2 秒之間。
IVS 除了主打低延遲的串流體驗外,另外新增了 Timed metadata 功能,讓直播主可在適當的時機點與觀眾互動,如同 AWS Blog 中所演示的範例:
他在網頁中新增了一個 Event Listener 用來觸發網頁上問答小測驗。
player.addEventListener(PlayerEventType.TEXT_METADATA_CUE, function (cue) {
const metadataText = cue.text;
triggerQuiz(metadataText);
});
在直播的任何期間都可以透過 PutMetadata API 來觸發上述所設定的 Event Listener,觸發後便可以將設定的問答小測驗顯示於直播影像上。
參考來源至:Introducing Amazon Interactive Video Service (Amazon IVS)
圖片來源至:Amazon Interactive Video Service – Add Live Video to Your Apps and Websites
AWS DeepRacer Evo 和感測器套件正式開賣
DeepRacer 是一款完全自動的 1/18 自駕車,DeepRacer Evo 從今天開始限時折扣價 399 美元購買DeepRacer Evo,比常規組合包(價格 598 美元)省了 199 美元,而倘若已經擁有一代的 Deepracer 的話也可以直接透過 DeepRacer Sensor Kit 升級。
Deepracer Evo 新增了立體攝影鏡頭和 LiDAR 感測器,可以避開物體和進行頭對頭賽車,在避開物體的比賽中,開發人員使用傳感器來偵測、避開障礙物;在面對面競賽中,參賽者將與同一條賽道上的另一台DeepRacer 以反方向行駛競賽,並試圖在最佳圈速的同時避免碰撞。
參考來源至:AWS DeepRacer Evo and Sensor Kit now available for purchase
IoT SiteWise 正式 GA
使用者可以透過 SiteWise 收集和分析工業設備的資料,並可以快速建立 Web 應用程式,讓非技術人員可以即時檢視和分析工業資料。除此之外也可以透過設定和監控指標 (例如,故障發生間隔的平均時間和整體設備效率 (OEE)),來深入了解工廠內的運作狀況。
SiteWise 提供了多樣的方式讓使用者將資料上傳至 AWS:
- 使用 IoT SiteWise 軟體,此軟體可在任何支援 IoT Greengrass (例如,常見的工業閘道或虛擬伺服器) 的平台上執行,此軟體也可透過 OPC-UA 通訊協定直接從本地伺服器讀取資料。
- 如果將訊息透過 MQTT 上傳至 IoT Core,可以使用 Rule engine 將訊息傳送到 AWS IoT SiteWise。
- 在 IoT Events 中將觸發動作設定為 IoT SiteWise,便可以在事件發生時將資料傳送到 IoT SiteWise。
- 使用 AWS IoT SiteWise 的 API。
當我們取得數據後,可以設定 SiteWise 來監控,並可以建立視覺化的 Web 應用程式。
參考來源至:Docker and AWS collaborate to help deploy applications to Amazon ECS on AWS Fargate
Docker 與 AWS 合作:使用者可直接利用 Docker CLI 將 Container 部署至 Amazon ECS – AWS Fargate
許多利用 Docker 開發 Container 應用程式的使用者,在自己電腦 local 端測試應用程式通過後,如果要部署至 Amazon ECS,以前要自己將 Docker Container 打包後,轉換成 Task Definition,才能夠成功部署至 AWS 上。為此,使用者除了需要額外的轉換工具之外,為了部署至 ECS,使用者也要先建構在 AWS 上的環境,例如:AWS VPC 網路環境、ECS Cluster 等等,而上雲之後,又是一次測試的流程。
此次更新後,由於 Docker 與 AWS 的合作,使用者可直接透過 Docker Desktop 或是 Docker Compose 直接將 Container 部署至 AWS Fargate 上。如此一來,使用者從開發應用程式、測試、修改至部署,都可以使用同樣的 CLI,而不需要其他轉換的工具。
首先使用者需要先設定 AWS Profile,設置要部署的 Cluster 名稱及 region。設置完成後,就可以直接將 Docker Container 部署至 ECS 上,且不需自行手動建立環境。
參考來源至:Docker and AWS collaborate to help deploy applications to Amazon ECS on AWS Fargate
Amazon ECS 推出 AWS Copilot:可快速在 AWS 部署和操作容器化應用程式的 CLI 工具
AWS 於 2015 年創建了第一個用於 Amazon ECS 的官方 CLI,然而部署容器化應用程式所需的環境相當複雜,像是建構 VPC、subnet、ELB、CI/CD pipeline 等等。除此之外,ECS 的專有名詞經常讓使用者在真正部署前就已經感到混亂。
現在,AWS 推出 AWS Copilot,一款可幫助使用者快速部署容器化應用程式所需的環境的 CLI 工具。AWS Copilot 會依據過去 AWS ECS 工程師運用與客戶互動的經驗所設計出最佳實踐的環境去部署,讓使用者可以專心開發應用程式本身,不需手動控制基礎架構。甚至 AWS Copilot 可以替你部署 CI/CD 的 pipeline,當使用者上傳新的程式碼,自動更新應用程式。
使用者可利用以下的 CLI 來安裝 AWS Copilot:
$ curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-darwin-v0.1.0
$ chmod +x /usr/local/bin/copilot
$ copilot --help
使用者撰寫好要用來部署容器化應用程式的 Dockerfile 後,可以執行 Copilot CLI 來部署環境:
Copilot 會找到編寫的 Dockerfile,並透過互動式對答(例如:為應用程序命名),完成其他的設定。接著,它會創建了一個用於將服務部署到其中的環境,並將 Container 部署在環境裡。最後,Copilot 提供了一個可以直接訪問該應用程序的連結。
參考來源至:Amazon ECS announces AWS Copilot, a new CLI to deploy and operate containers in AWS
情境參考至:Introducing AWS Copilot
IoT Core 支援單個硬體 (Thing) 多個 Shadow
一組物聯網設備通常會有多個感測器來記錄不同種類的數據,例如在智慧工廠的應用場景中,可能會有溫度感測、振動頻率感測等相關的感測器來確保每部機具都能正常運作,並在溫度過高或是振動頻率過大時發出警訊、做出關閉機具等動作。
然而這些數據傳上雲端後,每筆數據都可能會由不同的存取者或以不同的頻率存取,以往我們只能透過一個 Shadow 來儲存這組硬體的相關數據,也就是說所有的數據都集中存放在同一個 Shadow 中,導致所有存取者都必須要有權限存取整個 Shadow 中的數據,造成權限上的問題。另外也會發生數據集較大的硬體可能會很快遇到 Shadow 的大小限制。
此次更新後,使用者可以將不同的硬體數據上傳到不同的 Shadow 中,同時解決了權限配給以及 Shadow 大小限制的問題。
參考來源至:AWS IoT Core now supports multiple shadows for a single IoT device
其他服務更新
Fluent Bit 支援以 Amazon Elasticsearch 作為推送 Container Log 的目的地
Fluent Bit 可以讓使用者將 Container Logs 推送到各種 AWS 服務或是其他合作夥伴的監控解決方案,像是 AWS CloudWatch、Amazon Kinesis、Datadog、Splunk 以及這次支援的 Amazon Elasticsearch。使用 Amazon ECS、Amazon EKS 或 self-managed 的 Kubernetes 在內的容器服務的使用者,都適用於這次的更動。
ECS 的使用者現在可以在 ECS Task Definition 中設定利用 FireLens interface,FireLens 會使用 Fluent Bit 將 Container Logs 發送到 Amazon Elasticsearch。
而在 EKS 或 self-managed Kubernetes 上使用 Container 的使用者,可以通過將 Fluent Bit 安裝為 DaemonSet,將容器日誌推送到Amazon Elasticsearch。
參考來源至:Fluent Bit supports Amazon Elasticsearch as a destination to route container logs
使用者現在可透過 Amazon EBS direct APIs 為任何 block storage 創立 EBS snapshots
以往,如果使用者希望可以備份 on-premise 環境中,block storage 儲存裝置裡的資料,需要自己手動複製到 EBS,再創建成 snapshots。使用者無法直接將存放在 on-premise 的資料以類似於 EBS snapshots 的格式保存。
此次更新後,使用者可以透過 EBS direct APIs,以 EBS snapshots 形式存儲 on-premise 的資料,並使用 snapshots 還原功能,將資料快速恢復到 EBS volume 中;同時,可利用讀取 snapshots 的功能,驗證 snapshots 裡的資料,並啟用回復。
參考來源至:Amazon EBS direct APIs now enable you to create snapshots directly from any block storage
Amazon DocumentDB 新增支援跨區域快照
DocumentDB 是一個相容於 MongoDB 的全託管文件資料庫,支援和 MongoDB 相同的查詢語法、API,讓原先習慣 MongoDB 的使用者在使用 DocumentDB 時更得心應手。
此次更新後,新增了跨區域的快照功能,使用者可以透過手動或自動的方式決定是否要針對 DocumentDB 進行跨區域快照,以實現災難備援、跨區開發測試等場景。
參考來源至:Amazon DocumentDB (with MongoDB compatibility) adds support for cross-region snapshot copy
AWS WAF Security Automations 支援 WAFv2 API
利用 AWS WAF Security Automations,可以幫助使用者透過 WAF 規則自動部署安全設定至 Web ACL(Access Control list),讓 Amazon Cloudfront、ALB、API gateway 過濾常見威脅及保護應用程式,此次更新後除了支援 WAFv2,同時調整部分功能,以增強效能及成本最佳化。
AWS WAF 支援 X-Forwarded-For (XFF) header
現今有許多網際網路服務供應商(ISP),為了降低外部的頻寬,建議使用者透過快取方式來連接網路,可能會透過 Proxy Server 來存取網際網路,由於這些 Proxy Server皆是透明代理,所以很多使用者並不知道自己是否正在使用 Proxy 上網,XFF 是用來辨識來自 Client 端的原始 IP,也就是真實 IP,可以想像如果沒有 XFF 技術的話,要怎麼有效地去辨別 IP 是否為正常或惡意的流量。
此次更新後,WAF 可以檢查 XFF header,可以透過速率、地理及 IP 規則去驗證 IP 是否為正常流量,假設要阻擋某些來自 Client 端的真實 IP,可以將位置指定於 XFF header 中找到的第一個 IP。
參考來源至:Support for X-Forwarded-For (XFF) header is now available for AWS WAF
Amazon Comprehend 支援即時 Custom Entity Recognition
以往使用者可以在 Comprehend 制定符合自身需求的 Custom Entity,例如:自家公司的商品名稱、財務專有名詞等等。當 Comprehend 在進行辨識的時候,就可以快速找到特定的 Entity,讓辨識結果更佳符合使用者的需求。此次更新後,Comprehend 支援即時的 Custom Entity Recognition,可幫助使用者在訓練機器學習模型時,增加辨識 Entity 的品質,使 Model 更人性化。
參考來源至:Amazon Comprehend launches real time Custom Entity Recognition
Tag:Amazon DocumentDB, Amazon EBS direct APIs, Amazon ECS, Amazon ECS - AWS Fargate, Amazon Elasticsearch, Amazon Interactive Video Service, AWS, AWS Copilot, AWS DeepRacer Evo, block storage, Container, Container Log, Docker, Docker CLI, EBS snapshots, Fluent Bit, GA, IoT Core, IoT SiteWise, IVS, Shadow