Amazon SimpleDB 操作筆記 與 程式範例(PHP)

在 EBS(Elastic Block Store)出來前(註: 有 EBS 就可以將 MySQL data 目錄 mount 上去.), 若要使用 EC2 搭配的資料庫, 就是得要選 SimpleDB, 雖然現在可以有 EBS 用, 不過 SimpleDB 還是有值得使用的地方, 應用範圍再自行想像囉~ 🙂

Amazon SimpleDB 儲存的格式是 Domain -> PKeys, PKey -> Attributes, Attributes 有很多 Key ->Value (註: Attributes 就是一筆紀錄下面, 可以有多個 Key -> Value 的紀錄), ex:

Key: 1
Attributes:
 Category: Book
 Price: 200
 Date: 2009-01-01

而且 SimpleDB 也有簡易的 Select 語法可以使用(在此篇還沒詳細研究 Select 語法.)

相關資訊: Amazon SimpleDB 研究相關文件蒐集

閱讀全文〈Amazon SimpleDB 操作筆記 與 程式範例(PHP)〉

Amazon EC2 取得自己的外部 IP

Amazon EC2 開機會自動取得自己 10.x.x.x 的 IP, 要抓取實體 IP / Hostname 等, 要用下述方法抓:

  • 取得 IP: wget -q -O /tmp/public-ip http://169.254.169.254/latest/meta-data/public-ipv4
  • 取得 Hostname: wget -q -O /tmp/public-hostname http://169.254.169.254/latest/meta-data/public-hostname
  • 註: 169.254.169.254 是特殊 IP, 非 EC2 無法用此方法抓取.

閱讀全文〈Amazon EC2 取得自己的外部 IP〉

Amazon EC2 使用操作筆記 (使用 Elasticfox)

Amazon Elastic Compute Cloud (Amazon EC2) 是虛擬主機的服務, 主要是可以隨時加機器、硬碟等, 可以非常快速的擴充.

不過也有些缺點, 就是在上面的資料是不會被儲存的, 若是機器當掉、強制關機等等, 資料就會消失. IP 不固定等問題.

Amazon 針對這些問題也都有解法:

  • 資料儲存: 用 Amazon Elastic Block Store 解決此問題(而且可以動態新增硬碟並掛載上去), 並可隨時為此硬碟做 Snapshot.
  • IP 不固定: 用 Elastic IP Addresses 解決此問題, 可以先把 IP 先租起來放. 

這幾天照文件都玩過一次, 寫寫筆紀做紀錄.

閱讀全文〈Amazon EC2 使用操作筆記 (使用 Elasticfox)〉

PHP 符合 RFC 規範的 Email 驗證程式

要驗證 Email 是否符合規格, 大部分是使用下面的簡單 Regular expression 來作驗證 (下面兩者 regex 是一樣的, 只是 php / rails 版的寫法而已)

  • preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/', $email) // 正確: true, 錯誤: false
  • validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => '格式錯誤'

使用上述的檢查後, 再加上 PHP 驗證 Email -檢查 DNS 的 MX 是否有通, 再來就該直接寄信去驗證了.

閱讀全文〈PHP 符合 RFC 規範的 Email 驗證程式〉