在这方面,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