2014年9月6日土曜日

AmazonLinuxにMongoDBをインストール

AWS上に実践的なMongoDBのReplication構成を構築するための事前作業としてAmazonLinuxにMongoDBをインストールする手順をまとめます。
データベース格納先のディレクトリは/(ルート)とは別ボリュームのEBSを利用するようにしています。
インストール完了後にAMIを作成します。
次回以降は、このAMIから複数のEC2を作成し、MonogoDBのReplication設定を進めていきます。併せてお読みください。

OS: amazon-linux-ami/2014.03 (64-bit)
MongoDB: 2.6.4



■EC2概要
Instance: i-eca4xxx5
Private IP: 10.54.10.90
Availability zone: ap-northeast-1a
OS: amazon-linux-ami/2014.03 (64-bit)


■AmazonLinux初期設定作業
TimeZone変更: Asia/Tokyo
iptables off
[ec2-user@ip-10-54-10-90 ~]$ sudo date; sudo cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime; sudo date
[ec2-user@ip-10-54-10-90 ~]$ sudo chkconfig iptables off; sudo chkconfig --list iptables
[ec2-user@ip-10-54-10-90 ~]$ sudo chkconfig ip6tables off; sudo chkconfig --list ip6tables
(出力結果省略)


■yum repository の追加
[ec2-user@ip-10-54-10-90 ~]$ sudo vi /etc/yum.repos.d/mongodb.repo
[ec2-user@ip-10-54-10-90 ~]$ cat /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=0
[ec2-user@ip-10-54-10-90 ~]$
オフィシャルサイトでは"enabled=1"となっているが、他用途でyumコマンドを実行したときにmongodb.repoをデフォルトで参照する必要はないので"enabled=0"とする。


■Install MongoDB
[ec2-user@ip-10-54-10-90 ~]$ sudo yum --enablerepo=mongodb install mongodb-org
(中略)
============================================================================
 Package                      Arch        Version       Repository     Size
============================================================================
Installing:
 mongodb-org                  x86_64      2.6.4-1       mongodb       4.6 k
Installing for dependencies:
 mongodb-org-mongos           x86_64      2.6.4-1       mongodb       6.8 M
 mongodb-org-server           x86_64      2.6.4-1       mongodb       9.0 M
 mongodb-org-shell            x86_64      2.6.4-1       mongodb       4.3 M
 mongodb-org-tools            x86_64      2.6.4-1       mongodb        89 M

Transaction Summary
============================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 109 M
Installed size: 276 M
(以下略)


■version確認
[ec2-user@ip-10-54-10-90 ~]$ mongod -version
db version v2.6.4
2014-09-04T11:28:44.181+0900 git version: 3a830be0eb92d772aa855ebb711ac91d658ee910
[ec2-user@ip-10-54-10-90 ~]$


■MongoDBのデフォルト設定確認
[ec2-user@ip-10-54-10-90 ~]$ grep -v "^#\|^$" /etc/mongod.conf
logpath=/var/log/mongodb/mongod.log
logappend=true
fork=true
dbpath=/var/lib/mongo
pidfilepath=/var/run/mongodb/mongod.pid
bind_ip=127.0.0.1
[ec2-user@ip-10-54-10-90 ~]$
※コメント行と空白行を非表示。


■mongod自動起動off
replication設定でmongodを起動したいので、 デフォルト設定のmongodは起動しないようにしておく。
[ec2-user@ip-10-54-10-90 ~]$ sudo chkconfig mongod off; sudo chkconfig --list mongod
mongod          0:off   1:off   2:off   3:off   4:off   5:off   6:off
[ec2-user@ip-10-54-10-90 ~]$


■データベース格納用ボリューム準備
あらかじめ、EC2作成時に別EBS(今回は10GBとした)を作成しておく。

## EBSのデバイス名を確認
[ec2-user@ip-10-54-10-90 ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
??xvda1 202:1    0   8G  0 part /
xvdb    202:16   0  10G  0 disk
[ec2-user@ip-10-54-10-90 ~]$

## ext4でフォーマット
[ec2-user@ip-10-54-10-90 ~]$ sudo mkfs.ext4 /dev/xvdb
mke2fs 1.42.8 (20-Jun-2013)
(中略)
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

[ec2-user@ip-10-54-10-90 ~]$

## 自動マウント設定
[ec2-user@ip-10-54-10-90 ~]$ sudo vi /etc/rc.local
[ec2-user@ip-10-54-10-90 ~]$ tail -2 /etc/rc.local
# for MongoDB data
mount /dev/xvdb /data
[ec2-user@ip-10-54-10-90 ~]$


■データベース格納先ディレクトリ準備
[ec2-user@ip-10-54-10-90 ~]$ sudo mkdir /data
[ec2-user@ip-10-54-10-90 ~]$ sudo mount /dev/xvdb /data
[ec2-user@ip-10-54-10-90 ~]$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/xvda1     ext4      7.8G  1.2G  6.5G  16% /
devtmpfs       devtmpfs  486M   60K  486M   1% /dev
tmpfs          tmpfs     499M     0  499M   0% /dev/shm
/dev/xvdb      ext4      9.8G   23M  9.2G   1% /data
[ec2-user@ip-10-54-10-90 ~]$

## データベース格納先作成(replication考慮)
[ec2-user@ip-10-54-10-90 ~]$ sudo mkdir -p /data/mongo_rs/db

## configファイル格納先作成と所有者変更
[ec2-user@ip-10-54-10-90 ~]$ sudo mkdir /data/mongo_rs/conf
[ec2-user@ip-10-54-10-90 ~]$ sudo chown ec2-user: -R /data/mongo_rs


★AMI(201409xx_mongo_install_only)作成
データ格納先を独自に指定したいので、デフォルト設定のままではMongoDBを起動しない。
mongo1サーバおよび、mongo2サーバでホスト名を定義したそれぞれのレプリケーション用のmongod.confを作成するためこの時点でAMIを作成しておく。


今回の手順はここまでとします。Replication設定についてはこちらの記事にまとめます。
こちらの情報が何かのお役に立てましたら幸いです。サイト継続ご協力のほどお願い致します。m(_ _)m

1 件のコメント: