Skip to main content

ECS Cluster

File: cluster.ts

This file defines and exports an Amazon ECS (Elastic Container Service) cluster using Pulumi, an infrastructure-as-code tool.

Imports

import * as aws from "@pulumi/aws";
import * as pulumi from "@pulumi/pulumi";
  • @pulumi/aws: Provides access to AWS resources through Pulumi
  • @pulumi/pulumi: Core Pulumi library for resource management

Configuration

const stack = pulumi.getStack();
const region = process.env.REGION || "use2";
  • stack: Retrieves the current Pulumi stack name
  • region: Sets the AWS region, defaulting to "use2" (US East 2) if not specified in environment variables

ECS Cluster Creation

const cluster = new aws.ecs.Cluster(`webapp-${stack}-ecs-${region}-cluster`, {
name: `webapp-${stack}-ecs-${region}-main-cluster`,
});

This creates a new ECS cluster with the following properties:

  • Resource Name: webapp-${stack}-ecs-${region}-cluster
    • Dynamically generated based on the stack and region
  • Cluster Name: webapp-${stack}-ecs-${region}-main-cluster
    • The actual name of the ECS cluster in AWS

Export

export { cluster };

The cluster object is exported, making it available for use in other Pulumi configuration files.

Usage

This ECS cluster can be used as the foundation for deploying containerized applications in AWS. It provides a logical grouping for ECS tasks and services.

Best Practices

  1. Environment Variables: The use of process.env.REGION allows for flexible deployment across different regions.
  2. Naming Convention: The cluster name includes the stack and region, promoting consistency and easy identification.
  3. Resource Naming: Pulumi resource names (first argument in constructor) should be unique within the stack.

Notes

  • Ensure that the AWS credentials are properly configured in your Pulumi setup.
  • This cluster configuration doesn't specify any advanced settings. Depending on your needs, you might want to add tags, logging configurations, or other cluster-specific settings.

For more information on ECS clusters and their configuration options, refer to the AWS ECS documentation and Pulumi AWS ECS documentation.