MySQL 5.6 的 GTID...

看到 Percona 的人在討論 MySQL 5.6 的 GTID (Global Transaction ID) 功能,剛剛就實際到 AWS 上開了兩台 m1.large 測試:「How to create/restore a slave using GTID replication in MySQL 5.6」。

要測試 GTID,因為剛出來沒多久,沒有多少文件可以看。MySQL 官方的「Replication with Global Transaction Identifiers」是必讀的文件。查 MySQL 官方文件時可以發現 5.6.9 (RC) 到 5.6.10 (GA) 其實還是改了不少變數名稱,如果在網路上找舊文章照抄是不會動的...

先提結論,Galera Cluster 畢竟出來很久了,成熟度比 GTID 高,建議現在先觀望一陣子,至少等 best practice 出來後再進場測試...

之前的 MySQL replication 有很多方法可以在不停機,或是停的時間很短的情況下把第一份 slave 資料與 replication 資訊生出來,舉例來說:

  • 系統如果用 InnoDB,可以用 Percona Xtrabackup 拉出。
  • 系統如果用 XFS + LVM,可以用 FLUSH TABLES WITH READ LOCK + XFS freeze + snapshot 功能拉出。
  • 甚至直接用空的 slave 跑 pt-table-sync...

但目前 MySQL 官方對 GTID 給的方式是 read only + mysqldump,這就算用 xtrabackup 也應該快不到哪吧... 這幾個月應該會一直有文章出現,裡面應該會有偷吃步的方法,看到再來測試看看 :o

AWS 又調降價錢了...

在「EC2's M3 Instances Go Global; Reduced EC2 Charges and Lower Bandwidth Prices」看到 AWS 又調降價錢了,這次調降是圍繞在 EC2 上面。

首先是第二代高記憶體用量的機器 (代號 M3) 從本來只有 us-east-1 可以用,現在在全世界都可以用了。然後高 CPU 用量與高記憶體用量的機器的費用也降價了,不過主要是將在非亞洲區。

另外一個蠻特別的降價是 AWS 自家機房內的傳輸頻寬,這包括跨區域以及 CloudFront

舉例來說,本來 us-east-1 傳資料到 us-west-1 是依照 us-east-1 Internet outbound traffic 算錢 (USD$0.12/GB for us-east-1),現在 AWS 則是將這種流量視為另外一種內部使用,而給予不同的收費標準 (USD$0.02/GB for us-east-1)。同理,CloudFront 到 EC2 或 S3 上抓資料也是類似的算法。

這對於 AWS-based 提供服務的公司來說應該是很不錯的消息?因為應該有些用戶是從 us-west-{1,2} (美西) 或是 eu-west-1 (歐洲) 連到大本營 us-east-1;而對 CloudFront 的節省應該有限,因為 cache 後就不會往後面再要資料了?

AWS 歷史上第一台 RAM 比儲存空間多的 instance...

看到 AWS 推出新的 EC2 instance:「EC2 for In-Memory Computing - The High Memory Cluster Eight Extra Large Instance」,看完這個 instance 的規格笑了出來 XDDD

120GB SSD 兩顆 (所以是 240GB),加上 244GB RAM,結果記憶體比 SSD 空間大,應用程式一定得分層利用... XDDD

Colin Percival 開了台 FreeBSD 9.1 起來測試,可以順便看到一些硬體資訊。

目前還沒有 Reserved Instances 可以買,所以依照目前的價錢 USD$3.50/hour,一年大約是 90 萬新台幣,而這金額差不多可以直接買一台了... 所以這個 instance 的定位是在非長期的大量運算?不過依照 AWS 的慣例,過陣子應該還是會出 Reserved Instances 讓需要的人買...

不過這也是目前記憶體最多的機器,如果下次看到有文章寫「因為資料超過 244GB,所以資料庫效能炸掉」的訊息,就知道發生什麼事情了 XDDD

Twitter 的熱門搜尋演算法 (以及背後的機制)

昨天的 Twitter Engineering Blog 上說明了 Twitter 這陣子改善搜尋演算法背後的故事:「Improving Twitter search with real-time human computation」。

因為搜尋的量夠大,所以可以拿搜尋的 keyword 計算。

而系統會一直分析搜尋的關鍵字,當發現有詞彙在某個時間內超過設定的水位時,就發 API 到 AmazonMechanical Turk 讓真人分析 (分類),分析完成後就可以再回到自動化的流程進行後續的步驟...

Mechanical Turk 就是 crowdsourcing 類型的服務,這個服務因為法令限制,到現在還是只能讓美國的公司或是個人使用,是少數還沒玩過的服務,應該來找看看有沒有其他 crowdsourcing 服務可以玩...

把 PEM Private Key 檔轉成 SSH Public Key 格式...

RSA 中,單獨靠 Private Key 是無法算出 Public Key 的,不過在 PEM 檔裡因為都有紀錄,所以可以取出:

openssl rsa -in aws.pem -pubout

不過取出的格式需要再轉一次讓 OpenSSH 可以吃:(參考「Convert pem key to ssh-rsa format」這篇的方法)

ssh-keygen -f aws.pub -i -m PKCS8

雖然 ssh-keygen 不接受 - 當 stdin,但可以利用 /dev/stdin 直接串起來:

openssl rsa -in aws.pem -pubout | ssh-keygen -f /dev/stdin -i -m PKCS8

AWS EC2 新機種:超大台的 hs1.8xlarge...

Amazon Web ServicesEC2 在世界末日時發表 120GB RAM、16 virtual core、48TB disk (24 disks) 的「EC2 虛擬機」:「The New EC2 High Storage Instance Family」。

看起來像是 12 顆 7.2KRPM 的 2TB SATA,每顆如果可以跑到 200MB 就是 2.4GBytes/sec?如果是這種規格,給大量 sequence read/write 的運算超適合,官方 blog 的說明裡的解釋也是接近這個方向:

This instance family is designed for data-intensive applications that require high storage density and high sequential I/O -- data warehousing, log processing, and seismic analysis (to name a few). We know that these applications can generate or consume tremendous amounts of data and that you want to be able to run them on EC2.

目前只在 US-East (Northern Virginia) 有,USD$4.60/hour,硬算 720 小時,大約是每個月台幣十萬...

AWS 最近在補的硬體可以看出來是 Hybrid Hosting 的路線:這些機器應該是一台只跑一個 instance,跟 Dedicated Hosting 差不多。上面跑虛擬化只是為了算錢 (accounting) 以及一些安全機制 (像是防止 IP spoof,以及配合 EC2 提供的 firewall)。

實質上不太能說 AWS 不是 Hybrid Hosting 了...

Debian 官方維護的 AWS EC2 Image...

在「Official Debian Images on Amazon Web Services EC2」看到 Debian 官方放出了 AWS EC2 的 AMI:「Cloud/AmazonEC2Image - Debian Wiki」。

之前幾乎都是靠 alestic 製作的版本,現在則是官方直接支援了... 在頁面上除了有連結指到 Debian 官方的版本外 (在 AWS Marketplace 上),另外還列出了其他個人與團體製作的版本。

之後如果要用 Debian 可以選這些 AMI 來用...

AWS 的儲存空間降價 (S3 與 EBS)

雪梨也是同樣降幅,而且最高的 >5000TB 沒降,應該是因為 AWS re:Invent 辦這麼大,總是要有些東西看起來很炫?

降價範圍除了 Standard Storage 以外也包括 Reduced Redundancy Storage,降幅很大,從 24% 到 28% (約 1/4):「Amazon S3 Storage Price Reduction (24 to 28%)」。

其他幾個對手壓力很大啊 XD

AWS 澳洲開台!

AWS 在澳洲雪梨開台:「New Asia Pacific (Sydney) Region in Australia - EC2, DynamoDB, S3, and Much More」,成為目前 AWS 南半球第二個服務區域 (第一個是巴西聖保羅)。

幾乎所有主要服務都開台了... 連 AWS Direct Connect 都開 :p

其中兩個主要服務,EC2 的費用與新加坡相同,網路流量部分是亞洲區裡面偏貴的。而 S3 空間費用跟加州一樣貴... 不過講這麼多,用的到的人應該還是會用,畢竟光的速度還是有極限的,建在本地總是有優勢...

接下來會開在俄羅斯嗎?XD

可以在 AWS VPC 內開 Micro Instance 了...

之前在 AWS VPC (Virtual Private Cloud) 能開的最小台機器是 m1.small,而 AWS 總算是宣佈可以在 VPC 裡開更小台的 t1.micro 了:「Amazon VPC now Supports Micro Instances」、「Launch EC2 Micro Instances in a Virtual Private Cloud」。

剛好可以拿來當 VPC 的 NAT server 來用...