2012年6月20日

使用 AWS 筆記 (三) 各種database及建立mongodb

首先我們發現到AWS已經提供了三類型database可以使用
http://aws.amazon.com/running_databases/

1. RDS可以連結不同relational database,如MySQL、Oracle等,這還有分你要不要自行管理。

2. SimpleDB(NoSQL),easy to start with,好處是query方便彈性(因為全做index),也因此performance, scale比較差,有類似table的"domain"儲存上限10GB。

3. DynamoDB,可能源自於2007年amazon dynamo論文,SSD固態硬碟儲存,distributed data store,只有primary key index,fast and scalable,但是由於他不能對其他value做index,文件也不夠多,我們先靜觀其變。

不管,早就想用mongodb了,文件非常豐富

先看Amazon的這篇
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
再看MongoDB的這篇
http://www.mongodb.org/display/DOCS/Amazon+EC2

我們決定先玩玩看,先建security group,一般來說分兩種,app server access/operational access

Default Port(TCP):


A standalone mongod process: 27017
mongos : 27017
shard server (mongod --shardsvr) : 27018
config server (mongod --configsvr) : 27019
web statistics page for mongod : add 1000 to port number (28017, by default).

當然也要讓我們的ssh( port 22)可以連上
ec2-create-group amongo --description "security group for mongodb"
ec2-authorize amongo -p 22
ec2-authorize amongo -o amongo -u [user_account_number]
ec2-authorize amongo -o application -u [user_account_number]
可開一個web-based status interface
ec2-authorize amongo -p 28017

然後我們直接選AMI from Amazon Marketplace裝好的mongodb,看到10gen有出兩個image, MongoDB/MOngoDB with EBS RAID,如果有錢可以選100GB共四個volume做RAID 10又做replica, shard當然是很爽啦,窮人跟我一樣選MongoDB安裝成single node(可能已經是RAID 10),3月8號才更新的,版本是2.0.4 for production,裝上去就完成了

測試一下
$sudo chkconfig mongod on $sudo /etc/init.d/mongod start
進mongodb
$mongo >use testdb
沒問題

因為很怕掛掉(一年有0.1%~0.5%的機會會掛掉),來測試一下ec2的detach, attach, take snapshot等功能

要修改EBS volume (容量大小或其他設定)必須關機>detach>take snapshot>Create Volume from snapshot>attach to ec2 instance>開機,不能熱操作

因為是從AMI產生的volume,attach的時候必須要用/dev/sda1喔!


想要進一步了解AWS操作可以看看AWS雲端企業實戰聖經