Tag Archives: class

Amazon EFS 的 IA Storage Class

Amazon EFS 一直找不太到好用的使用情境,因為 NFS 的關係所以大量 I/O 時的 latency issue 使得速度快不起來,而拿來堆 log 的成本又超級高...

最新推出的 storage class 則是透過提供低儲存成本的版本,解決了堆 log 這種使用情境:「New – Infrequent Access Storage Class for Amazon Elastic File System (EFS)」。

不過 EFS 不像 S3 可以直接選擇 storage class,是需要讓系統管理的:

開啟後 30 天沒有被碰過的檔案就會切過去:

Eligible Files – Files that are 128 KiB or larger and that have not been accessed or modified for at least 30 days can be transitioned to the new storage class. Modifications to a file’s metadata that do not change the file will not delay a transition.

而 latency 也會增加:

Files that have not been read or written for 30 days will be transitioned to the Infrequent Access storage class with no further action on your part. Files in the Standard Access class can be accessed with latency measured in single-digit milliseconds; files in the Infrequent Access class have latency in the double-digits.

us-east-1 為例子來說,Standard 是 USD$0.3/GB-month,而 IA 只要 USD$0.045/GB-month,但抓取時會有 USD$0.01/GB 的傳輸費用,可以看出價錢低不少。

不過文章裡沒提到什麼時候會把資料從 IA 跳回 Standard,可能得找機會問問看...

Amazon S3 推出了一個自動分析後分類的 Storage Class

Amazon S3 推出了新的 Storage Class,後面直接用演算法分析 access pattern (所以要跑一陣子才會生效),然後決定要放到 Standard 或是 Standard IA 裡:「Announcing S3 Intelligent-Tiering — a New Amazon S3 Storage Class」。

混了 Standard 與 Standard IA:

S3 Intelligent-Tiering stores objects in two access tiers: one tier that is optimized for frequent access and another lower-cost tier that is optimized for infrequent access.

然後連續 30 天沒有被存取的就會被丟到 Standard IA,如果有被存取的話就會被搬回來,而搬移的部份不用收費:

For a small monthly monitoring and automation fee per object, S3 Intelligent-Tiering monitors access patterns and moves objects that have not been accessed for 30 consecutive days to the infrequent access tier. There are no retrieval fees in S3 Intelligent-Tiering. If an object in the infrequent access tier is accessed later, it is automatically moved back to the frequent access tier. No additional tiering fees apply when objects are moved between access tiers within the S3 Intelligent-Tiering storage class.

從費用上可以看到演算法本身是有費用的,換算一下 1M objects 是 USD$2.5/month,好像還可以...

Monitoring and Automation, All storage / Month$0.0025 per 1,000 objects

不過有蠻多要注意的 pattern。像是這邊有提到 128KB 以下的檔案不會搬到 IA 上,但不知道算不算 Monitoring 的費用?

S3 Intelligent-Tiering has a minimum eligible object size of 128KB for auto-tiering. Smaller objects may be stored but will always be charged at the Frequent Access tier rates.

另外這邊講 S3 Intelligent-Tiering 的三十天也不知道是不是 Standard + Standard IA,或是分開算:

S3 Intelligent-Tiering, S3 Standard-IA, and S3 One Zone-IA storage are charged for a minimum storage duration of 30 days.

可以先觀望一下...

Amazon EFS 也要推出 IA 版本了 (Infrequent Access)

Amazon EFS 也要推出 IA (Infrequent Access) 版本了,Infrequent Access 指的是不常存取的資料:「Coming Soon – Amazon EFS Infrequent Access Storage Class」。

這剛好配合上很多人拿 Amazon EFS 來堆 log 的行為... AWS 是說有機會到省到 85%,不過應該是非常大的量才有機會有這個價錢?

EFS IA reduces storage costs for files not accessed every day, with savings up to 85% compared to the EFS Standard storage class.

其實用過 Amazon EFS 的人都對效能抱怨頗嚴重 (透過 NFS 有太多操作沒辦法 cache,於是 network latency issue 就出現了),堆 log 或是當作跨機器的空間大概是目前的主流用法...

Amazon 取得了整塊 3.0.0.0/8 的使用權...

Hacker News 上的「Tell HN: Amazon now owns 3.0.0.0/8」這邊看到 Amazon (AWS?) 拿到 3.0.0.0/8 的使用權了,而且已經有人在 Elastic IP 拿到了:

Apparently bought in two chunks: 3.0.0.0/9 and 3.128.0.0/9.
Previous owner was GE.

Anecdotal reports across the Internet that AWS EIPs are now being assigned in that range.

https://whois.arin.net/rest/net/NET-3-0-0-0-1.html

https://whois.arin.net/rest/net/NET-3-128-0-0-1.html

可以在上面提到的兩個網址確認:「whois.arin.net/rest/net/NET-3-0-0-0-1.html」、「whois.arin.net/rest/net/NET-3-128-0-0-1.html」,前半段在 2017/12/20 註冊,後半段在 2018/06/25 註冊...

另外有人在下面提到 Amazon 說不定會推出 3.3.3.3 之類的 DNS Resolver 服務?至少先把 3.3.3.0/24 這段預留起來?

Amazon S3 推出新的等級 One Zone-IA

Amazon S3 有 RRS,提供給那些掉了可以重新產生的資料使用 (像是縮圖);另外也有 IA,提供給不常存取的資料使用。現在推出的這個等級結合了兩者,使得價錢更低:「Amazon S3 Update: New Storage Class and General Availability of S3 Select」。

New S3 One Zone-IA Storage Class – This new storage class is 20% less expensive than the existing Standard-IA storage class. It is designed to be used to store data that does not need the extra level of protection provided by geographic redundancy.

Amazon S3 的改善

其實老牌的 Amazon S3 也改了不少東西:「Revolutionizing S3 Storage Management with 4 new features」。

其中的「S3 Object Tagging」讓管理可以透過 tag 處理,管理上會多一些選擇。而「S3 Analytics, Storage Class Analysis」則是可以分析存取的 pattern,藉此重新規劃 policy。

看到之前的同事說 CloudFront 要支援 2-tier cache,但卻還沒看到公告,不知道是怎麼樣的實作方式... 這對大型的 live streaming 幫助很大啊,後面的壓力會小很多。

Amazon Aurora 支援 t2.medium...

Amazon Aurora 宣佈支援 t2.medium:「Use Amazon Aurora for Dev & Test Workloads with new T2.Medium DB Instance Class」。

雖然官方的文章標題是寫提供給 dev & test 情境下使用,但其實對於某些 production 應該也不錯:

The db.t2.medium should be a great fit for many of your development and test scenarios, and you should also consider them for some of your less-demanding production workloads.

沒提供更低的 t2.small 有點可惜...

CloudFront Price Class 100 奇怪的現象

剛剛發現奇怪的現象,晚點來問問看好了... 手上的 test-priceclass100.gslin.org 設定為 Only Use US and Europe:

但在 SmokePing 上卻看到極低的 latency 而覺得納悶:

動手查了一些資料發現是被導到台灣的點... 可以看到先問 168.95.192.1 (HiNet 光世代預設的 DNS) 後得到了這些 IP:

gslin@GSLIN-HOME1404 [~] [02:43/W4] dig test-priceclass100.gslin.org @168.95.192.1

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> test-priceclass100.gslin.org @168.95.192.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48453
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 3072
;; QUESTION SECTION:
;test-priceclass100.gslin.org.  IN      A

;; ANSWER SECTION:
test-priceclass100.gslin.org. 300 IN    CNAME   d265g70k07is7o.cloudfront.net.
d265g70k07is7o.cloudfront.net. 60 IN    A       54.192.215.203
d265g70k07is7o.cloudfront.net. 60 IN    A       54.192.215.98
d265g70k07is7o.cloudfront.net. 60 IN    A       54.239.176.96
d265g70k07is7o.cloudfront.net. 60 IN    A       54.192.214.40
d265g70k07is7o.cloudfront.net. 60 IN    A       54.239.176.216
d265g70k07is7o.cloudfront.net. 60 IN    A       54.192.212.118
d265g70k07is7o.cloudfront.net. 60 IN    A       54.239.176.223
d265g70k07is7o.cloudfront.net. 60 IN    A       54.239.176.56

;; Query time: 178 msec
;; SERVER: 168.95.192.1#53(168.95.192.1)
;; WHEN: Thu Oct 22 02:43:24 CST 2015
;; MSG SIZE  rcvd: 228

接下來跑 mtr 看,發現是台灣的節點:

gslin@GSLIN-HOME1404 [~] [02:43/W4] mtr --report -n 54.239.176.56
Start: Thu Oct 22 02:43:37 2015
HOST: GSLIN-HOME1404              Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 168.95.98.254              0.0%    10    8.6   9.1   8.4   9.9   0.3
  2.|-- 168.95.25.50               0.0%    10    8.1   9.0   8.0   9.9   0.3
  3.|-- 220.128.11.226             0.0%    10    9.3  11.8   8.1  31.7   7.1
  4.|-- 220.128.5.94               0.0%    10   12.9  13.9   9.6  17.9   2.9
  5.|-- 220.128.4.177              0.0%    10    8.7  13.1   8.7  35.3   8.0
  6.|-- 203.75.228.29              0.0%    10    9.9  10.1   9.3  10.9   0.3
  7.|-- 223.26.65.19               0.0%    10    9.4  10.3   9.4  11.4   0.3
  8.|-- 202.133.255.122            0.0%    10   11.0  10.8   9.5  13.5   1.0
  9.|-- 54.239.176.56              0.0%    10   10.7   9.4   8.4  10.7   0.7

這是哪招呢...

關閉 Plurk 的 embed thumb 功能

Plurk 上的 embed thumb 功能 (我不知道怎麼稱呼比較好) 讓我沒辦法用 Ctrl 加上滑鼠左鍵一路把圖片點開,所以就想寫個 Greasemonkey script 搞定他...

最一開始的想法是把事件幹掉 (也就是 .pictureservices, .videoservices, .ogvideo, .iframeembed, .plink 這串),所以第一版的時候是直接用 unsafeWindow.jQuery 把事件 off() 掉,但後來想一想這樣有幾個問題:

  • 網站改版時動到這邊的 class name 會失效,即使是只有增加...
  • 安全性問題,unsafeWindow.jQuery 不保證是原版的 jQuery,在 Greasemonkey 有不少權限,雖然後來有被 @grant 強化過,不過能避免還是想避免。

所以就改成現在這個版本,直接在 body 上攔截,擋下對這五個 class 的 click event:「Disable Plurk multimedia thumb functuion」。

也許改寫 thumb function 本身會更好,不過先這樣吧 XD

Facebook 提供 Android 效能分級的函式庫

一樣是在 OSNews 上看到的,Facebook 提供了一套 Library,可以將 Android 裝置依照年份分類:「Facebook's simple trick for serving many different Android devices」,原始報導是「Facebook's simple trick for serving so many different Android devices」。

可以在 GitHub 上的「Device Year Class」看到如何使用的範例程式碼:

int year = YearClass.get(getApplicationContext());
if (year >= 2013) {
    // Do advanced animation
} else if (year > 2010) {
    // Do simple animation
} else {
    // Phone too slow, don't do any animations
}

寫起來感覺沒什麼節操,但很實用 XDDD