試驗在 Heroku 中使用 Amazon SimpleDB

, , , , , at September 13th, 2009 by 小影

最近幾個 project 也使用 Heroku,對它的方便和效能也很滿意。只是它的免費帳戶只有 5M 的容量,它的收費帳戶分別為:$15 (美元,下同) 50M ,$50 500M,$200 500G (!),$1600 2T。對於那些沒賺錢又超過 5M 的計劃,這樣的費用也太高了。

看到 Amazon SimpleDB 推出了免費 Tier (每月首 1 G 的 data transfer 和 storage 也免費,之後的收費為 $0.1/G 傳送, $0.25/G 儲存),就想到將 Database 轉到 Amazon 上使用了。

在 Ruby 可以用 gem aws_sdb 去存取 SimpleDB ,也可以自行使用 RestClient 或 Typhoeus 存取 Restful API 。但對於現有使用 DataMapper 的程式,最好還是可以不用修改程式就能移值。網上就有 DataMappaer SimpleDB Adapter (dm-adapter-simpledb),理論上可以直接把 DataMapper 的程式移到 SimpleDB 上,當然實作時還是有一點東西需要修改:

1. dm-simpledb-adapter 使用 aws_sdb ,它預設會建立記錄檔 aws_sdb.log。由於 heroku 的系統是唯讀的,要把源碼建立 aws_sdb 的部份修改為輸出記錄到 STDOUT。
2. 沒有自動 generate 的 Serial,使用 String type 的 id 並把 default 設為用 UUIDTools generate 的 UUID 就行了。(不要使用 Datamapper 的 UUID ,那只是給 postgres 使用的)

暫時的發現只有這些,繼續讓程式執行,沒問題的話會把再複雜一些的資料庫移去試試 …

相關文章

  1. 2 Responses to “試驗在 Heroku 中使用 Amazon SimpleDB”

  2. By Ben Lau on Sep 14, 2009 | Reply

    SimpleDB的收費跟App Egnine差不多,不過免費配額還是少了一點。

  3. By 小影 on Sep 14, 2009 | Reply

    雖然這量不多,但免費如果給你幾十 G 就太慷概了! ;-)

Post a Comment