On AWS EC2, at ~20$ per month (estimated using AWS Pricing Calculator).
AWS partnered with Netflix and Expedia Group to create open source distribution of Elasticsearch named “Open Distro for Elasticsearch”.
- Security - Authentication and role based access management
- Alerting - Get notified when your data meets certain conditions
- Many more features - Since it's Open Distro for Elasticsearch there are many more features for you to explore. Here are some great reviews you can read:
Since the Standard plan does not include all the mentioned features.
At the time of writing (Apr 2019), Amazon Elasticsearch Service was not as mature as the Open Distro for Elasticsearch. It lacked alerting, the security was limited and it was more expensive than the underlying EC2 resources it used. Knowing that, even Amazon backed this open-source project.
- Create new EC2 instance as follows.
- Amazon Machine Image (AMI):
Ubuntu Server 18.04 LTS (HVM), SSD Volume Type
. - Instance Type: At least
t2.small
. - Associate Elastic IP to your instance.
- Make sure you can
ssh
the new instance.
Connection timed out
Read here
Now, ssh
the new EC2 instance and do the following:
sudo apt install docker.io
sudo apt install docker-compose
git clone git@github.com:pineur/elasticsearch-open-distro-docker.git
cd elasticsearch-open-distro-docker
The default operating system limit on mmap
counts is likely to be too low for Elasticsearch 6.7 (source). Let's change that:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
docker-compose up
(Ignore all the errors. We haven't finished yet)docker exec $(docker ps -aqf "name=odfe-node1") /bin/sh /usr/share/elasticsearch/plugins/opendistro_security/tools/hash.sh -p
[YOUR PASSWORD]- Copy the output hash
docker-compose down -v
(DON'T SKIP THIS! It's necessary for the change to take effect)
- For all users but
admin
andkibanaserver
you will be able to change the password throught Kibana. - In
internal_users.yml
replacehash
for usersadmin
andkibanaserver
. You may replace the hash for other users as well. - In
custom-kibana.yml
replaceCHANGE-THIS
with the plain password ofkibanaserver
.
docker-compose up -d
exit
- Allow the EC2 instance inbound traffic on ports:
- Kibana:
5601
- Elasticsearch:
9200
- Performance Analyzer:
9600
- Kibana:
curl -XGET --insecure https://
[instance-ip]:9200 -u admin:
[admin-password]
- Open http://[instance-ip]:5601/
- Add SSL Certificates
- Data retention plan
- Data recovery plan