記憶永続化用のメモブログ

脳内に揮発性記憶領域しかないことに気づいたので作成

AWSでElasticSearch & AutoScalingを使ってみたのでメモ

インスタンスを作成ElasticSearchをインストール

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.noarch.rpm

sudo rpm -ivh ./elasticsearch-0.90.5.noarch.rpm

sudo tar -xvf jdk-7u51-linux-x64.tar

sudo mv jdk1.7.0_51 /usr/local/

sudo alternatives --install /usr/bin/java java /usr/local/jdk1.7.0_51/bin/java 200

# JDK7の方を選択
sudo alternatives --config java

java -version

cd /usr/share/elasticsearch/

sudo bin/plugin --install elasticsearch/elasticsearch-cloud-aws/1.16.0
sudo bin/plugin --install royrusso/elasticsearch-HQ
sudo bin/plugin --install mobz/elasticsearch-head
sudo bin/plugin --install lukas-vlcek/bigdesk

sudo vim /etc/elasticsearch/elasticsearch.yml

sudo service elasticsearch start

cat /var/log/elasticsearch/elasticsearch.log

sudo service elasticsearch stop
  • /etc/elasticsearch/elasticsearch.ymlに書いたこと


cluster.name: elasticsearch

discovery.zen.ping.multicast.enabled: false

cloud.aws.region: ap-northeast-1
cloud:
aws:
access_key: XXXXXXXX
secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXX

discovery:
type: ec2

ec2:
tag:
hoge-tag-key: hoge-tag-value

AMIを作成する

AutoScalingをするのに使います
AWSのコンソールから作成する -> AMI IDをメモる

Subnetを作成する

AutoScalingのときにIPの範囲を絞るために使います
AWSのコンソールから作成する -> Subnet IDをメモる

Load Balancerを作成する

AWSのコンソールから作成する -> Load Balancer Nameをメモる

Security Groupを作成する

AutoScalingの時に自動でElasticSearch用サーバに付与するのに使います
AWSのコンソールから作成する -> Inboundで9200-9400ポートを開ければよさげ(もしかしたらもっと狭くてもいいかも) -> Group IDをメモる

AutoScalingの設定をする

AutoScalingToolのインストール(適当なサーバとかローカルの端末とかにインストール)

wget http://ec2-downloads.s3.amazonaws.com/AutoScaling-2011-01-01.zip
unzip AutoScaling-2011-01-01.zip
mv AutoScaling-1.0.61.4 /usr/local/
cd /usr/local/
ln -s AutoScaling-1.0.61.4 autoscaling
export PATH=$PATH:/usr/local/autoscaling/bin

AutoScalingConfigの登録

# imageId = AMI ID , accessKeyとsecretKeyは操作権限のあるIAMのを書く
as-create-launch-config hoge-config \
--image-id ami-XXXXXXXXX \
--instance-type t1.micro \
--key hoge-internal \
-I ${accessKey} \
-S ${secretKey} \
--region ap-northeast-1

AutoScalingGroupの登録

# vpc-zone-identifierはsubnetId,load-balancersはLoad Balancer Name
# タグはElasticSearchのAWS設定でタグフィルターで使用する
as-create-auto-scaling-group hoge-group \
--launch-configuration hoge-config \
--availability-zones ap-northeast-1a \
--group sg-XXXXXXX,   \
--tag "k=hoge-tag-key, v=hoge-tag-value, p=true" \
--min-size 1 --max-size 10 \
--load-balancers ${loadBalancerName} \
--vpc-zone-identifier subnet-XXXXXXX \
-I ${accessKey} \
-S ${secretKey} \
--region ap-northeast-1