AWS VPC路由表-更改默认路由表

时间:2019-02-27 21:11:02

标签: amazon-web-services routetable

是否可以更改与VPC相关的路由表?我正在使用CloudFormation,并已经创建了自己的RT和关联的子网。但是,由于VPC使用默认路由表,并且声称我没有明确关联子网,因此它们与主路由表关联在一起。我的子网与我想要的路由表相关联,显然我做错了事,但是默认路由表似乎优先。

这表明子网已关联:

Shows that the subnets are associated

这表示子网未与路由表关联:

Says the subnets are not associated with a route table

如果我将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

1 个答案:

答案 0 :(得分:1)

最好通过CloudFormation 创建整个VPC ,包括:

  • VPC
  • Internet网关
  • 子网
  • 路由表
  • 路由表关联

这样,可以保证以后再次部署时,它们以相同的方式工作。另外,很容易引用堆栈中VPC的所有组件(而不是必须引用在堆栈外部中创建的资源)。

或者,您的模板可以创建自己的路由表(应使用该路由表代替现有的路由表),然后创建子网关联,以配置新的子网使用新的路由表。这样,将不会使用默认路由表,因为子网将仅在未专门分配给路由表的情况下使用默认路由表。