AWS 推出了以效能為導向的 Amazon S3 Express One Zone:「Announcing the new Amazon S3 Express One Zone high performance storage class」。
從名字裡的 One Zone 可以看到這是只有在一個 AZ,主打超低 latency:
The new Amazon S3 Express One Zone storage class is designed to deliver up to 10x better performance than the S3 Standard storage class while handling hundreds of thousands of requests per second with consistent single-digit millisecond latency, making it a great fit for your most frequently accessed data and your most demanding applications.
但費用相當貴,以 us-east-1
來看的話是 $0.16/GB/mo,如果拿其他一些 storage 方案來比,可以看到非常大的差距:
- S3 Standard:$0.023/GB/mo
- General Purpose SSD (gp3):$0.08/GB/mo
- General Purpose SSD (gp2):$0.1/GB/mo
可以猜測後面應該全是 NVM 之類的 storage (不過文章裡沒有提到)。
這次的 Amazon S3 Express One Zone 也多出了很多特別的限制。
首先是新的 bucket type,在這個 bucket type 下面 ListObjectsV2
呼叫就必須以 /
結尾 (這暗示後面的資料處理有對這點 optimization),另外傳回的資料不保證順序了:
The path delimiter must be “/“, and any prefixes that you supply to ListObjectsV2
must end with a delimiter. Also, list operations return results without first sorting them, so you cannot do a “start after” retrieval.
另外看起來是在 AZ 裡面直接認證,所以有新的 authentication model:
The new CreateSession function returns a session token that grants access to a specific bucket for five minutes.
然後 bucket naming 因為有後處理,在命名上不需要在整個 AWS 是唯一的 (因為被加料了):
Directory bucket names must be unique within their AWS Region, and must specify an Availability Zone ID in a specially formed suffix. If my base bucket name is jbarr
and it exists in Availability Zone use1-az5
(Availability Zone 5 in the US East (N. Virginia) Region) the name that I supply to CreateBucket would be jbarr--use1-az5--x-s3
.
另外資料還是可以在同一個 region 下跨 AZ 存取,而且同一個 region 下面的 compute resources (像是 EC2) 不收傳輸費用:
Although the bucket exists within a specific Availability Zone, it is accessible from the other zones in the region, and there are no data transfer charges for requests from compute resources in one Availability Zone to directory buckets in another one in the same region.
費用的部分還有個比較特別的但書,超過 512KB 的 request 會需要額外收費:
You pay an additional per-GB fee for the portion of any request that exceeds 512 KB. For more information, see the Amazon S3 Pricing page.
主要是給自己開發的應用程式用的,現有的 framework 大多都有利用 batch & buffering 的技巧降低 latency 所帶來的效能影響。
平常應該是用不太到,但就有個印象,真的在架構設計上跑不掉的時候有個選擇...