显示与AWS ECS集群相关的VPC和子网

3

我刚刚通过AWS控制台创建了一个ECS集群。在此过程中,我指定了要使用的VPC以及四个子网。

现在我找不到任何迹象——无论是在控制台上还是通过CLI——表明这确实发生了。我看到集群存在,但无法获取有关其网络配置的任何详细信息。

我尝试使用aws客户端,并使用所有可接受的--include参数(SETTINGSATTACHMENTSCONFIGURATION等),但是aws ecs describe-clusters --cluster foocluster --include SETTINGS(例如)只显示了基本信息。

2个回答

2

集群不特定于任何VPC,因此ECS集群和VPC之间没有关联。VPC是特定于ECS任务和服务的。

AWS控制台只是帮助您创建一个独立于集群的VPC实体。这样,您可以将任务和服务启动到该VPC中。但您也可以将它们启动到任何其他VPC中。


3
从集群的创建向导中,您需要选择子网和VPC。因此,如果我在向导中选择了某些内容,我该如何查看它? - Yaron Levi

2

我不明白为什么在通过控制台创建ECS集群时需要指定VPC和子网...但事情就是这样。

ECS控制台遵循我发现的一个越来越常见的模式,即触发CloudFormation作业,而不是直接提供资源。最终结果是相同的(您的资源被部署),但拥有所有已提供资源的目录可能很有用。在这种情况下,您指定的参数(VPC、子网等)都存储在相应的CloudFormation堆栈中,并且可以从那里检索到。

该过程非常简单:

  • 确定您的CloudFormation堆栈的命名模式
  • 找到与此模式匹配的特定CF堆栈
  • “描述”堆栈,检索其Parameter

您可以通过CLI以一行命令完成所有这些操作。

CLUSTER_NAME=my-cluster
aws cloudformation describe-stacks --query \ 
    "Stacks[?contains(StackName, 'Infra-ECS-Cluster-$CLUSTER_NAME')] | [0].Parameters" 

请注意,这假设ECS的“创建集群”页面根据此模式命名堆栈(即Infra-ECS-Cluster-{cluster_name}-{random_string})。
我发现“查询”参数易于阅读但难以编写;您可以找到关于编写这些JMESPath查询的教程和指南。在本例中,查询是通过筛选包含指定值的StackName,将结果传递给第二个操作符,获取第一个结果,并选择其Parameters属性。

1如果堆栈创建/删除/重新创建等,可能会有多个匹配项。如有必要,您可以改进查询,仅找到CREATE COMPLETEUPDATE COMPLETE堆栈。


1
我之前对这个模式一无所知,也不知道控制台会生成CloudFormation堆栈。谢谢你的见解。 - chb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接