Как создать Сервис ECS с использованием AWS CDK в VPC с более чем 16 подсетями - PullRequest
0 голосов
/ 19 октября 2019

При создании FargateService с использованием AWS CDK я получаю следующую ошибку:

подсетей может содержать не более 16 элементов.

У меня есть этот кодЧтобы создать службу:

 var ecsService = new FargateService(this, $"{serviceNameHyphen}-service", new FargateServiceProps
 {
    TaskDefinition = taskDefinition,
    AssignPublicIp = false,
    Cluster = infrastructureStack.EcsCluster,
    CloudMapOptions = new CloudMapOptions
    {
          Name = serviceName,
          DnsRecordType = DnsRecordType.A,
          DnsTtl = Duration.Seconds(60),
          FailureThreshold = 2d
    },
    DesiredCount = 1,
    HealthCheckGracePeriod = Duration.Seconds(60),
    MaxHealthyPercent = 200,
    MinHealthyPercent = 100,
    PlatformVersion = FargatePlatformVersion.LATEST,
    ServiceName = $"{serviceNameHyphen}-service",
    SecurityGroup = albSecurityGroup,
    VpcSubnets = new SubnetSelection
    {
         OnePerAz = true,
         SubnetType = SubnetType.PUBLIC,
    }
});

Можно ли отфильтровать подсети?

Кроме того, класс SubnetSelection имеет свойство SubnetGroup - я знаю, что некоторые сервисы AWS позволяют создавать группу подсетей, но я не вижу, как создать произвольную группу подсетей для использования дляСлужбы Fargate.

Обновление У меня теперь только 15 подсетей в VPC, но я все еще получаю то же сообщение об ошибке.

1 Ответ

1 голос
/ 21 октября 2019

Если вы импортируете существующий VPC, вы можете решить эту проблему, импортировав подмножество своих подсетей, используя ec2.Vpc.fromVpcAttributes() вместо ec2.Vpc.fromLookup():

const vpc = ec2.Vpc.fromVpcAttributes(this, 'Vpc', {
  vpcId: 'vpc-xxxxxxxx',
  availabilityZones: ['eu-west-1a', 'eu-west-1b', 'eu-west-1c'],
  publicSubnetIds: ['subnet-xxxxxxxx', 'subnet-xxxxxxxx', 'subnet-xxxxxxxx'],
  privateSubnetIds: ['subnet-xxxxxxxx', 'subnet-xxxxxxxx', 'subnet-xxxxxxxx']
});

Таким образом, с точки зрения вашего приложения CDKс точки зрения, ваш VPC будет иметь только 3 общедоступные подсети.

...