aws / aws/aws-cdk

(aws-ecs): ECS clusters need to support enabling ENI trunking

Open
#14,427 4 comments 26 reactions 0 assignees View on GitHub
@aws-cdk/aws-ecs effort/large feature-request p1
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

[ENI trunking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html) is an important feature that allows ECS to put a lot more containers per EC2 host when using AWS VPC networking mode. Without ENI trunking it is hard to use AWSVPC networking mode in an efficient manner. There is currently no way to enable ENI trunking using the ECS constructs.

We need a way to enable ENI trunking in the L2 construct, and have it set the appropriate account setting to enable ENI trunking in ECS. According to docs this is done using the `put-account-setting-default` API so there is a possibility that this will require a custom resource, as this API does not seem to be directly exposed in CloudFormation.

```bash
aws ecs put-account-setting-default \
--name awsvpcTrunking \
--value enabled \
--region us-east-1
```

There is also some trickiness here because when using a custom resource to set ENI trunking it would need to be set prior to cluster creation and adding capacity to the cluster for it to take effect.

---

This is a :rocket: Feature Request

Contributor guide

Open the contributing guide

Research direction

Start with the ECS L2 construct and the documented AWS ECS put-account-setting-default API. Determine how the account setting can be applied before cluster and capacity creation, including whether a custom resource is required. Done means the construct exposes ENI trunking and deployments enable awsvpcTrunking at the required time.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, typescript
Domain
cloud, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.