Service on Amazon Elastic Container Service (ECS) using AWS Fargate

Recipe ID: ConsoleAppEcsFargateService

Recipe Description: This .NET Console application will be built using a Dockerfile and deployed as a service to Amazon Elastic Container Service (Amazon ECS) with compute power managed by AWS Fargate compute engine. If your project does not contain a Dockerfile it will be automatically generated, otherwise an existing Dockerfile will be used. Recommended if you want to deploy a service as a container image on Linux.

Settings:

  • ECS Cluster
    • ID: ECSCluster
    • Description: The ECS cluster used for the deployment.
    • Type: Object
    • Settings:
      • Create New ECS Cluster
        • ID: CreateNew
        • Description: Do you want to create a new ECS cluster?
        • Type: Bool
      • Existing Cluster ARN
        • ID: ClusterArn
        • Description: The ARN of the existing cluster to use.
        • Type: String
      • New Cluster Name
        • ID: NewClusterName
        • Description: The name of the new cluster to create.
        • Type: String
  • ECS Service Name
    • ID: ECSServiceName
    • Description: The name of the ECS service running in the cluster.
    • Type: String
  • Desired Task Count
    • ID: DesiredCount
    • Description: The desired number of ECS tasks to run for the service.
    • Type: Int
  • Application IAM Role
    • ID: ApplicationIAMRole
    • Description: The Identity and Access Management (IAM) role that provides AWS credentials to the application to access AWS services.
    • Type: Object
    • Settings:
      • Create New Role
        • ID: CreateNew
        • Description: Do you want to create a new role?
        • Type: Bool
      • Existing Role ARN
        • ID: RoleArn
        • Description: The ARN of the existing role to use.
        • Type: String
  • Virtual Private Cloud (VPC)
    • ID: Vpc
    • Description: A VPC enables you to launch the application into a virtual network that you've defined.
    • Type: Object
    • Settings:
      • Use default VPC
        • ID: IsDefault
        • Description: Do you want to use the default VPC for the deployment?
        • Type: Bool
      • Create New VPC
        • ID: CreateNew
        • Description: Do you want to create a new VPC?
        • Type: Bool
      • Existing VPC ID
        • ID: VpcId
        • Description: The ID of the existing VPC to use.
        • Type: String
  • ECS Service Security Groups
    • ID: ECSServiceSecurityGroups
    • Description: A comma-delimited list of EC2 security groups to assign to the ECS service. This is commonly used to provide access to Amazon RDS databases running in their own security groups.
    • Type: String
  • Task CPU
    • ID: TaskCpu
    • Description: The number of CPU units used by the task. See the following for details on CPU values: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-task-defs
    • Type: Int
  • Task Memory
    • ID: TaskMemory
    • Description: The amount of memory (in MB) used by the task. See the following for details on memory values: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-task-defs
    • Type: Int
  • AutoScaling
    • ID: AutoScaling
    • Description: The AutoScaling configuration for the ECS service.
    • Type: Object
    • Settings:
      • Enable
        • ID: Enabled
        • Description: Do you want to enable AutoScaling?
        • Type: Bool
      • Minimum Capacity
        • ID: MinCapacity
        • Description: The minimum number of ECS tasks handling the demand for the ECS service.
        • Type: Int
      • Maximum Capacity
        • ID: MaxCapacity
        • Description: The maximum number of ECS tasks handling the demand for the ECS service.
        • Type: Int
      • AutoScaling Metric
        • ID: ScalingType
        • Description: The metric to monitor for scaling changes.
        • Type: String
      • CPU Target Utilization
        • ID: CpuTypeTargetUtilizationPercent
        • Description: The target cpu utilization percentage that triggers a scaling change.
        • Type: Double
      • Scale in cooldown (seconds)
        • ID: CpuTypeScaleInCooldownSeconds
        • Description: The amount of time, in seconds, after a scale in activity completes before another scale in activity can start.
        • Type: Int
      • Scale out cooldown (seconds)
        • ID: CpuTypeScaleOutCooldownSeconds
        • Description: The amount of time, in seconds, after a scale out activity completes before another scale out activity can start.
        • Type: Int
      • Memory Target Utilization
        • ID: MemoryTypeTargetUtilizationPercent
        • Description: The target memory utilization percentage that triggers a scaling change.
        • Type: Double
      • Scale in cooldown (seconds)
        • ID: MemoryTypeScaleInCooldownSeconds
        • Description: The amount of time, in seconds, after a scale in activity completes before another scale in activity can start.
        • Type: Int
      • Scale out cooldown (seconds)
        • ID: MemoryTypeScaleOutCooldownSeconds
        • Description: The amount of time, in seconds, after a scale out activity completes before another scale out activity can start.
        • Type: Int
  • Environment Variables
    • ID: ECSEnvironmentVariables
    • Description: Configure environment properties for your application.
    • Type: KeyValue
  • Docker Build Args
    • ID: DockerBuildArgs
    • Description: The list of additional options to append to the docker build command.
    • Type: String
  • Dockerfile Path
    • ID: DockerfilePath
    • Description: Specify a path to a Dockerfile as either an absolute path or a path relative to the project.
    • Type: String
  • Docker Execution Directory
    • ID: DockerExecutionDirectory
    • Description: Specifies the docker execution directory where the docker build command will be executed from.
    • Type: String
  • ECR Repository Name
    • ID: ECRRepositoryName
    • Description: Specifies the ECR repository where the Docker images will be stored
    • Type: String