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
Excellent Blog, I appreciate your hard work , It is usefulAWS Online Course
返信削除