Home » Posts tagged "aws" (Page 55)

Amazon CloudFront 支援 EDNS-Client-Subnet

Amazon CloudFront 今天的新聞:「Improved CloudFront Performance with EDNS-Client-Subnet Support」。

目前 CDN 大多都還是靠 GeoDNS 技術達到分流技術,但另外一方面,Google 的 Public DNSOpenDNS 服務不一定在每個 ISP 都有設機房,這使得 CDN 服務無法靠 DNS server 的 IP address 正確導到離使用者 ISP 最近的 CDN (也就是原文指的 sub-optimal performance)。

EDNS-Client-Subnet 是一個 draft,讓 DNS resolver 可以把 client 的網段資訊帶給 CDN 的 DNS server,進而改善定位。

剛剛測試發現 Akamai 也支援了,在「OpenDNS: Why doesn't Akamai support the edns client subnet extension? This would allow OpenDNS and Google DNS to more effectively provide the geo location of the CDN and allow Akamai to send content to clients at higher speed.」這篇也有提到。

以前會鼓勵使用自己家的 DNS resolver 的理由又要消失一個了 :p

AWS 大降價

在「AWS Price Reduction #42 - EC2, S3, RDS, ElastiCache, and Elastic MapReduce」這邊看到 AWS 降價的消息,明顯是被 Google 壓著推出來 :p

降價的範圍包括 EC2 instance、EC2 的 reserved instance、S3,以及對應的 RDSElastiCacheElastic MapReduce

前幾天買了兩台 us-west-2 c1.xlarge 的三年 RI,結果從 USD$2804 降到 USD$2524,現虧 USD$280 (XDDD),而每小時單價從 USD$0.124 降到 USD$0.112,也就 9.7% 左右。

另外 S3 的部份則是直接從 USD$0.085/GB 一次殺到 USD$0.03/GB 了,隨著使用量的增加的 discount 差不多都消失了。

等下再來研究好了,計畫永遠趕不上變化...

AWS Elastic Load Balancing 服務支援 Connection Draining

AWS Elastic Load Balancing 支援 Connection Draining 功能了:「ELB Connection Draining - Remove Instances From Service With Care」。

由於 Connection Draining 是自創名詞,所以 AWS 的人解釋了一大堆。其實對比較熟悉的人用「graceful shutdown」就應該能了解 Connection Draining 想要做什麼事情。

技術上的細節是,當 instance 從 ELB 內被移除 (無論是暫時性的還是永久性的),新的 request 將不會被送到該 instance 裡,而既有的連線將不會斷掉,直到 client 完成或是超時 (timeout)。

這個功能在一般商用的 load balancing solution 都會提供,而且是對於服務品質其實還蠻重要的功能。

話說回來,這陣子 ELB 動了不少東西?不查資料可以直接想到的就包括了:

  • HTTPS 支援 PFS
  • 支援 access log 下載。

再加上今天的 graceful shutdown。每次都改善一些東西,累積起來就是驚人的財產...

Elastic Load Balancing 總算實做 access log...

AWSElastic Load Balancing 總算想起來這個欠了許久的功能,access log:「Access Logs for Elastic Load Balancers」。

原文裡有提到用 Hive 分析的部份,挑出最前面的欄位名稱就可以看出提供什麼資訊:

CREATE EXTERNAL TABLE elb_raw_access_logs (
     Timestamp STRING,
     ELBName STRING,
     RequestIP STRING,
     RequestPort INT,
     BackendIP STRING,
     BackendPort INT,
     RequestProcessingTime DOUBLE,
     BackendProcessingTime DOUBLE,
     ClientResponseTime DOUBLE,
     ELBResponseCode STRING,
     BackendResponseCode STRING,
     ReceivedBytes BIGINT,
     SentBytes BIGINT,
     RequestVerb STRING,
     URL STRING,
     Protocol STRING
)

裡面還有些資訊沒包含在上面,像是 availability zone。因為這個資訊是包含在檔名內:

In addition to the bucket name and the prefix that you specified when you configured and enabled access logs, the log file name will also include the IP address of the load balancer, your AWS account number, the load balancer's name and region, the date (year, month, and day), the timestamp of the end of the logging interval, and a random number (to handle multiple log files for the same time interval).

接下來應該要把現有的 ELB 都開起來 XD

CloudFront 支援 SNI,不需額外每個月 USD$600 的費用...

剛剛看到 Amazon CloudFront 支援 SNI,而且不像 Dedicated IP Custom SSL 需要每個月 USD$600 的費用:「New Features for Amazon CloudFront: Server Name Indication (SNI) and HTTP Redirection」。

目前最大的問題只剩下 Windows XP + IE8 不支援 SNI,台灣還有 19.86% 的人使用 IE8 (不知道 Windows XP + IE8 實際佔多少):


(出自 http://gs.statcounter.com/#browser_version-TW-monthly-201302-201402)

但至少行動裝置上的主力平台都支援了,如果大多數用戶是行動裝置,這個方式可以兼顧 custom SSL domain 與花費...

在 S3 上儲存大量資料時要注意的事情

印象中要在 Amazon S3 上面存大量資料時需要注意 key 的命名,用 Google 找了找發現官方的「Request Rate and Performance Considerations」這篇。

文章中有提到這是對有大量存取需求時才需要注意的事項:

The guidelines in this section apply if you are routinely processing 100 or more requests per second. If your typical workload involves only occasional bursts of 100 requests per second or more, you don't need to follow the guidelines in this section.

不過平常即使沒有需要大量存取,還是可以照著做,因為應該不會有負面影響。如果能照著上面的方式先做,之後也許會受益...

由於 Amazon S3 是使用 key-prefix 當作 partition 的依據,所以 prefix 的值對於效能很重要。官方推薦的幾種方法都是對 key-prefix 下手:

  • 對整個 path + filename 的字串 hash 後當作 prefix。舉例來說,examplebucket/2013-26-05-15-00-00/cust1234234/photo1.jpg hash 後加到前面,名稱變成 examplebucket/232a-2013-26-05-15-00-00/cust1234234/photo1.jpg
  • 將最前面一段 reverse string。像是把 2134857/data/start.png 變成 7584312/data/start.png

AWS ELB 加強安全性...

AWS ELB 加強對 SSL 安全性的功能:「Elastic Load Balancing – Perfect Forward Secrecy and Other Security Enhancements」。

第一個是支援 PFS (Perfect Forward Secrecy),愈大多數的實做相同,是使用 ECDH

第二個是 Server Order Preference,由 server 這邊決定最終的 cipher。

最重要的是第三個,也就是「懶人包」。推出新的 security policy ELBSecurityPolicy-2014-01,把上面兩個都設進去了。

這次的升級是對安全性的提昇...

Archives