【每周快報】0920-1002 AWS 服務更新
前言
AWS 在 2018 年 re:Invent 上宣布的 Amazon Timestream 於上周正式發布了,這項全託管服務讓使用者更方便收集、存儲和處理時間序列相關的資料。資料庫服務外,AWS 也在機器學習領域做了些服務優化。像是 Amazon Textract 現在提升對貨幣符號識別的準確度,銀行在對帳或是整理報表時會容易許多。另外,為了讓使用者降低營運成本、省去建置基礎架構的程序,Amazon SageMaker Processing 現在支援使用內建的 Spark containers 以處理大量數據,讓使用者能專注在 Spark 的配置及設定作業處理,其餘部分交由 SageMaker 處理即可。
上述焦點服務外,我們還會向大家介紹 Amazon API Gateway、AWS Client VPN、AWS CloudFormation Guard…等服務的更新,並和大家分享這些服務在更新後帶來的好處及應用。
一、焦點新聞
Amazon Timestream 正式 GA
AWS 在 2018 年 re:Invent 期間宣布了 Amazon Timestream,一種全託管、專用於時間序列的 Database 服務,可用於收集、存儲和處理時間序列相關的資料,例如:IoT sensor 收集到的資料、應用程式的運作日誌,以及工業遙測數據等等,後續可用於機器學習、分析與數據視覺化。
Timestream 可自動擴展以處理數億個時間序列事件,其速度比 Relational Database 快 1,000 倍,而成本卻只有其 1/10。Timestream 會依據資料的新舊程度,將最新數據保留在 in-memory 中,而歷史數據則是根據用戶定義的 retention policy,移到 cost-optimized tier 來分別存放,從而節省了使用者的費用。
然而,分類存放並不影響查詢資料的難易度。Timestream 專用的查詢處理引擎讓使用者能夠透過 single query 跨層的訪問最新和歷史資料,而無需在 query 中明確指定資料是存放在 in-memory 還是 cost-optimized tier 中。
- 舉例來說:查看最近兩個小時內,按主機名稱分類,每 5 分鐘間隔的平均 CPU 使用率。在 query 的指令中,並不需要特別指定資料的存放位置,Timestream 可自動跨層 query 資料。
SELECT hostname,
bin(time, 5m) as binned_time,
avg(measure_value::double) as avg_cpu_utilization
FROM MyDatabase.MyTable
WHERE measure_name = 'cpu_utilization'
AND time > ago(2h)
GROUP BY hostname, bin(time, 5m)
此外,Amazon Timestream 可與其他 AWS 服務或是第三方軟體串接使用,包括 AWS IoT Core、Amazon Kinesis、Amazon MSK、Amazon QuickSight、Amazon SageMaker 以及第三方開源工具,像是 Grafana 和 Telegram。使用 Amazon Timestream 不需要任何前期成本,並且使用者僅需為程式編譯、存儲或查詢數據付費即可。
參考來源至:Amazon Timestream is now Generally Available 圖片來源至:Store and Access Time Series Data at Any Scale with Amazon Timestream – Now Generally Available
AWS IoT Core 支援將時間序列型的數據流傳輸到 Amazon Timestream
現今有許多企業、使用者會希望透過物聯網、邊緣運算和應用程式的串接,從隨時間變化的大量數據中獲取 insight。例如:製造商可能希望追蹤整個廠房中,IoT 傳感器所偵測到的數據,以利於掌控設備狀況。此次更新後,使用 IoT Core 連接多個 device 的使用者,可設置 IoT Rule 將 sensor 收集來的資料,直接傳輸到 Amazon Timestream 存放,不需撰寫任何的程式碼作轉換。
參考來源至:AWS IoT Core Adds the Ability to Stream Time-series Data to Amazon Timestream
二、其他服務更新
Amazon API Gateway 新增支援 mutual TLS (mTLS)
先前 API Gateway 支援單向的 TLS 身份驗證的方式,以確保 API Client 能夠通過驗證 Certificate 的方式來驗證 API Gateway 的身份。此次更新後,使用者現在可以在自定義的 Domain name 上實施 mutual TLS (mTLS),從而支援 Client 到 Server 和 Server 到 Client 雙向的 Certificate 的身份驗證,以降低中間人攻擊的風險。
參考來源至:Amazon API Gateway now supports mutual TLS authentication
Amazon Textract 提升擷取文字的準確度
Amazon Textract 是一個透過機器學習技術幫助使用者擷取文字的服務,使用者可以從掃描的文件或圖片中擷取資訊,此次更新後,提升 OCR 對貨幣符號識別準確度,適合用在銀行對帳單、報表等文件,皆能有更好的擷取資訊體驗。
參考來源至:Amazon Textract has improved accuracy of detecting currency symbols, key value pairs and checkboxes
Amazon Textract 支援將辨識結果存放在自定義的 S3 buckets
以往使用者在利用 Textract 擷取、辨識文件中的文字與資料時,可透過 AWS Console 或是 AWS CLI 呼叫 GetDocumentTextDetection
或是 GetDocumentAnalysis
APIs,取得 Textract 處理過後的結果。此次更新後,除了可利用呼叫 API 的方式,使用者也可以將結果放置在自定義的 S3 buckets 中,當再次需要取用時,即可直接從 S3 buckets 下載,而不需要在呼叫 API 一次。
AWS Client VPN 支援 client-to-client connectivity
AWS Client VPN 是一種能夠讓使用者安全地建立 on-premise 與 AWS 端的連線方式,而一個 AWS VPN Client endpoint 可以與多個 VPN Client 做連接,也就是說,同一個 VPN Client endpoint 可同時與兩個不同的地端環境建立安全連線。
此次更新後,連接到同一個 AWS Client VPN endpoint 的 VPN Client,可以透過 VPN 連線互相溝通,並創建本地路由。例如:具有 active VPN connection 的開發人員能夠與另一個在相同 AWS Client VPN endpoint 上具有 active VPN connection 的 on-premise 環境進行交互;同時,這讓使用者可以在不更改網路安全策略的情況下建立安全連接。
參考來源至:AWS Client VPN now supports client to client connectivity
AWS Systems Manager 透過 Visual Studio Code 撰寫自動化腳本
AWS Systems Manager Automation 幫助使用者對資源執行日常維護或部署的腳本,像是設定每隔一段時間自動更新 CloudFormation Template,在執行更新前必須得到使用者的允許,以便於實施例行公事,簡化複雜的動作,降低失敗機率,此次更新後,可以利用 Visual Studio Code 來撰寫自動化腳本,提供使用者更多選擇。
- 首先打開 Visual Studio Code 在 Extensions 搜尋 AWS ToolKit 按下安裝。
- 按下在 AWS Expolorer 旁的額外設定。
- 選擇 Connect to AWS。
- 接下來選擇要在哪個 Region
- 就會看到可以操作的服務,按下 System Manager,底下除了有Amazon 提供的Sample 腳本,也可看到使用者建置或分享的腳本
使用者可以在此編輯腳本,快速部署到 AWS 上。
參考來源至:Now author AWS Systems Manager Automation runbooks using Visual Studio Code
AWS CloudFormation Guard 正式 GA
AWS CloudFormation Guard(cfn-guard)是一種透過 CLI 介面幫助企業在 AWS 上建構的基礎設施及應用程式資源皆擁有合規性,僅需要定義 Policy 來驗證資源配置的規則,就可以幫助管理者檢查 CloudFormation 所建立的資源是否有不合規行為產生,以助於企業減少不必要的營運成本,且能降低安全漏洞風險,例如:管理者可以透過 Policy 確保開發人員僅能建立加密的 EBS Volume,以降低資料竊取的風險。
也能把 cfn-guard 加入 CI/CD 的一部份,假設模板中的資源未符合規則,那麼 cfn-guard 會發出訊息以提供開發人員識別不合規資源,以預防不必要成本或安全漏洞的問題產生。此次更新後服務正式 GA,使用者可以考慮部署在正式環境。
參考來源至:AWS CloudFormation Guard – an open-source CLI for infrastructure compliance – is now generally available 參考來源至:aws-cloudformation/cloudformation-guard
AWS CodePipeline 支援可以在 Source Actions 使用 Git Clone 指令
過去 AWS CodePipeline 僅能單純抓取 Repository,就好比是直接在 Repository 按下 Download 檔案,並無法知道 Git 狀態。 假設使用者在 Output artifact format 選擇 CodePipeline default,在 Buildspec 加入 git status
指令,會在 Build logs 看到以下結果:
在這裡面並不會有關於 Git 檔案,此次更新後,使用者可以透過 Full Clone 選項,在 Code Build 過程中,連同 Git Commit 紀錄及 Metadata,都會被擷取,在使用上較為便利,現在使用者可以在 Console 上看到此選項。
所以如果是選擇 Full Clone,那麼執行 git status
指令,會在 Build logs 看到以下結果:
就會發現 Git 狀態會存在 AWS CodeBuild 裡。
參考來源至:AWS CodePipeline now Supports git clone for Source Actions
AWS CodePipeline 支援 GitHub Enterprise Server 作為 source repository
先前 CodePipeline 支援 AWS CodeCommit、Bitbucket Cloud、GitHub.com 以及 Amazon S3 作為 repository 的來源端,當 repository 有任何變更時,可自動觸發 CodePipeline 進行更新與部署。此次更新後,CodePipeline 新增支援 GitHub Enterprise Server 作為 repository 的來源,增加使用者選擇的選項。
參考來源至:AWS CodePipeline now Supports GitHub Enterprise Server
Amazon SageMaker Processing 支援使用內建的 Spark containers 以處理大量數據
Apache Spark 是個用於大數據處理的分析引擎。以往使用者需要花費許多的時間、人力、成本以維護 及管理用於運行 Spark 作業的基礎架構。現在,Amazon SageMaker 提供內建的 Docker Image,其中包括 Apache Spark 和運行其數據處理作業所需的 dependencyies 及套件。不僅可以幫助使用者降低營運成本、省去建置基礎架構的程序,還可以享有 SageMaker 所有安全性和合規性的好處。使用者可專注於管理 Spark 的配置及設定作業處理的邏輯,剩餘的交由 SageMaker 處理即可。
參考來源至:Amazon SageMaker Processing now supports built-in Spark containers for big data processing
Tag:Amazon API Gateway, Amazon Kinesis, Amazon MSK, Amazon QuickSight, Amazon SageMaker, Amazon SageMaker Processing, Amazon Textract, Amazon Timestream, AWS, AWS Client VPN, AWS CloudFormation Guard, AWS CodePipeline, AWS Expolorer, AWS IoT Core, AWS Systems Manager, client-to-client connectivity, Database, Git Clone, GitHub Enterprise Server, Grafana, IoT sensor, mTLS, mutual TLS, Relational Database, S3 buckets, Source Actions, source repository, Spark containers, System Manager, Telegraf, Visual Studio Code