【每周快報】0716-0724 AWS 服務更新
前言
近期 AWS 推出各類型的新功能來協助管理 AWS 服務,像是 Amazon EFS CSI Driver 讓容器使用者能輕鬆管理 EFS 檔案系統,CloudFront 則新增更多地理位置的 Header,來更精確地分析目前的程式屬於哪一個地區。另外 VPC 資源現在開始支援上 tag 功能了,不但管理上更方便,還能夠透過 tag 來限制使用者對於特定資源的存取。
這周我們也會向各位介紹 DataSync、EC2 On-demend、AWS Session Manager、Amazon Elastic File System…等服務的更新,以及為使用者帶來的改善。
焦點新聞
Amazon EFS CSI Driver 正式 GA
Amazon EFS Container Storage Interface (CSI) Driver 是一個能夠讓 Amazon EKS Cluster 管理 Amazon EFS 檔案系統生命週期的驅動程式。EFS CSI Driver 讓使用標準 Kubernetes interfaces 的 Kubernetes Cluster 可以管理 EFS 檔案系統更為簡單,不論是使用 Amazon EKS 或是自我管理的 Kubernetes Cluster 皆可受用。
在 Kubernetes 中運行的應用程序可以利用 EFS file system 在多個 Pod 之間共享數據,或者與在 Kubernetes 內部或外部運行的其他應用程序共享數據,進而幫助 Kubernetes 應用程序實現高可用性,因為所有寫入EFS 的數據都會存在於多個 AWS AZs。除此之外,如果 Kubernetes Pods 在另外一個 AZ 重新啟動,CSI Driver 也會重新連接上 EFS file system。
- 使用者可利用以下指令在 Kubernetes 安裝 CSI Driver:
kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=master"
- 在這裡,AWS 也提供了範例的應用程式,可做為測試 EFS 是否成功掛載至 Kubernetes 上。
## 下載範例應用程式
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
## 轉換當前路徑至 multiple_pods 資料夾
cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
- 安裝完成之後,藉由編輯
specs/pv.yam
檔案,就可以開始掛載 EFS 在 Kubernetes 應用程式上。在以下的範例中,便是利用 CSI Driver 進行掛載得動作。
apiVersion: v1
kind: PersistentVolume
metadata:
name: efs-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: efs-sc
csi:
driver: efs.csi.aws.com
volumeHandle: [efs file system ID]
- 編輯完成後,從 specs 目錄部署需要的 file system。
## 開始部署
kubectl apply -f specs/
## 在預設命名空間中監看裝置
kubectl get pods --watch
## 在預設命名空間中列出持久性磁碟區。
kubectl get pv
## 輸出:尋找具有 default/efs-claim 即是這次掛載上去的 EFS file system
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
efs-pv 5Gi RWX Retain Bound default/efs-claim efs-sc 2m50s
DataSync 支援在本地和 AWS 之間複製資料
DataSync 是一個資料傳輸服務,透過網際網路或 Direct Connect 來匯入或匯出 AWS 儲存服務中的資料,例如:Snowcone 和 S3、EFS 和 Amazon FSx for Windows File Server 檔案系統之間複製資料。
此次更新後,可以設置 DataSync 將本地儲存的資料複製到 AWS。將資料複製到 S3 時,DataSync 會將資料以及本地存儲中的 metadata 複製到 S3。
參考來源至:Copy your data between on-premises object storage and AWS using AWS DataSync
CloudFront 新增更多地理位置的 Header,以實現更精細的地理位置定位
此次更新後,使用者現在可以在新的 CloudFront cache request 或是 origin request policies 中,新增更多與 Client 地理位置相關的 Header。基於 Client 提送 request 的 IP 位置,可得知 Client 的以下訊息:
- 國家名稱
- 國內的分區
- 所屬城市
- 郵遞區號
- 緯度
- 經度
這些資訊皆可顯示在 Header 中,幫助使用者分析目前應用程式的使用客群位於哪一個地方,進而用於商品推廣、行銷,或是利用這些資訊設計較為個人化的內容,呈現給不同地區的用戶。
參考來源至:Amazon CloudFront adds additional geolocation headers for more granular geotargeting
EC2 On-demend 針對 Capacity Reservations 新增 CloudWatch 指標
Capacity Reservation 可讓使用者針對 EC2 Instance 預訂何時開啟,例如使用者的電商網站可能於下週有促銷活動,促銷活動開始的當下可能會有大量的流量進入,此時如果只透過平常數量的 EC2 勢必是沒辦法負荷的,但又不想在活動當下透過 Auto-Scaling 慢慢長,所以就可以使用 Capacity Reservation 功能。
此次更新後, CloudWatch 針對 Capacity Reservation 新增了四項指標:
- UsedInstanceCount:指定預留的 EC2 數量中已使用的 EC2 Instance 數量。
- AvailableInstanceCount:指定預留的 EC2 數量中未使用的 EC2 Instance 數量。
- TotalInstanceCount:已預留的 EC2 總數。
- InstanceUtilization:預留 EC2 中正在運行的比例。
參考來源至:Announcing Amazon CloudWatch metrics for Amazon EC2 On-Demand Capacity Reservations
其他服務更新
VPC 資源開始支援上 Tag
Tag 是以 key-value 的方式命名,並可以針對特定 AWS 資源給予標籤,可以根據不同的環境、專案內容等區分不同的標籤,以方便管理者在查找、過濾資源時能更快速的找到對應的資源。
此次更新後,使用者可以針對 VPC 中的資源給予 Tag,例如:VPC、Internet Gateway、NACLs、Security Group、Route Tables、Network Interfaces、Egress-only Internet Gateways、DHCP Option Sets、VPC Peering Connections 等。
如此一來在 VPC 服務資源的管理上就變得更加容易,此外也可以透過 Tag 來限制使用者對於特定資源的存取(透過 IAM policy)。
現在可透過 AWS Session Manager 存取 AWS CodeBuild 的 Build Environments
以往,使用 CodeBuild 建置應用程式環境的使用者,如果想改變 Build Environments 裡的資源,需要修改自己的 build scripts,再重新 deploy。此次更新後,當使用者利用 CodeBuild 來自動化建立環境時,可直接利用 AWS Console 在每一個 build 的階段啟用 Session Manager 的設定。
環境建置好後,使用者可擁有完整存取 Build Environments 的權限,不需管理 SSH Key 或是 bastion server,就可以透過 Session Manager 修改 Build Environments,可幫助開發者進行程式偵錯與修正。
參考來源至:AWS CodeBuild now supports accessing Build Environments with AWS Session Manager
AWS Systems Manager 新增支援 schedule offset 功能
Systems Manager 中的 maintenance window (維護時段)功能提供使用者可以針對不同的時機來針對系統進行 patch 排程,而 schedule offset 功能能夠讓使用者在 cron 表達式中定義決定此次維護時段要在幾天後進行。
aws ssm create-maintenance-window \
--name "My-Cron-Offset-Maintenance-Window" \
--schedule "cron(0 30 23 ? * TUE#3 *)" \
--duration 4 \
--cutoff 1 \
--schedule-offset 2 \
--allow-unassociated-targets
例如此段 CLI 在 cron 表達式中定義了維護時段會在 每個月的第三個星期的星期二晚上 11:30 會進行,但是在 --schedule-offset 2
這裡又表示了需要順延兩天,所以就會變成每個月的第三個星期的星期二的後兩天晚上 11:30 進行。
Schedule offsets 目前僅支援 cron 表達式,所以目前只能使用 CLI 或 API 來使用此功能(主控台並不支援)。
參考來源至:AWS Systems Manager now supports adding offsets to maintenance window schedules
Systems Manager Automation 提高 concurrency limits
此次更新後,每個帳戶最多可同時執行 100 個 Automation 動作,包括 child-automations(由另一個 Automation 啟動的 Automation)。如果使用者要同時運行更多的 Automation,則會將超出限制的 Automation 動作添加到最多可容納 1000 個 queue 中,以等待部分 Automation 執行完成後,再從 queue 拉出下一個要執行的動作。
參考來源至:Systems Manager Automation now supports higher concurrency limits for execution
Amazon Elastic File System 現在支援自動備份功能
此次更新後,使用者可以在創建 Amazon EFS 時,預設會啟用自動備份的功能,AWS 會利用 AWS Backup 來備份存放在 EFS 裡的資料,並套用預設的設定:每日備份,而每個備份會保留 35 天。如果創建完成後,希望停止自動備份,也可以隨時停用。
參考來源至:Announcing automatic backups for Amazon Elastic File System
Elastic File System 提升單一用戶端 throughput 的上限
此次更新後,EFS 支援單一用戶端 500 MB/s 的 throughput,相較於先前只有 250 MB/s 的上限,提高了 100%,但所有用戶端的總 throughput 仍維持 10+ GB/s。
參考來源至:Amazon Elastic File System increases per-client throughput by 100%
Amazon EC2 VM Import/Export 現在支援 Red Hat Linux (RHEL) 8 和 CentOS 8
此次更新後,使用者可以將現有環境中,運行 Red Hat Linux (RHEL) 8 或 CentOS 8 作業系統的虛擬機,打包引入到 AWS 上,變成 Amazon AMI,之後使用者都可以利用這個 AMI 創立 EC2 Instance。
參考來源至:Amazon EC2 VM Import / Export adds support for Red Hat Linux (RHEL) 8 and CentOS 8
Amazon EBS Fast Snapshot Restore (FSR) 新增支援 shared EBS Snapshots
EBS Fast Snapshot Restore (FSR) 於 2019 年 11 月推出,消除了使用者在將 EBS Snapshot 還原成 EBS Volume 時,需要 pre-warming 資料的時間,可快速的取用 Snapshot 裡的資料。
此次更新後,使用者現在也可以將 FSR 運用在共享的 EBS Snapshots,使用者不用再將共享的 EBS Snapshots 複製到自己的帳號內,就可啟用 FSR 的功能,縮短流程所需的時間。
參考來源至:Amazon EBS Fast Snapshot Restore (FSR) is now available for shared EBS Snapshots
Tag:Amazon EBS Fast Snapshot Restore, Amazon EC2 VM Import/Export, Amazon EFS CSI Driver, Amazon EKS Cluster, Amazon Elastic File System, AWS, AWS CodeBuild, AWS Session Manager, AWS Systems Manager, Build Environments, Capacity Reservations, CentOS 8, CloudFront, CloudWatch, DataSync, EC2 On-demend, FSR, Header, Kubernetes, Red Hat Linux (RHEL) 8, schedule offset, shared EBS Snapshots, Tag, VPC