Browse the Repo

file-type-icon.circleci
file-type-iconexamples
file-type-iconconfluent-oss-ami
file-type-iconkafka-ami
file-type-iconkafka-zookeeper-confluent-oss-ami
file-type-iconconfig
file-type-iconmock
file-type-iconREADME.md
file-type-iconconfigure-kafka-zk-confluent-server.sh
file-type-icondocker-compose.yml
file-type-iconkafka-zookeeper-confluent-oss.json
file-type-iconwait_for_zk.sh
file-type-iconkafka-zookeeper-confluent-oss-colocated-cl...
file-type-iconkafka-zookeeper-confluent-oss-standalone-c...
file-type-iconkafka-zookeeper-standalone-clusters
file-type-iconzookeeper-ami
file-type-iconmodules
file-type-icontest
file-type-icon.gitignore
file-type-icon.pre-commit-config.yaml
file-type-iconCODEOWNERS
file-type-iconLICENSE.txt
file-type-iconREADME.md
file-type-iconterraform-cloud-enterprise-private-module-...

Browse the Repo

file-type-icon.circleci
file-type-iconexamples
file-type-iconconfluent-oss-ami
file-type-iconkafka-ami
file-type-iconkafka-zookeeper-confluent-oss-ami
file-type-iconconfig
file-type-iconmock
file-type-iconREADME.md
file-type-iconconfigure-kafka-zk-confluent-server.sh
file-type-icondocker-compose.yml
file-type-iconkafka-zookeeper-confluent-oss.json
file-type-iconwait_for_zk.sh
file-type-iconkafka-zookeeper-confluent-oss-colocated-cl...
file-type-iconkafka-zookeeper-confluent-oss-standalone-c...
file-type-iconkafka-zookeeper-standalone-clusters
file-type-iconzookeeper-ami
file-type-iconmodules
file-type-icontest
file-type-icon.gitignore
file-type-icon.pre-commit-config.yaml
file-type-iconCODEOWNERS
file-type-iconLICENSE.txt
file-type-iconREADME.md
file-type-iconterraform-cloud-enterprise-private-module-...
Apache Kafka and Confluent Tools

Apache Kafka and Confluent Tools

Deploy a cluster of Kafka brokers. Optionally deploy Confluent tools such as Schema Registry, REST Proxy, and Kafka Connect.

Code Preview

Preview the Code

mobile file icon

README.md

down

Kafka/Zookeeper/Kafka Connect/Schema Registry/REST Proxy Example AMI

This folder contains an example Packer template that can be used to create an Amazon Machine Image (AMI) with Kafka, ZooKeeper, Kafka Connect, Schema Registry, REST Proxy, and all of their dependencies installed. A few notes about this Packer template:

  • It builds two AMIs, one on top of Amazon Linux and one on top of Ubuntu. Pick which ever distro you prefer.

  • This AMI includes Kafka, ZooKeeper, Kafka Connect, Schema Registry and REST Proxy with the expectation that you will run all of these co-located in the same cluster. The ZooKeeper dependencies come from terraform-aws-zookeeper. All other dependencies live in this repo.

  • A colocated cluster is useful for deploying a less expensinve non-production environment. For a production-ready example that configures these services to run in three separate clusters, see the kafka-ami , zookeeper-ami, and confluent-oss-ami examples.

  • This AMI example does not include SSL support.

    • If you want your Kafka brokers and Kafka Connect Workers to communicate over SSL, see the kafka-ami example.
    • If you want your Schema Registry and REST Proxy endpoints to communicate over SSL, see the confluent-oss-ami example.

To deploy this AMI, see the kafka-zookeeper-confluent-oss-colocated-cluster example.

Quick start

To build the AMI:

  1. Install Packer.
  2. Set up your AWS credentials as environment variables.
  3. Set the GITHUB_OAUTH_TOKEN environment variable to a valid GitHub auth token with "repo" access. You can generate one here: https://github.com/settings/tokens
  4. Run packer build -var "package_kafka_branch=<branch>" -only <target os> kafka-zookeeper-confluent-oss.json to create a new AMI in your AWS account. Note down the ID of this new AMI.

To deploy the new AMI, plug its ID into the kafka-zookeeper-confluent-oss-colocated-cluster example.

Questions? Ask away.

We're here to talk about our services, answer any questions, give advice, or just to chat.

Ready to hand off the Gruntwork?