Browse the Repo
Browse the Repo
Deploy a self-hosted Elasticsearch cluster. Supports automatic bootstrap, zero-downtime rolling deployment, auto healing, backup, and recovery.
This repo contains modules for deploying and managing the ELK Stack.
If you want to quickly spin up the entire ELK stack installed on a single machine, you can run the single server example. This is a simple example that shows you how all the components in this module work together. If you want a more production-like deployment with separate clusters for each component of ELK, look at ELK Deployment example.
This repo has the following folder structure:
The main modules are:
The supporting modules are:
elasticsearch-cluster-backup: A Terraform module to deploy a Lambda function that takes snapshots of the Elasticsearch cluster on a configurable schedule and stores those snapshots in S3.
elasticsearch-cluster-restore: A Terraform module to deploy a Lambda function that restores a cluster from saved snapshots.
elasticsearch-iam-policies: A Terraform module to configure IAM permissions used by Elasticsearch.
elasticsearch-security-group-rules: A Terraform module to setup security group rules for Elasticsearch.
logstash-iam-policies: A Terraform module to configure IAM permissions used by Logstash.
logstash-security-group-rules: A Terraform module to setup security group rules for Logstash.
kibana-security-group-rules: A Terraform module to setup security group rules for Kibana.
Click on each module above to see its documentation.
A Module is a canonical, reusable, best-practices definition for how to run a single piece of infrastructure, such as a database or server cluster. Each Module is written using a combination of Terraform and scripts (mostly bash) and include automated tests, documentation, and examples. It is maintained both by the open source community and companies that provide commercial support.
Instead of figuring out the details of how to run a piece of infrastructure from scratch, you can reuse existing code that has been proven in production. And instead of maintaining all that infrastructure code yourself, you can leverage the work of the Module community to pick up infrastructure improvements through a version number bump.
Contributions are very welcome! Check out the Contribution Guidelines for instructions.
During initial development, the major version will be 0 (e.g.,
0.x.y), which indicates the code does not yet have a
stable API. Once we hit
1.0.0, we will make every effort to maintain a backwards compatible API and use the MAJOR,
MINOR, and PATCH versions on each release to indicate any incompatibilities.
Please see LICENSE for how the code in this repo is licensed.
Copyright © 2018 Gruntwork, Inc.
We're here to talk about our services, answer any questions, give advice, or just to chat.