Running an application as an Amazon ECS task - Amazon Elastic Container Service

Running an application as an Amazon ECS task

You can create a task for a one-time process using the AWS Management Console.

To create a standalone task (AWS Management Console)
  1. Open the console at https://console.aws.amazon.com/ecs/v2.

  2. The Amazon ECS console allows you to create a standalone task from either your cluster detail page or from the task definition revision list. Use the following steps to create your standalone task depending on the resource page you choose.

    To start a service from Steps

    a cluster detail page...

    1. On the Clusters page, select the cluster to create the service in.

    2. From the Tasks tab, choose Run new task.

    a task definition revision page...
    1. On the Task definitions page, choose the task definition family to display the revisions for that family.

    2. Select the revision you want to use.

    3. From the Deploy menu, choose Run task.

  3. (Optional) The Compute configuration (advanced) section is where you choose how your tasks will be distributed. You can use either a Capacity provider strategy or a Launch type. To use a capacity provider strategy, you must configure your capacity providers at the cluster level. If you haven't configured your cluster to use a capacity provider, use a launch type instead.

    Distribution method Steps

    Capacity provider strategy

    1. In the Compute options section, select Capacity provider strategy.

    2. Choose a strategy:

      • To use the cluster's default capacity provider strategy, choose Use cluster default.

      • If your cluster doesn't have a default capacity provider strategy, or to use a custom strategy, choose Use custom, Add capacity provider strategy and define your custom capacity provider strategy by specifying a Base, Capacity provider, and Weight.

    Note

    To use a capacity provider in a strategy, the capacity provider must be associated with the cluster.

    Launch type
    1. In the Compute options section, select Launch type.

    2. For Launch type, choose a launch type.

    3. (Optional) When the Fargate launch type is specified, for Platform version, specify the platform version to use. If a platform version isn't specified, the LATEST platform version is used.

  4. For Application type, choose Task.

  5. For Task definition, choose the task definition family and revision.

    Important

    The console validates the selection to ensure that the selected task definition family and revision are compatible with the defined compute configuration.

  6. For Desired tasks, enter the number of tasks to launch.

  7. If your task definition uses the awsvpc network mode, expand Networking. Use the following steps to specify a custom configuration.

    1. For VPC, select the VPC to use.

    2. For Subnets, select one or more subnets in the VPC that the task scheduler considers when placing your tasks.

      Important

      Only private subnets are supported for the awsvpc network mode. Tasks do not receive public IP addresses. Therefore, a NAT gateway is required for outbound internet access, and inbound internet traffic is routed through a load balancer.

    3. For Security group, you can either choose an existing security group or create a new one. To use an existing security group, choose the security group and move to the next step. To create a new security group, choose Create a new security group. You must specify a security group name, description, and then add one or more inbound rules for the security group.

    4. For Public IP, choose whether to auto-assign a public IP address to the elastic network interface (ENI) of the task.

      AWS Fargate tasks can be assigned a public IP address when run in a public subnet so they have a route to the internet. For more information, see Fargate task networking in the Amazon Elastic Container Service User Guide for AWS Fargate.

  8. If your task uses a data volume that's compatible with configuration at deployment, you can configure the volume by expanding Volume.

    The volume name and volume type are configured when creating a task definition revision and can't be changed when you run a standalone task. To update the volume name and type, you must create a new task definition revision and run a task by using the new revision.

    To configure this volume type Do this

    Amazon EBS

    1. For EBS volume type, choose the type of EBS volume that you want to attach to your task.

    2. For Size (GiB), enter a valid value for the volume size in gibibytes (GiB). You can specify a minimum of 1 GiB and a maximum of 16,384 GiB volume size. This value is required unless you provide a snapshot ID.

    3. For IOPS, enter the maximum number of input/output operations (IOPS) that the volume should provide. This value is configurable only for io1,io2, and gp3 volume types.

    4. For Throughput (MiB/s), enter the throughput that the volume should provide, in mebibytes per second (MiBps, or MiB/s). This value is configurable only for the gp3 volume type.

    5. For Snapshot ID, choose an existing Amazon EBS volume snapshot or enter the ARN of a snapshot if you want to create a volume from a snapshot. You can also create a new, empty volume by not choosing or entering a snapshot ID.

    6. For Termination policy, deselect the checkbox if you want the volume configured for attachment to the task to be preserved after the task is terminated. By default, EBS volumes that are attached to tasks are deleted when the task is terminated.

    7. For File system type, choose the type of file system that will be used for data storage and retrieval on the volume. You can choose either the operating system default or a specific file system type. The default for Linux is XFS. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.

    8. For Infrastructure role, choose an IAM role with the necessary permissions that allow Amazon ECS to manage Amazon EBS volumes for tasks. You can attach the AmazonECSInfrastructureRolePolicyForVolumes managed policy to the role, or you can use the policy as a guide to create and attach an your own policy with permissions that meet your specific needs. For more information about the necessary permissions, see see Amazon ECS infrastructure IAM role.

    9. For Encryption, choose Default if you want to use the Amazon EBS encryption by default settings. If your account has Encryption by default configured, the volume will be encrypted with the AWS Key Management Service (AWS KMS) key that's specified in the setting. If you choose Default and Amazon EBS default encryption isn't turned on, the volume will be unencrypted.

      If you choose Custom, you can specify an AWS KMS key of your choice for volume encryption.

      If you choose None, the volume will be unencrypted unless you have encryption by default configured, or if you create a volume from an encrypted snapshot.

    10. If you've chosen Custom for Encryption, you must specify the AWS KMS key that you want to use. For KMS key, choose an AWS KMS key or enter a key ARN. If you choose to encrypt your volume by using a symmetric customer managed key, make sure that you have the right permissions defined in your AWS KMS key policy. For more information, see Data encryption for Amazon EBS volumes.

    11. (Optional) Under Tags, you can add tags to your Amazon EBS volume by either propagating tags from the task definition or by providing your own tags.

      If you want to propagate tags from the task definition, choose Task definition for Propagate tags from. If you choose Do not propagate, or if you don't choose a value, the tags aren't propagated.

      If you want to provide your own tags, choose Add tag and then provide the key and value for each tag you add.

      For more information about tagging Amazon EBS volumes, see Tagging Amazon EBS volumes.

  9. (Optional) To use a task placement strategy other than the default, expand Task Placement, and then choose from the following options.

    For more information, see How Amazon ECS places tasks on container instances.

    • AZ Balanced Spread – Distribute tasks across Availability Zones and across container instances in the Availability Zone.

    • AZ Balanced BinPack – Distribute tasks across Availability Zones and across container instances with the least available memory.

    • BinPack – Distribute tasks based on the least available amount of CPU or memory.

    • One Task Per Host – Place, at most, one task from the service on each container instance.

    • Custom – Define your own task placement strategy.

    If you chose Custom, define the algorithm for placing tasks and the rules that are considered during task placement.

    • Under Strategy, for Type and Field, choose the algorithm and the entity to use for the algorithm.

      You can enter a maximum of 5 strategies.

    • Under Constraint, for Type and Expression, choose the rule and attribute for the constraint.

      For example, to set the constraint to place tasks on T2 instances, for the Expression, enter attribute:ecs.instance-type =~ t2.*.

      You can enter a maximum of 10 constraints.

  10. (Optional) To override the task IAM role, or task execution role that is defined in your task definition, expand Task overrides, and then complete the following steps:

    1. For Task role, choose an IAM role for this task. For more information, see Amazon ECS task role.

      Only roles with the ecs-tasks.amazonaws.com trust relationship are displayed. For instructions on how to create an IAM role for your tasks, see Create an IAM role and policy.

    2. For Task execution role, choose a task execution role. For more information, see Amazon ECS task execution IAM role.

  11. (Optional) To override the container commands and environment variables, expand Container Overrides, and then expand the container.

    • To send a command to the container other than the task definition command, for Command override, enter the Docker command.

      For more information about the Docker run command, see Docker Run reference in the Docker Reference Manual.

    • To add an environment variable, choose Add Environment Variable. For Key, enter the name of your environment variable. For Value, enter a string value for your environment value (without the surrounding double quotation marks (" ")).

      AWS surrounds the strings with double quotation marks (" ") and passes the string to the container in the following format:

      MY_ENV_VAR="This variable contains a string."
  12. (Optional) To help identify your task, expand the Tags section, and then configure your tags.

    To have Amazon ECS automatically tag all newly launched tasks with the cluster name and the task definition tags, select Turn on Amazon ECS managed tags, and then select Task definitions.

    Add or remove a tag.

    • [Add a tag] Choose Add tag, and then do the following:

      • For Key, enter the key name.

      • For Value, enter the key value.

    • [Remove a tag] Next to the tag, choose Remove tag.

  13. Choose Create.