【每周快報】0423-0428 AWS 服務更新
前言
繼上周非洲區域啟動後,這周歐洲 – 米蘭區域也正式啟動了!目前為止歐洲已經有 6 個區域,其中義大利有高達 5 個 edge location,義大利終端使用者也獲得了更好的服務體驗。
從去年七月開始,AWS 陸續為多項服務推出 Preview 版本,這些服務在這周都正式 GA 了!包含讓使用者更方便監控應用程式端點的 Amazon CloudWatch Synthetics、方便使用者將多個 AWS 服務與 Slack 頻道或 Amazon Chime 聊天室整合的 AWS Chatbot,以及全託管 Apache Cassandra 相容資料庫服務 – Amazon Keyspaces!
這周我們還會介紹 AWS 新推出的 Amazon AppFlow,這項服務讓使用者快速整合散佈在各平台的資料,且為了確保資料的安全性,資料會先加密再利用 AppFlow 傳輸。新服務的推出外,AWS 也對許多其他服務做了改善,像是大數據方面,Amazon Redshift、Amazon Kinesis Data Firehose 及 AWS Glue 這周新增了些支援。上述服務外,文中也將提及 AWS Storage Gateway、AWS Config、Amazon EKS 等多項服務。
一、焦點新聞
AWS 新增 Europe (Milan) Region
現在歐洲-米蘭區域正式啟動!正式名稱為 Europe (Milan),縮寫為 eu-south-1
,為 AWS 第 24 個區域,由三個 AZ 所組成, 全球可用區的數量也來到 76 個!
目前歐洲-米蘭區域支援大部分的服務,詳細請見 Region Table – Europe。
至今 AWS 在歐洲已經有 6 個區域,在義大利更是有 5 個 edge locations,隨著米蘭區域的開放,可幫助更多位於義大利的終端使用者獲得更好的使用體驗!
新推出 Amazon AppFlow!
Amazon AppFlow 是一個能夠幫助整合第三方 SaaS 平台上資料的服務,例如:Slack、DataDog、Google Analytics 等 13 個第三方應用程式。
有越來越多使用者開始使用 SaaS 服務,可能會因為不同需求、情境而選擇不同供應商,使得資料散佈在多個平台上。當團隊企圖搜集這些資料以做後續分析時,會需要花費不少時間及人力把資料整併在一起,甚至在過程中有資料外洩、資料不一致等風險。還有一種常見的情況是資料格式不一致,就會需要另外經過 ETL 的過程來清除轉換成能夠直接分析的形式。
透過 AppFlow 可以在 AWS 與第三方應用程式(例如:Salesforce、Zendesk、ServiceNow 等等)之間串接起 data flows,快速整合散佈在各平台的資料,同時為了確保資料的安全性,資料會先加密再利用 AppFlow 傳輸。如果第三方應用程式有支援 AWS PrivateLink,AppFlow 會自動使用 AWS Private network 傳輸,降低資料暴露在 Internet 而遭受到網路攻擊的風險。
AppFlow 現在支援 On Demand、Event-based、Scheduled (排程) 三種不同方式觸發,使用者可設定針對臨時需求或是定期工作來進行資料整合; CloudTrail 也同時支援紀錄、監控 AppFlow API 呼叫請求動作。
- AppFlow 預設啟用加密的服務,使用者可設定使用 Default KMS Key 或是自行創建一把 Key。
- AppFlow 目前支援的 source 有 13 種,未來可能會繼續新增。
- 需要先連結 Slack 帳戶資訊至 AppFlow 來獲取 Slack Workspace 裡的對話紀錄
- 可以將匯入資料到 S3 後,利用 Athena、QuickSight 做圖表分析
- 目前 AppFlow 支援的 Destination 僅有 Amazon Redshift、Amazon S3、Salesforce、Snowflake。
使用 AppFlow,會根據使用的 data flow 數量收費,以及目的地的儲存費用。
參考來源至:Introducing Amazon AppFlow
圖片來源至:New – Announcing Amazon AppFlow
Amazon CloudWatch Synthetics 正式 GA
CloudWatch Synthetics 在 2019 年 11 月推出 Preview 版本,讓使用者更方便監控應用程式端點。使用者可以透過它每分鐘去監控 REST API、URL 和網站內容,偵測是否有遭到惡意攻擊,與實作 Health check 監控是否正常服務。
如當 DDOS、網路釣魚、SQL Injection 和 XSS 等不正常流量訪問到服務端點時,CloudWatch Synthetics 會發現服務端點有異常發生,可以即時發出提醒、甚至往後觸發自動化行為,以便快速修復。加快在服務端點發生異常時的響應速度,進而可以搶先在終端使用者提出 Issues 前反應事件。
在 CloudWatch Synthetics 底下,有一個核心組件 — Canaries,想要監控網站,必須要先建置 Canaries 才能運行,建置完成後可以從 CloudWatch Console 上看到所建置的 Canaries 運行的狀況:
點擊其中一個 Canaries,可以看到更詳細的訊息,像是在每個時間點測試成功或失敗的圖表、上一次測試的結果、在24小時內是否有任何問題、已經測試成功的比例:
現在 Free Tier 提供每個月前 100 個 Canaries 使用,而付費模式每個 Canaries 為 $ 0.0012 (以 N.Virginia 為例)。
參考來源至:Amazon CloudWatch Synthetics is now generally available
AWS Chatbot 正式 GA
AWS Chatbot 在 2019 年 7 月推出,先前一直處於 Preview 的階段,現在終於正式 GA (General Available)!
AWS Chatbot 是一個能夠讓使用者將多個 AWS 服務與 Slack 頻道或 Amazon Chime 聊天室整合的服務,以利在 ChatOps 的情境下使用。使用者可以把 CloudWatch Alarm 及 CloudWatch Event 推送至 Slack 頻道或 Amazon Chime 聊天室,以接收各種通知、告警。
以往使用者若是想接收到 AWS 服務相關的通知,經常會使用 Amazon SNS 服務寄送通知到 Email 信箱或是手機簡訊,雖然方便,卻難免會與其他信件混雜,造成日後搜尋及管理上的不方便;又或是使用者可以利用 CloudWatch Log Group 來存放不同資源運作的運作日誌,以人工方式查驗狀態。
現在運用 AWS Chatbot,不僅可以接收通知、隨時查詢帳戶內資源的狀態,也可以直接在 Slack 頻道或 Amazon Chime 聊天室中下指令,觸發 Lambda 或發起 AWS Support Cases,以對突發狀況採取應變措施。
AWS Chatbot 不需收費,使用者只需要針對 Chatbot 所觸發的服務收費,例如:Amazon SNS、Amazon Lambda 等等。
Amazon Keyspaces 正式 GA
Amazon Keyspaces 先前的正式名稱為 Amazon Managed Apache Cassandra Service (MCS),於 2019 年 12 月推出的全託管 Apache Cassandra 相容資料庫服務。
使用 Keyspaces,使用者可以將自身現有的 Cassandra Query Language (CQL) 搬遷至 AWS 做託管,不再需要管理 Server 、服務 Capacity、服務可用性或是版本 Patch 等問題,只需要針對所使用的資源數量付費,便可享受 99.99% 可用性、無上限 throughput 和無上限 storage 空間。原先使用者只能透過 Console 創建 Keyspaces,現在也支援以 CloudFormation 做部署。
如運用透過 API Gateway 搭配 Lambda 取得儲存在 Keyspaces 的資料:
情境參考自:AWS Blog: New – Amazon Keyspaces (for Apache Cassandra) is Now Generally Available
在以下範例中,使用者期望將書本的相關資訊放置在 Keyspaces 之中。首先使用者須先建立一個 Keyspace 作為 database,再創建用於存放資料的 Table。接著每當有 request 觸發新增資料或是查詢資料,會由 Lambda 確認是否具有存取的權限,如果通過認證,便會將資料放入 Keyspaces Table。
架構設定完成後,我們利用 curl
或 Postman
工具來觸發 API Gateway,分別創建資料並查詢目前 Table 裡的狀態。
- 創建資料:
## request
$ curl -i -d '{ "isbn": "978-0201896831", "title": "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd Edition)", "author": "Donald E. Knuth", "pages": 672, "year_of_publication": 1997 }' -H "Content-Type: application/json" -X POST https://a1b2c3d4e5.execute-api.eu-west-1.amazonaws.com/books
## response
HTTP/1.1 201 Created
{ "isbn": "978-0201896831", "title": "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd Edition)", "author": "Donald E. Knuth", "pages": 672, "year_of_publication": 1997 }
- 查詢資料:
## request
$ curl -i https://a1b2c3d4e5-api.eu-west-1.amazonaws.com/books
## response
HTTP/1.1 200 OK
[ { "isbn": "978-0201896831", "title": "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd Edition)", "author": "Donald E. Knuth", "pages": 672, "year_of_publication": 1997 } ]
- 也可以針對
Key
來搜尋:isbn
為 partition key
## request
$ curl -i https://a1b2c3d4e5.execute-api.eu-west-1.amazonaws.com/books/978-0201896831
## response
HTTP/1.1 200 OK
{ "isbn": "978-0201896831", "title": "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd Edition)", "author": "Donald E. Knuth", "pages": 672, "year_of_publication": 1997 }
## 若資料不存在,則會得到以下 response
HTTP/1.1 404 Not Found
{"message": "not found"}
參考來源至:Amazon Keyspaces (for Apache Cassandra) is now generally available
其他服務更新
Amazon EKS managed node groups 現在支援 Private network
以往使用者在建立 EKS node group 時,不論 node 是在 private 或 public subnets,都會覆蓋 subnet 的 auto-assign IP 設定,自動配置一個 public IP。因此使用者經常在創立 EKS node group 時,無端消耗 AWS VPC 所支援的 public IP 數量。
按照 subnet 的設定,在 private subnet 中的資源,是不需要 public IP 以 public 方式訪問其他服務端點,而是透過 NAT solutions 轉址出去 VPC 訪問 Internet,或是透過 VPN、DX、VPC Enepoints 等 Private 訪問方式造訪。
此次更新之後,創立 node instance 時,會遵照 subnet 的 auto-assign IP 設定,在 private subnet 裡的 node instance,就不會配置 public IP。不過此項更新只會影響往後新創立的 node group。
使用者可利用 VPC Console 或是以下指令檢查 subnets 的 auto-assign IP 設定:
$ aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-0a78a1eac2c6f1c97" | grep 'MapPublicIpOnLaunch\|SubnetId\|VpcId\|State'
"MapPublicIpOnLaunch": true,
"State": "available",
"SubnetId": "subnet-7c127crb",
參考來源至:Upcoming Changes to IP Assignment for EKS Managed Node Groups
IAM Access Analyzer 現在可以分析透過 S3 Access Points 存取的 Bucket
為了幫助使用者更準確知道 S3 Bucket 存取權限,IAM Access Analyzer 現在除了能分析 Bucket Policies 和 Access Control Lists,也能分析 S3 Access Point Policies,使用者可以隨時利用 IAM Access Analyzer 快速檢查每個 S3 Bucket 的權限、即時修改,以遵循最小權限的最佳實踐。
使用者可以從 Console 中看到這個 Bucket 是受哪種 Policy 控制權限、可以做什麼事情,如下圖:
參考來源至:Discover, review, and remediate unintended access to S3 buckets shared through S3 Access Points
Amazon Redshift 現在支援針對 Redshift Spectrum 及 Concurrency Scaling 功能設定使用上限
在 Amazon Redshift 的收費方式中,使用者需付費的項目有 node instance 的使用數量與執行時間、Redshift Spectrum、Concurrency Scaling、備份資料的儲存費,以及傳輸資料的傳輸費。
Redshift Spectrum 及 Concurrency Scaling 是兩個經常使用的功能。當使用者將原始資料放置在 S3 中,可以使用 Redshift Spectrum 有效率地查詢其中的檔案並擷取結構化與半結構化的資料,並針對查詢的資料量大小進行收費。而使用 Concurrency Scaling 能夠加速 Cluster 查詢的速度,如果 Cluster 現有的容量不足以支援讀取的速度,Redshift 將會自動擴展容量。由此可知,使用這兩個功能需花費不少的成本。
此次更新後,使用者可為每個 Cluster 設置 Redshift Spectrum 及 Concurrency Scaling 每日 / 每週 / 每月的使用上限,幫助使用者控制 Redshift 的使用成本。當使用量接近於上限值,使用者可以設定需採取的動作,如觸發 CloudWatch Alarm 並寄送 SNS 通知至管理者的 email 信箱等通知或自動化行為,最後強制 Cluster 無法再繼續使用該功能。
參考來源至:Announcing cost controls for Amazon Redshift Spectrum and Concurrency Scaling
AWS Storage Gateway 功能優化
當你需要把地端的數據存儲在 AWS 上,可以透過 Storage Gateway 連接地端設備及雲端,快速安全地將數據傳上雲端,不管是檔案、磁帶或是磁碟 存儲皆有支援。
Tape Gateway 支援自動新增虛擬磁帶
使用者創建好 Tape Gateway 後,還需要創建 virtual tapes 來作為 on-premise 應用程式備份的地點。使用者可先預估備份檔案需要多少的容量,並分配不同容量給每個 virtual tapes 以滿足容量的需求,但不必擔心閒置空間的費用,使用多少的空間再付多少費用即可。
而隨著備份資料的數量增加,最終可能超過當初創立 virtual tapes 的總容量,因儲存容量不足而造成備份中斷。此時使用者需要手動創建額外的 virtual tapes,再掛載到備份用的應用程式之中,掛載完成後才能重新執行、繼續備份動作。
此次更新後,當容量不足時,Tape Gateway 可自動新增足以滿足需求的 virtual tapes,不需要再手動操作或是撰寫腳本執行創建的動作,甚至新增完成後,也會直接掛載至應用程式中,讓管理備份更加輕鬆、降低中斷的風險。
參考來源至:AWS Storage Gateway automates creating new virtual tapes on Tape Gateway
Tape Gateway 支援更加快速的讀取速度
Tape Gateway 支援比過去快 2 倍的讀取及寫入速度,使存儲的效率更佳。On-premise 應用程式最高寫入速度可達 5.2 Gbps;讀取速度最高則可達 8.2 Gbps,取決於地端與 AWS 之間的頻寬速度。
參考來源至:AWS Storage Gateway increases Tape Gateway write and read performance by 2x
AWS Config 新增兩種合規性模板
使用者可以透過啟用 AWS Config 合規性模板,直接對資源控制做偵測及修復,一旦不合規的事件發生,除了即時發現,也能快速地修復。
此次更新後,新增了 2 個模板:
- AWS Control Tower 偵測護欄合規性模板
- CIS 合規性模板
AWS Glue 支援串流資料 ETL
先前要以串流資料做 ETL 時,只能透過手動介接處理。此次更新後,可以將 Amazon Kinesis Data Streams 或 Apache Kafka 等串流資料作為 input source,觸發 AWS Glue 執行 ETL Job,將結果持續存到 Amazon S3 data lake、JDBC Store 中,使用者可以利用這個功能來處理點擊流資料、IoT 串流資料或 log 等 Streaming data。
假設今天想要對存放在 Kinesis 裡的串流資料進行 ETL,首先你需要從 AWS Glue Console 中建立 Data Store
,選擇你的資料來源、URL 及串流資料的名稱:
再來就是定義你的資料架構為何:
Data Store
完成之後,我們要開始創建 Glue Job
執行 ETL,輸入名稱、給它這個 Job 所需要的 Role:
再選擇我們剛剛建立好的 Data Store
為 Data Source
,設定執行 ETL 後的資料要存放在哪裡,及執行 ETL 的細節,這樣就完成串流資料 ETL 處理。
Amazon Kinesis Data Firehose 現在支援 Amazon Elasticsearch 在 VPC 裡的 domain
原先當使用者設定將 Kinesis Data Firehose 的 Destination 設為 Amazon Elasticsearch 時,並不支援在 VPC 裡的 Private domain。因此使用者必須將 Amazon Elasticsearch domain 放在 Public 的環境之中,透過 access policy 管理存取 Elasticsearch 的權限,可限定特定 IP 位址的請求才可對 Elasticsearch 採取任何動作,但仍存在安全疑慮,因為直接接觸 Internet,較容易成為網路攻擊的對象。
此次更新後,Kinesis Data Firehose 支援 Amazon Elasticsearch 在 VPC 裡的 domain。使用者可透過 VPC 內的網路設定,讓 Elasticsearch 多一層防護。如將 Elasticsearch domain 放在 Private subnet 中,搭配 NACL 及 Security Group 作為防火牆…等等不同方式以防止他人輕易地竊取資料,提升安全性。
Tag:Amazon AppFlow, Amazon CloudWatch Synthetics, Amazon EKS, Amazon EKS managed node groups, Amazon Elasticsearch, Amazon Keyspaces, Amazon Kinesis Data Firehose, Amazon Redshift, AWS, AWS Chatbot, AWS Config, AWS Glue, AWS Storage Gateway, AZ, Bucket, Canaries, Concurrency Scaling, domain, edge locations, ETL, Europe, GA, IAM Access Analyzer, Milan, Private network, Redshift Spectrum, S3 Access Points, SaaS, Slack, VPC