我可以使用自己的 cidr 和设置创建自定义默认 vpc 吗?

我可以使用自己的 cidr 和设置创建自定义默认 vpc 吗?

在这方面,GCP 比 aws 好太多了。在 GCP 中,我可以拥有一个“默认”vpc/网络,并为其设置所有自定义设置。我希望 aws 也能有同样的东西。

我在许多地区都有东西。我不需要复杂的网络,只需要在许多地区使用自己的 cidr 的 VPC。如果这些是“默认”就好了,这样我就不必担心在所有部署自动化中硬编码 VPC ID 和子网 ID

这可能吗?

答案1

AWS 在每个区域都有一个默认 VPC,但您无法对其进行自定义。默认 VPC 有点宽松,便于初学者入门,因此我使用自动化来删除它。

对您来说,最好的选择可能是编写一个简单的 CloudFormation 模板并设置参数,以便您可以针对每个区域进行自定义。我还没有测试过,但至少应该非常接近。

虚拟私有云(文档和示例在这里)。更改此模板以根据需要进行自定义。或者找到一个完整编写的 VPC 模板,AWS 网站上有很多,或者有一些这里。您可能只需要为 CIDR 块和 VPC 名称对它们进行参数化。

AWSTemplateFormatVersion: '2010-09-09'

Parameters:
  VPCCIDR:
    Description: CIDR for the VPC
    Type: String
  VPCName:
    Description: Namefor the VPC
    Type: String

Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: !Ref VPCCIDR
      Tags:
       - Key: Name
         Value: !Ref VPCName

您必须将子网添加到模板中,我还没有为您完成这一步,但是看这里这应该很容易。如果您想要一个互联网网关,您也需要添加它。

参数文件(必须是 json,每个区域一个,选择不同的 CIDR 块)

[
  {
    "ParameterKey": "VPCCIDR",
    "ParameterValue": "10.1.0.0/16"
  }, 
  {
    "ParameterKey": "VPCName",
    "ParameterValue": "Ohio VPC"
  }
]

然后在几个地区运行它

aws cloudformation create-stack --profile --stack-name vpc-ohio --region us-east-2 --template-body file://vpc.yaml --parameters file://vpc-ohio.json
aws cloudformation create-stack --profile --stack-name --region ap-southeast-2 vpc-sydney --template-body file://vpc.yaml --parameters file://vpc-sydney.json

如果您想更改 VPC

相关内容