是否可以更改与VPC相关的路由表?我正在使用CloudFormation,并已经创建了自己的RT和关联的子网。但是,由于VPC使用默认路由表,并且声称我没有明确关联子网,因此它们与主路由表关联在一起。我的子网与我想要的路由表相关联,显然我做错了事,但是默认路由表似乎优先。
这表明子网已关联:
这表示子网未与路由表关联:
如果我将IGW路由添加到默认/主RT,则一切正常。不是我想要的。
更新
此处是CloudFormation,用于创建VPC和组件。问题是,如果在子网中旋转了一个框,则尽管我的子网已与我的自定义路由表显式关联,但仍在使用主路由表。
Resources:
TransitVPC:
Type: 'AWS::EC2::VPC'
Properties:
CidrBlock: !Ref TransitVpcCidr
EnableDnsSupport: 'true'
EnableDnsHostnames: 'true'
Tags:
- Key: Name
Value: Transit VPC
TransitInternetGateway:
Type: 'AWS::EC2::InternetGateway'
Properties:
Tags:
- Key: Name
Value: Transit Internet Gateway
DependsOn:
- TransitVPC
TransitRouteTable:
Type: 'AWS::EC2::RouteTable'
Properties:
VpcId: !Ref TransitVPC
Tags:
- Key: Name
Value: Transit VPC RT
DependsOn:
- TransitVPC
TransitIGWAttachment:
Type: 'AWS::EC2::VPCGatewayAttachment'
Properties:
InternetGatewayId: !Ref TransitInternetGateway
VpcId: !Ref TransitVPC
DependsOn:
- TransitVPC
- TransitInternetGateway
TransitSubnetA:
Type: 'AWS::EC2::Subnet'
Properties:
VpcId: !Ref TransitVPC
CidrBlock: !Ref TransitSubnetACidr
AvailabilityZone: !Ref TransitSubnetARegion
Tags:
- Key: Name
Value: Transit VPC Subnet A
DependsOn:
- TransitVPC
TransitSubnetARTAssoc:
Type: 'AWS::EC2::SubnetRouteTableAssociation'
Properties:
RouteTableId: !Ref TransitRouteTable
SubnetId: !Ref TransitSubnetA
TransitSubnetB:
Type: 'AWS::EC2::Subnet'
Properties:
VpcId: !Ref TransitVPC
CidrBlock: !Ref TransitSubnetBCidr
AvailabilityZone: !Ref TransitSubnetBRegion
Tags:
- Key: Name
Value: Transit VPC Subnet B
TransitSubnetBRTAssoc:
Type: 'AWS::EC2::SubnetRouteTableAssociation'
Properties:
SubnetId: !Ref TransitSubnetB
RouteTableId: !Ref TransitRouteTable
TransitIGWRoute:
Type: 'AWS::EC2::Route'
Properties:
RouteTableId: !Ref TransitRouteTable
DestinationCidrBlock: !Ref FinalGatewayCidr
GatewayId: !Ref TransitInternetGateway
DependsOn:
- TransitIGWAttachment
答案 0 :(得分:1)
最好通过CloudFormation 创建整个VPC ,包括:
这样,可以保证以后再次部署时,它们以相同的方式工作。另外,很容易引用堆栈中VPC的所有组件(而不是必须引用在堆栈外部中创建的资源)。
或者,您的模板可以创建自己的路由表(应使用该路由表代替现有的路由表),然后创建子网关联,以配置新的子网使用新的路由表。这样,将不会使用默认路由表,因为子网将仅在未专门分配给路由表的情况下使用默认路由表。