Skip to main content

CDK Constructs for AWS ECS

Project description

CDK Construct library for higher-level ECS Constructs

This library provides higher-level ECS constructs which follow common architectural patterns. It contains:

  • Load Balanced Services
  • Queue Worker Services
  • Scheduled Tasks (cron jobs)

Load Balanced Services

To define a service that is behind a load balancer, instantiate one of the following:

  • LoadBalancedEc2Service
const loadBalancedEcsService = new ecsPatterns.LoadBalancedEc2Service(stack, 'Service', {
  cluster,
  memoryLimitMiB: 1024,
  image: ecs.ContainerImage.fromRegistry('test'),
  desiredCount: 2,
  environment: {
    TEST_ENVIRONMENT_VARIABLE1: "test environment variable 1 value",
    TEST_ENVIRONMENT_VARIABLE2: "test environment variable 2 value"
  }
});
  • LoadBalancedFargateService
const loadBalancedFargateService = new ecsPatterns.LoadBalancedFargateService(stack, 'Service', {
  cluster,
  memoryMiB: '1GB',
  cpu: '512',
  image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample"),
});

Queue Worker Services

To define a service that creates a queue and reads from that queue, instantiate one of the following:

  • Ec2QueueWorkerService
const ecsQueueWorkerService = new Ec2QueueWorkerService(stack, 'Service', {
  cluster,
  memoryLimitMiB: 1024,
  image: ecs.ContainerImage.fromRegistry('test'),
  command: ["-c", "4", "amazon.com"],
  enableLogging: false,
  desiredTaskCount: 2,
  environment: {
    TEST_ENVIRONMENT_VARIABLE1: "test environment variable 1 value",
    TEST_ENVIRONMENT_VARIABLE2: "test environment variable 2 value"
  },
  queue,
  maxScalingCapacity: 5
});
  • FargateQueueWorkerService
const fargateQueueWorkerService = new FargateQueueWorkerService(stack, 'Service', {
  cluster,
  memoryMiB: '512',
  image: ecs.ContainerImage.fromRegistry('test'),
  command: ["-c", "4", "amazon.com"],
  enableLogging: false,
  desiredTaskCount: 2,
  environment: {
    TEST_ENVIRONMENT_VARIABLE1: "test environment variable 1 value",
    TEST_ENVIRONMENT_VARIABLE2: "test environment variable 2 value"
  },
  queue,
  maxScalingCapacity: 5
});

Scheduled Tasks

To define a task that runs periodically, instantiate an ScheduledEc2Task:

// Instantiate an Amazon EC2 Task to run at a scheduled interval
const ecsScheduledTask = new ScheduledEc2Task(this, 'ScheduledTask', {
  cluster,
  image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample"),
  scheduleExpression: 'rate(1 minute)',
  environment: [{ name: 'TRIGGER', value: 'CloudWatch Events' }],
  memoryLimitMiB: 256
});

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for aws-cdk.aws-ecs-patterns, version 0.33.0
Filename, size File type Python version Upload date Hashes
Filename, size aws_cdk.aws_ecs_patterns-0.33.0-py3-none-any.whl (86.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size aws-cdk.aws-ecs-patterns-0.33.0.tar.gz (88.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page