AWS 北京開了第二個 AZ

官方的公告在這邊:「更新:AWS中国北京区域推出第二个EC2可用区」。

我以為每個地區都是直接開兩個以上的 AZ?(就之前其他地區看到的經驗) 沒想到北京現在才開第二個 AZ...

目前還是在 Limited Preview,要申請的人要自己找管道去要...

AWS 的機房架構

這幾天 Amazon 因為 re:Invent 的關係,放出了不少資料出來,其中看到有 AWS 機房的架構:「Amazon details how it does networking in its data centers」。

有些資料還蠻有趣的,像是這張:

每個 AZ (Availability Zone) 可能會有很多 DC (Data Center),而這些 DC 必須在 0.25ms 內。

AZ 之間是 complete graph 連接,另外對多個不同的 Transit center 出去,以確保其中一個 Transit center 掛掉時仍然有備援。

AZ 之間的 latency 會在 2ms 之間 (如果算來回的話是 300 公里),通常會在 1ms (算來回的話是 150 公里)。

使用者的 AWS Direct Connect 則是接到 Transit center 上。

每個 DC 的機器數量在 50k 到 80k 台左右。

雖然應該用不到,但看這些資料還是蠻有趣的 :p

MySQL 裡儲存時間的方式...

這應該是 MySQL 的 best practice 之一,不知道為什麼 Baron Schwartz 又拿出來講:「A simple rule for sane timestamps in MySQL」。

MySQL 內可以儲存「日期與時間」的資料型態是 DATETIME 與 TIMESTAMP 兩種,不過 DATETIME 沒有時區觀念,而 TIMESTAMP 只能是 UTC (GMT+0)。

相較於隔壁棚 PostgreSQLDate/Time Types 就一種 TIMESTAMP,但支援 with timezone 與 without timezone 直接解決問題。

這使得 MySQL 上在儲存「日期與時間」以及處理的時候一直有種 WTF 的感覺...

就如同 Baron Schwartz 的建議,如果使用 MySQL,目前比較好的方法是用 INT UNSIGNED NOT NULL 儲存,把 timezone 的處理都放到應用程式端來處理,這樣產生的問題會比較少...

真的需要在 INSERT 或是 UPDATE 時更新欄位,可以用 trigger 處理,彈性反而比內建功能大不少。

AWS 進入北京!

早上的時候就有看到消息了,而剛剛在 AWS 老大 Werner VogelsTwitter 上看到他宣佈 AWS 北京區的成立:

官方公告在「Coming Soon - New China (Beijing) Region」這邊。中國大陸的官方網站在「亚马逊 AWS | Cloud Computing in China on Amazon Web Services (Simplified Chinese)」這邊。

一如往常的,有中國政府規範的但書:

This Region will allow China-based and multinational companies to make use of a broad collection of AWS services while remaining in compliance with China's legal and regulatory requirements.

要注意的是,目前列出來的服務並沒有 CloudFrontRoute53,只有看到這樣的說明:

We have been working with a number of local data center, bandwidth, and content delivery partners to bring this Region to life. Companies such as China Net Center and SINNET will provide the infrastructure, network services, and CDN services that are required to support the launch and operation of AWS technology services in China.

繼續觀望看看接下來如何...