Amazon Elasticsearch Serviceでは、Elasticsearchのプラグインのインストールに制限があるので、EC2上にElasicsearchを構築した際のメモ。
手順
インスタンス追加
まずはGUI等からEC2インスタンスを作成。
swap領域追加
メモリを多く使うことが想定されるので、念のためswap領域を追加。
対象のEC2にsshで接続して、root
ユーザで1024MB
のswap領域を追加。
検証用でt2.nano
を使っていたので多めに設定したが、適宜変える。
参考: http://qiita.com/waytoa/items/7010cfe2852d816c9513
以下のような状態にする。
$ free -m
total used free shared buffers cached
Mem: 489 484 5 0 8 416
-/+ buffers/cache: 59 430
Swap: 1023 0 1023
Elasticsearchインストール
ここからは全てec2-user
での作業を想定。
Java 8をインストール
$ sudo yum install -y java-1.8.0-openjdk-devel
$ sudo /usr/sbin/alternatives --config java
確認。
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
rpmでインストール
今回は5.5.0
をインストール。バージョンは適宜変えること。
$ mkdir ~/src
$ cd ~/src
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.rpm
$ sha1sum elasticsearch-5.5.0.rpm
$ sudo rpm --install elasticsearch-5.5.0.rpm
プラグインをインストール
必要に応じてインストールする。今回はスキップ。
AWS上でクラスタを組みたいならcloud-aws
を入れる。
JVMの設定を変更
t2.nano
想定でメモリ総量の半分である256M
を設定。
$ sudo cp -a /etc/elasticsearch/jvm.options{,org}
$ sudo sed -i -e s/Xms2g/Xms256M/g -e s/Xmx2g/Xmx256M/g /etc/elasticsearch/jvm.options
確認。
$ sudo diff /etc/elasticsearch/jvm.options{,org}
22,23c22,23
< -Xms256M
< -Xmx256M
---
> -Xms2g
> -Xmx2g
Elasticsearchの設定を変更
localhost以外からのアクセスを許可する。
$ sudo bash -c 'echo "network.host: 0.0.0.0" >> /etc/elasticsearch/elasticsearch.yml'
$ sudo diff /etc/elasticsearch/elasticsearch.yml{,.org}
89d88
< network.host: 0.0.0.0
ulimitを変更
上記ネットワーク設定を変えると以下の設定も必要。
$ sudo cp -a /etc/security/limits.conf{,.org}
$ sudo vim /etc/security/limits.conf
確認。
$ diff /etc/security/limits.conf{,.org}
61,63d60
< elasticsearch soft nproc 2048
< elasticsearch hard nproc 2048
<
自動起動設定を追加
$ sudo chkconfig --add elasticsearch
起動
$ sudo -i service elasticsearch start
アクセス確認
$ curl localhost:9200
{
"name" : "xuyWBNK",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "oSCaIbFRRH6Y4T-wXfmwTg",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
Kibanaのインストール
インストール
$ cd ~/src
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-x86_64.rpm
$ sha1sum kibana-5.5.0-x86_64.rpm
$ sudo rpm --install kibana-5.5.0-x86_64.rpm
localhost以外からのアクセスを許可する設定を追加
$ sudo cp -a /etc/kibana/kibana.yml{,.org}
$ sudo vim /etc/kibana/kibana.yml
確認。server.host
にはロードバランサーのDNSやElasic IPと紐付けたパブリックIPを入れる。
$ sudo diff /etc/kibana/kibana.yml{,.org}
8d7
< server.host: ${EC2インスタンスのIP}
自動起動設定を追加
$ sudo chkconfig --add kibana
起動
sudo -i service kibana start
参考
- Elasticsearchのインストール関連
- Kibanaのインストール関連