Skip to content
This repository has been archived by the owner on Jun 15, 2023. It is now read-only.

Commit

Permalink
Periodic update, Aug 2020
Browse files Browse the repository at this point in the history
  • Loading branch information
joelbrandenburg committed Aug 24, 2020
1 parent c34b001 commit 3ba9bc2
Show file tree
Hide file tree
Showing 103 changed files with 1,103 additions and 560 deletions.
12 changes: 6 additions & 6 deletions doc_source/AWS_Copilot.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

The AWS Copilot command line interface \(CLI\) provides application\-first, high\-level commands to simplify modeling, creating, releasing, and managing production\-ready containerized applications on Amazon ECS from a local development environment\. Provisioned with application templates, infrastructure as code, and CI/CD pipeline options, the AWS Copilot CLI aligns with application workflows that support modern application best practices\. Use the AWS Copilot CLI as part of your everyday development and testing cycle as an alternative to the AWS Management Console\.

The latest version of the AWS Copilot CLI is 0\.1\.0\. For release notes, see [Releases](https://github.com/aws/amazon-ecs-cli-v2/releases)\.
AWS Copilot currently supports Linux and macOS systems\. For more information about the latest version of the AWS Copilot CLI, see [Releases](https://github.com/aws/amazon-ecs-cli-v2/releases)\.

**Note**
The source code for the AWS Copilot CLI is available on [GitHub](https://github.com/aws/amazon-ecs-cli-v2)\. We encourage you to submit issues and pull requests for changes that you would like to have included\. However, Amazon Web Services does not currently support running modified copies of AWS Copilot code\.
Expand All @@ -18,7 +18,7 @@ The source code for the AWS Copilot CLI is available on [GitHub](https://github.

## Installing the AWS Copilot CLI<a name="copilot-install"></a>

The AWS Copilot CLI can be installed either by using Homebrew or by manually downloading the binary\. Use the following steps with your preferred installation method\.
The AWS Copilot CLI can be installed on Linux or macOS systems either by using Homebrew or by manually downloading the binary\. Use the following steps with your preferred installation method\.

### Installing the AWS Copilot CLI using Homebrew<a name="copilot-install-homebrew"></a>

Expand All @@ -38,7 +38,7 @@ As an alternative to Homebrew, you can manually install the AWS Copilot CLI on y
For macOS:

```
sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-darwin-v0.1.0 \
sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.3.0/copilot-darwin-v0.3.0 \
&& sudo chmod +x /usr/local/bin/copilot \
&& copilot --help
```
Expand All @@ -49,7 +49,7 @@ sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases
For Linux systems:

```
sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-linux-v0.1.0 \
sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.3.0/copilot-linux-v0.3.0 \
&& sudo chmod +x /usr/local/bin/copilot \
&& copilot --help
```
Expand Down Expand Up @@ -237,7 +237,7 @@ The AWS Copilot CLI executables are cryptographically signed using PGP signature
For macOS systems, run the following command\.
```
sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-darwin-v0.1.0.asc
sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/download/v0.3.0/copilot-darwin-v0.3.0.asc
```
------
Expand All @@ -246,7 +246,7 @@ The AWS Copilot CLI executables are cryptographically signed using PGP signature
For Linux systems, run the following command\.
```
sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-linux-v0.1.0.asc
sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/download/v0.3.0/copilot-linux-v0.3.0.asc
```
------
Expand Down
64 changes: 42 additions & 22 deletions doc_source/AWS_Fargate.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ Amazon ECS on AWS Fargate is supported in the following Regions\. The supported
| --- | --- |
| US East \(Ohio\) | us\-east\-2 |
| US East \(N\. Virginia\) | us\-east\-1 |
| US West \(N\. California\) | us\-west\-1 |
| US West \(N\. California\) | us\-west\-1 \(`usw1-az1` & `usw1-az3` only\) |
| US West \(Oregon\) | us\-west\-2 |
| Africa \(Cape Town\) | af\-south\-1 |
| Asia Pacific \(Hong Kong\) | ap\-east\-1 |
| Asia Pacific \(Mumbai\) | ap\-south\-1 |
| Asia Pacific \(Seoul\) | ap\-northeast\-2 \(`apne2-az1`, `apne2-az2` & `apne2-az3` only\) |
| Asia Pacific \(Seoul\) | ap\-northeast\-2 |
| Asia Pacific \(Singapore\) | ap\-southeast\-1 |
| Asia Pacific \(Sydney\) | ap\-southeast\-2 |
| Asia Pacific \(Tokyo\) | ap\-northeast\-1 |
| Asia Pacific \(Tokyo\) | ap\-northeast\-1 \(`apne1-az1`, `apne1-az2`, & `apne1-az4` only\) |
| Canada \(Central\) | ca\-central\-1 \(`cac1-az1` & `cac1-az2` only\) |
| China \(Beijing\) | cn\-north\-1 \(`cnn1-az1`, `cnn1-az2` & `cnn1-az3` only\) |
| China \(Beijing\) | cn\-north\-1 \(`cnn1-az1` & `cnn1-az2` only\) |
| China \(Ningxia\) | cn\-northwest\-1 |
| Europe \(Frankfurt\) | eu\-central\-1 |
| Europe \(Ireland\) | eu\-west\-1 |
Expand All @@ -41,7 +41,7 @@ The following walkthroughs help you get started using AWS Fargate with Amazon EC
+ [Tutorial: Creating a Cluster with a Fargate Task Using the AWS CLI](ECS_AWSCLI_Fargate.md)
+ [Tutorial: Creating a Cluster with a Fargate Task Using the Amazon ECS CLI](ecs-cli-tutorial-fargate.md)

## Task Definitions<a name="fargate-task-defs"></a>
## Task definitions<a name="fargate-task-defs"></a>

Amazon ECS tasks on Fargate do not support all of the task definition parameters that are available\. Some parameters are not supported at all, and others behave differently for Fargate tasks\.

Expand All @@ -68,13 +68,13 @@ To ensure that your task definition validates for use with Fargate, you can spec
+ In the AWS CLI, specify the `--requires-compatibilities` option\.
+ In the Amazon ECS API, specify the `requiresCompatibilities` flag\.

### Network Mode<a name="fargate-tasks-networkmode"></a>
### Network mode<a name="fargate-tasks-networkmode"></a>

Amazon ECS task definitions for Fargate require that the network mode is set to `awsvpc`\. The `awsvpc` network mode provides each task with its own elastic network interface\. For more information, see [Task Networking with the `awsvpc` Network Mode](task-networking.md)\.

A network configuration is also required when creating a service or manually running tasks\. For more information, see [Task Networking](#fargate-tasks-services-networking)\.
A network configuration is also required when creating a service or manually running tasks\. For more information, see [Task networking](#fargate-tasks-services-networking)\.

### Task CPU and Memory<a name="fargate-tasks-size"></a>
### Task CPU and memory<a name="fargate-tasks-size"></a>

Amazon ECS task definitions for Fargate require that you specify CPU and memory at the task level\. Although you can also specify CPU and memory at the container level for Fargate tasks, this is optional\. Most use cases are satisfied by only specifying these resources at the task level\. The table below shows the valid combinations of task\-level CPU and memory\.

Expand All @@ -87,7 +87,7 @@ Amazon ECS task definitions for Fargate require that you specify CPU and memory
| 2048 \(2 vCPU\) | Between 4 GB and 16 GB in 1\-GB increments |
| 4096 \(4 vCPU\) | Between 8 GB and 30 GB in 1\-GB increments |

### Task Resource Limits<a name="fargate-resource-limits"></a>
### Task resource limits<a name="fargate-resource-limits"></a>

Amazon ECS task definitions for Fargate support the `ulimits` parameter to define the resource limits to set for a container\.

Expand Down Expand Up @@ -127,11 +127,11 @@ For more information about the `firelens` log driver in a task definition, see [

For more information about using the `splunk` log driver in a task definition, see [Example: `splunk` log driver](example_task_definitions.md#example_task_definition-splunk)\.

### Amazon ECS Task Execution IAM Role<a name="fargate-tasks-iam"></a>
### Amazon ECS task execution IAM role<a name="fargate-tasks-iam"></a>

There is an optional task execution IAM role that you can specify with Fargate to allow your Fargate tasks to make API calls to Amazon ECR\. The API calls pull container images as well as calling CloudWatch to store container application logs\. For more information, see [Amazon ECS Task Execution IAM Role](task_execution_IAM_role.md)\.
There is an optional task execution IAM role that you can specify with Fargate to allow your Fargate tasks to make API calls to Amazon ECR\. The API calls pull container images as well as calling CloudWatch to store container application logs\. For more information, see [Amazon ECS task execution IAM role](task_execution_IAM_role.md)\.

### Example Task Definition<a name="fargate-tasks-example"></a>
### Example task definition<a name="fargate-tasks-example"></a>

The following is an example task definition that sets up a web server using the Fargate launch type:

Expand Down Expand Up @@ -177,17 +177,17 @@ The following is an example task definition that sets up a web server using the
}
```

### Task Storage<a name="fargate-tasks-storage"></a>
### Task storage<a name="fargate-tasks-storage"></a>

For Fargate tasks, the following storage types are supported:
+ Amazon EFS volumes for persistent storage\. For more information, see [Amazon EFS volumes](efs-volumes.md)\.
+ Ephemeral storage for nonpersistent storage\.

When provisioned, each Amazon ECS task on Fargate receives the following ephemeral storage\. The ephemeral storage configuration depends on which platform version the task is using\. After a Fargate task stops, the ephemeral storage is deleted\. For more information about Amazon ECS default service limits, see [Amazon ECS service quotas](service-quotas.md)\.
When provisioned, each Amazon ECS task on Fargate receives the following ephemeral storage\.

#### Fargate tasks using platform version 1\.4\.0 or later<a name="fargate-task-storage-pv14"></a>

All Amazon ECS on Fargate tasks using platform version 1\.4\.0 or later receive a minimum of 20 GB of ephemeral storage\. The amount of storage is not adjustable\.
For Amazon ECS on Fargate tasks using platform version 1\.4\.0 or later, each task receives 20 GB of ephemeral storage\. The amount of storage is not adjustable\.

For tasks using platform version 1\.4\.0 or later that are launched on May 28, 2020 or later, the ephemeral storage is encrypted with an AES\-256 encryption algorithm using an AWS Fargate\-managed encryption key\.

Expand All @@ -199,11 +199,11 @@ For Amazon ECS on Fargate tasks using platform version 1\.3\.0 or earlier, each
**Note**
The `host` and `sourcePath` parameters are not supported for Fargate tasks\.

## Tasks and Services<a name="fargate-tasks-services"></a>
## Tasks and services<a name="fargate-tasks-services"></a>

After you have your Amazon ECS task definitions for Fargate prepared, there are some decisions to make when creating your service\.

### Task Networking<a name="fargate-tasks-services-networking"></a>
### Task networking<a name="fargate-tasks-services-networking"></a>

Amazon ECS tasks for Fargate require the `awsvpc` network mode, which provides each task with an elastic network interface\. When you run a task or create a service with this network mode, you must specify one or more subnets to attach the network interface and one or more security groups to apply to the network interface\.

Expand All @@ -221,9 +221,21 @@ The following is an example of the networkConfiguration section for a Fargate se
}
```

Services with tasks that use the `awsvpc` network mode \(for example, those with the Fargate launch type\) only support Application Load Balancers and Network Load Balancers\. Classic Load Balancers are not supported\. Also, when you create any target groups for these services, you must choose `ip` as the target type, not `instance`\. This is because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\. For more information, see [Service load balancing](service-load-balancing.md)\.
### Service load balancing<a name="fargate-tasks-services-load-balancing"></a>

## Private Registry Authentication<a name="fargate-private-auth-reg"></a>
Your Amazon ECS service on Fargate can optionally be configured to use Elastic Load Balancing to distribute traffic evenly across the tasks in your service\.

Amazon ECS services on Fargate support the Application Load Balancer and Network Load Balancer load balancer types\. Application Load Balancers are used to route HTTP/HTTPS \(or layer 7\) traffic\. Network Load Balancers are used to route TCP or UDP \(or layer 4\) traffic\. For more information, see [Load balancer types](load-balancer-types.md)\.

When you create a target group for these services, you must choose `ip` as the target type, not `instance`\. This is because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\. For more information, see [Service load balancing](service-load-balancing.md)\.

Using a Network Load Balancer to route UDP traffic to your Amazon ECS on Fargate tasks is only supported when using platform version 1\.4 and for tasks launched in the following Regions:
+ US East \(N\. Virginia\) \- `us-east-1`
+ US West \(Oregon\) \- `us-west-2`
+ EU \(Ireland\) \- `eu-west-1`
+ Asia Pacific \(Tokyo\) \- `ap-northeast-1`

## Private registry authentication<a name="fargate-private-auth-reg"></a>

Amazon ECS tasks for Fargate can authenticate with private image registries, including Docker Hub, using basic authentication\. When you enable private registry authentication, you can use private Docker images in your task definitions\.

Expand Down Expand Up @@ -254,14 +266,22 @@ Amazon ECS capacity providers enable you to use both Fargate and Fargate Spot ca

With Fargate Spot you can run interruption tolerant Amazon ECS tasks at a discounted rate compared to the Fargate price\. Fargate Spot runs tasks on spare compute capacity\. When AWS needs the capacity back, your tasks will be interrupted with a two\-minute warning\. For more information, see [AWS Fargate capacity providers](fargate-capacity-providers.md)\.

## Fargate Task Retirement<a name="fargate-task-retirement"></a>
## Usage metrics<a name="fargate-usage-metrics"></a>

You can use CloudWatch usage metrics to provide visibility into your accounts usage of resources\. Use these metrics to visualize your current service usage on CloudWatch graphs and dashboards\.

AWS Fargate usage metrics correspond to AWS service quotas\. You can configure alarms that alert you when your usage approaches a service quota\. For more information about Fargate service quotas, see [AWS Fargate service quotas](service-quotas.md#service-quotas-fargate)\.

For more information about AWS Fargate usage metrics, see [Fargate usage metrics](https://docs.aws.amazon.com/AmazonECS/latest/userguide/monitoring-fargate-usage.html) in the *Amazon Elastic Container Service User Guide for AWS Fargate*\.

## Task retirement<a name="fargate-task-retirement"></a>

A Fargate task is scheduled to be retired when AWS detects the irreparable failure of the underlying hardware hosting the task or if a security issue needs to be patched\. Most security patches are handled transparently without requiring any action on your part or having to restart your tasks\. But for certain issues, we may require that the task be restarted\.

When a task reaches its scheduled retirement date, it is stopped or terminated by AWS\. If the task is part of a service, then the task is automatically stopped and the service scheduler starts a new one to replace it\. If you are using standalone tasks, then you receive notification of the task retirement\. For more information, see [Task retirement](task-retirement.md)\.

## Fargate Savings Plans<a name="fargate-savings-plans"></a>
## Savings Plans<a name="fargate-savings-plans"></a>

Savings Plans are a pricing model that offer significant savings on AWS usage\. You commit to a consistent amount of usage, in USD per hour, for a term of 1 or 3 years, and receive a lower price for that usage\. For more information, see the [Savings Plans User Guide](https://docs.aws.amazon.com/savingsplans/latest/userguide/)\.

To create a Savings Plan for your Fargate usage, use the **Compute Savings Plans** type\. For more information, see [Savings Plans and Amazon ECS](savings-plans.md)\.
To create a Savings Plan for your Fargate usage, use the **Compute Savings Plans** type\. To get started, see [Getting started with Savings Plans](https://docs.aws.amazon.com/savingsplans/latest/userguide/get-started.html) in the *Savings Plans User Guide*\.
2 changes: 1 addition & 1 deletion doc_source/CWE_IAM_role.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ The `AmazonEC2ContainerServiceEventsRole` policy is shown below\.
}
```

If your scheduled tasks require the use of the task execution role, a task role, or a task role override, then you must add `iam:PassRole` permissions for each task execution role, task role, or task role override to the CloudWatch Events IAM role\. For more information about the task execution role, see [Amazon ECS Task Execution IAM Role](task_execution_IAM_role.md)\.
If your scheduled tasks require the use of the task execution role, a task role, or a task role override, then you must add `iam:PassRole` permissions for each task execution role, task role, or task role override to the CloudWatch Events IAM role\. For more information about the task execution role, see [Amazon ECS task execution IAM role](task_execution_IAM_role.md)\.

**Note**
Specify the full ARN of your task execution role or task role override\.
Expand Down
2 changes: 1 addition & 1 deletion doc_source/ECS_AWSCLI_Fargate.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ Describe the service using the service name retrieved earlier to get more inform
aws ecs describe-services --cluster fargate-cluster --services fargate-service
```

If successful, this will return a description of the service failures and services\. For example, in services section, you will find information on deployments, such as the status of the tasks as running or pending\. You may also find information on the task definition, the network configuration and time\-stamped events\. In the failures section, you will find information on failures, if any, associated with the call\. For troubleshooting, see [Service Event Messages](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages.html)\. For more information about the service description, see [Describe Services](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices)\.
If successful, this will return a description of the service failures and services\. For example, in services section, you will find information on deployments, such as the status of the tasks as running or pending\. You may also find information on the task definition, the network configuration and time\-stamped events\. In the failures section, you will find information on failures, if any, associated with the call\. For troubleshooting, see [Service Event Messages](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages.html)\. For more information about the service description, see [Describe Services](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices)\. If your instance was launched in a public subnet, you can view the service task from the internet by using the AWS CLI command `list-tasks` to retrieve the task ID needed for the command `describe-tasks` to retrieve the public IP address of the website\.

```
{
Expand Down
2 changes: 1 addition & 1 deletion doc_source/ECS_agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ For tasks using the Fargate launch type and platform version 1\.3\.0 and prior,
+ [Private Registry Authentication for Container Instances](private-auth-container-instances.md)
+ [Automated Task and Image Cleanup](automated_image_cleanup.md)
+ [Amazon ECS Container Metadata File](container-metadata.md)
+ [Amazon ECS Task Metadata Endpoint](task-metadata-endpoint.md)
+ [Amazon ECS Task metadata endpoint](task-metadata-endpoint.md)
+ [Amazon ECS Container Agent Introspection](ecs-agent-introspection.md)
+ [HTTP Proxy Configuration](http_proxy_config.md)
Loading

0 comments on commit 3ba9bc2

Please sign in to comment.