Overview
This guide will show how to deploy Console in your AWS environment with all the mandatory dependencies. It will demonstrate how to deploy Conduktor as a Docker container on ECS with Fargate and configure it alongside a PostgreSQL database via RDS. Our recommendation is to deploy with Kubernetes. You can follow this guide or view the instructions for Marktetplace listing (AWS CloudFormation).While this guide will help you get started, you may need to make additional configurations to ensure your deployment is production-ready.
Before you proceed, it is important to make sure that you have either already created a new Virtual Private Cloud (VPC) or are planning to use an existing one. This is important to ensure that your environment is secure and isolated. We also strongly recommend avoiding the use of the default VPC, as it can pose a security risk due to its common configuration.
Step 1: Create a PostgreSQL database via Amazon RDS
You can skip this step if you already have an RDS database running you want to use.
- Select PostgreSQL
- In the Template section, select Free Tier if you are just evaluating Conduktor.
- Master username:
conduktor
- Master password:
change_me

- Initial database name:
postgres

conduktor.xxx.eu-central-1.rds.amazonaws.com
.

Step 2: Create a new Task definition on ECS
Now that we have our database, it’s time to deploy Conduktor using Docker containers and ECS (Amazon Elastic Container Service). Go to Amazon Elastic Container Service:- Select Task Definitions
- Click on Create new task definition
- Define the ECS family name as
conduktor
, this will be useful to update our deployment with newer versions of Conduktor. - Specify the infrastructure requirements relevant to your deployment. As per system requirements, we recommend a minimum of 2x CPU cores and 4GB of RAM.
Step 2.1: Add the core console container
In the Container Details section:- Define the name of the container to
conduktor-console
- Specify the Image URI and version for Conduktor Console. You should use the most recent major/minor version. E.g.:
conduktor/conduktor-console:<tag>
. - Add a Port mapping on 8080. This is the port of the UI of Conduktor Console.

CDK_ADMIN_EMAIL
: yourname@yourcompany.comCDK_ADMIN_PASSWORD
: adminCDK_DATABASE_HOST
: the endpoint you retrieved earlier, like conduktor-xxx.yyy.eu-central-1.rds.amazonaws.comCDK_DATABASE_NAME
: postgresCDK_DATABASE_PASSWORD
: change_meCDK_DATABASE_PORT
: 5432CDK_DATABASE_USERNAME
: conduktorCDK_MONITORING_ALERT-MANAGER-URL
: http://localhost:9010/CDK_MONITORING_CALLBACK-URL
: http://localhost:8080/monitoring/api/CDK_MONITORING_CORTEX-URL
: http://localhost:9009/CDK_MONITORING_NOTIFICATIONS-CALLBACK-URL
: http://localhost:8080CDK_LICENSE
: Enterprise license key (Exclude if you are using Free)

You can also add your Kafka cluster, schema registry, Kafka Connect and ksqlDB configurations as environment variables. If you’re just getting started, we recommend you use the wizard inside the Console UI instead. The wizard provides support for uploading certificates, and help on debugging your connections.
Step 2.2: Add the Conduktor Cortex monitoring image
Under your first container definition, select + Add container so we can also specify the docker image required to get monitoring benefits inside Conduktor. In the Container Details section:- Define the name of the container to
conduktor-monitoring
- Specify the Image URI and version for conduktor monitoring. You should use the most recent major/minor version. E.g:.
conduktor/conduktor-console-cortex:<tag>
.
- 9090 | TCP | conduktor-cortex-9090-tcp
- 9010 | TCP | conduktor-cortex-9010-tcp
- 9009 | TCP | conduktor-cortex-9009-tcp

CDK_CONSOLE-URL
: http://localhost:8080


Step 3: Create an ECS cluster and setup Conduktor service
We created a task definition, but it’s still just a “template”. Now, we need a cluster to deploy it. We’ll use ECS with Fargate. Go to Settings > Clusters and create a cluster (use the default options):- Name: conduktor-ecs
- In the Infrastructure section, make sure AWS Fargate (serverless) is selected (default) Create the cluster, it might take a few seconds.
- Click on your new cluster
conduktor-ecs
- Create a new Service
- In the second section, Deployment configuration, make sure the Application type is Service, and select our Task Definition
conduktor-console
in the Family dropdown - Assign a unique name like Console to be able to identify it properly later on
- Let the rest of the options by default and click on Create at the bottom

Step 4: Access Conduktor and configure Kafka Clusters
From within the Services > Tasks screen, find the Container and navigate to the Network bindings tab.

3.122.113.99:8080
.
You can now log in as admin with the credentials previously defined in the environment variables, e.g. yourname@yourcompany.com
/ admin
.

Step 5: Onboard your team
Now that you have an up-and-running deployment of Console, it’s time to invite your team!- Configure SSO to easily onboard users
- Configure local users, if you are not using SSO
Troubleshoot
Can't access database or Console
Can't access database or Console
You may need to add inbound rules.
For example, in the security group attached to the console service, ensure there is an inbound rule (TCP) for port 8080. In the security group attached to the RDS instance, ensure an inbound rule (Type = PostgreSQL) for port 5432.
For example, in the security group attached to the console service, ensure there is an inbound rule (TCP) for port 8080. In the security group attached to the RDS instance, ensure an inbound rule (Type = PostgreSQL) for port 5432.
Deploy on AWS CloudFormation
You can deploy Console using AWS CloudFormation. This guide contains a brief overview of the marketplace listing architecture followed by the steps on how to deploy Console in your AWS environment with all the mandatory dependencies. It will deploy Conduktor as a Docker container on an ECS service with Fargate and configure it alongside a PostgreSQL database via RDS.This Conduktor marketplace offering is the Community version and this guide is intended to help you get started. Additional configurations might be required to ensure your deployment is production ready.
In this configuration, all the resources are on a public subnet. However, the DB instance is available on both private and public subnets. Keep this in mind as part of any security concerns for the database.

Deployment steps
- Visit the Marketplace listing page.
-
Select
View purchase options
. -
Accept the terms of service.
-
Select
Continue to Configuration
. -
Continue to Launch
. There is only one supported Software Version and fulfillment option available. -
You now can choose how you want to deploy the CloudFormation template. We offer a quicklink that will take you directly to the CloudFormation console with the template pre-filled on your last previously used region (What this guide will be covering). We also offer the raw CloudFormation template that you can download and deploy manually. Select
Quick launch CloudFormation template
. -
This will open you up to the CloudFormation page with the template pre-filled. Press
Next
. -
You will then be given the option to change the stack name or any of the other default values from our template. You will need to provide values for the missing CIDR properties towards the bottom of the page. Once you are happy with the parameters, press
Next
.The default value for the region is specified in the template aseu-west-1a
(public subnet) andeu-west-1b
(private subnet). If you’re deploying in a different region, you have to update these values. -
Configure your stack options and acknowledge that the CloudFormation template will create IAM resources and click Next.
-
You can then review the CloudFormation stack and then click Submit.
-
Wait for all resources to be created. This may take some time, about 10 minutes depending how quickly AWS deploys RDS.
-
From the Resources tab, click on
${AWS::StackName}-conduktor-ecs-cluster
. From Cluster, navigate to your newly created Service and then to the Task. Be sure to click on the links. -
Find the
conduktor-console
Container and (not the conduktor-console-cortex one) and navigate to the Network bindings tab. -
Click on the External link to open the Console application. In this example, our application is running at 54.155.197.172:8080.
Access Conduktor
You will now be greeted with the create admin login. Create credentials and make a note/save them as they are for this instance. If lost, Conduktor cannot remotely reset these credentials. From here, you can add additional local users if needed. When you’re ready for a production level deployment, you’ll want to connect to SSO for importing your organization’s existing users and groups.