Deploys InfluxDB OSS and Enterprise to AWS
Switch branches/tags
Clone or download
Latest commit 86a1cd0 Mar 19, 2018
Failed to load latest commit information.
files Initial Release Jul 26, 2017
LICENSE Adding license. Jan 18, 2018 Update README Mar 19, 2018 Document Jan 18, 2018 Update / improved variable descriptions Jan 18, 2018 Update README Mar 19, 2018

Terraform InfluxDB Module

Terraform module for deploying Influx OSS and Enterprise to AWS EC2.

This module creates and manages the following resources:

  • Meta and Data node instances including associated EBS volumes.
  • Security groups for cluster communications.
  • Route53 Records for instances in a specified zone.
  • Optional tagging of all resources for easy identification of resources. Useful with third-party configuration management tooling.

For the sake of deployment flexibility, this module intentionally leaves host level provisioning up to the user. For example users may like to use Ansible, Puppet or Chef to complete the installation procedure. A default AMI is not specified and should to be provided by the user.

Optional tags can be specified making this module easy to use with third-party configuration management systems as outlined in this Ansible guide

Usage Example

The following example demonstrates deploying a single Influx Enterprise cluster to production. This configuration will deploy 4 data nodes, 3 meta nodes, tagging all resources with an "Environment" tag set to production.

See the inputs doc or variable definitions file for more configuration options.

module "influxdb" {
    source  = "influxdata/influxdb/aws"
    version = "1.0.0"

    data_instances    = 4
    data_disk_size    = 500
    data_disk_iops    = 6000
    meta_instances    = 3
    ami               = "ami-6d48500b"
    tags              = "${map("Environment", "production")}"
    subnet_ids        = "${list("subnet-9d4a7b6c", "subnet-7d4a9b6c")}"
    vpc_id            = "vpc-6589ba03"
    instance_type     = "m4.large"
    key_name          = "deployer"
    zone_id           = "Z4RIKDGDIXUWGT"
    security_groups   = "${list("sg-fffa2187")}"