ECS Quickstart

ECS Quickstart

Kadeck is available as a containerized application via AWS Marketplace. This guide provides instructions for deploying Kadeck using Amazon ECS (Elastic Container Service).

Deployment of Kadeck (Starter S1) on Amazon ECS

Prerequisites

  • An active AWS account
  • Your Kadeck license credentials (provided after purchase)
  • A PostgreSQL database (can be created using Amazon RDS)
  • Basic familiarity with AWS ECS

Step 1: Set Up a PostgreSQL Database (If Not Already Available)

  1. Navigate to Amazon RDS in the AWS Console
  2. Choose "Create database"
  3. Select "PostgreSQL" as the engine type
  4. Configure database settings as needed for your environment
  5. Note the endpoint URL, username, and password for the next step

Step 2: Create an ECS Task Definition

  1. Navigate to Amazon ECS in the AWS Console
  2. Select "Task Definitions" → "Create new Task Definition with JSON"
  3. Choose "Fargate" as the launch type
  4. Copy and paste the below task definition.
    (Replace ACCOUNT_ID and IMAGE_TAG with the respective values.)
{
  "family": "kadeck",
  "executionRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole",
  "networkMode": "awsvpc",
  "containerDefinitions": [
    {
      "name": "kadeck",
      "image": "709825985650.dkr.ecr.us-east-1.amazonaws.com/xeotek/kadeck:${IMAGE_TAG}",
      "essential": true,
      "portMappings": [
        {
          "containerPort": 8080,
          "hostPort": 8080,
          "protocol": "tcp"
        }
      ],
      "environment": [
        {
          "name": "xeotek_kadeck_teamid",
          "value": "YOUR_TEAM_ID"
        },
        {
          "name": "xeotek_kadeck_secret",
          "value": "YOUR_SECRET"
        },
        {
          "name": "xeotek_kadeck_port",
          "value": "8080"
        },
        {
          "name": "xeotek_kadeck_db_url",
          "value": "jdbc:postgresql://your-db-instance.region.rds.amazonaws.com:5432/kadeck"
        },
        {
          "name": "xeotek_kadeck_db_username",
          "value": "dbuser"
        },
        {
          "name": "xeotek_kadeck_db_password",
          "value": "dbpassword"
        }
      ],
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/kadeck",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "ecs"
        }
      }
    }
  ],
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "cpu": "2048",
  "memory": "4096",
  "tags": [
    {
      "key": "Name",
      "value": "Kadeck"
    }
  ]
}
  1. Be sure to replace:
    • ACCOUNT_ID with your AWS account ID
    • IMAGE_TAG with the version of Kadeck you wish to deploy (e.g., "6.1.0")
    • YOUR_TEAM_ID with your Kadeck Team ID
    • YOUR_SECRET with your Kadeck Secret
    • Database connection parameters with your actual database information
    • Region in awslogs-region with your AWS region

Step 3: Create an ECS Cluster (If Not Already Available)

  1. In the ECS console, select "Clusters" → "Create Cluster"
  2. Choose "Networking only" (for Fargate) and follow the setup wizard

Step 4: Create an ECS Service

  1. In your cluster, select "Create Service"
  2. Configure the service:
    • Launch type: FARGATE
    • Task Definition: Select the Kadeck task definition you created
    • Service name: kadeck-service
    • Number of tasks: 1
  3. Configure networking:
    • VPC: Select your VPC
    • Subnets: Select at least one subnet
    • Security group: Create or select a security group that allows inbound traffic on port 8080
    • Public IP: Enable if you need direct public access
  4. Skip load balancer setup for this minimal configuration
  5. Complete the service creation

Step 5: Access Kadeck

  • If you configured a public IP, access Kadeck at: http://[TASK_PUBLIC_IP]:8080
  • For internal access, use the private IP of the task

Required Configuration Parameters

Parameter Description Required
xeotek_kadeck_teamid Your unique team identifier Yes
xeotek_kadeck_secret Your authentication secret Yes
xeotek_kadeck_port Application port (recommend 8080) Yes
xeotek_kadeck_db_url JDBC URL to PostgreSQL database Yes
xeotek_kadeck_db_username Database username Yes
xeotek_kadeck_db_password Database password Yes

For more configuration parameters, view our configuration parameter overview.

Resource Requirements

  • CPU: 2 vCPU (2048 CPU units)
  • Memory: 4GB (4096 MB)

Troubleshooting

  • If the container fails to start, check CloudWatch logs at /ecs/kadeck
  • Ensure your security group allows traffic on port 8080
  • Verify database connectivity and credentials

Support

For technical assistance, contact our support team.