[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

我们来用CloudFormation创建一个VPC环境(如何编写模板文件)

大家好,
我是系统解决方案部SRE团队的冈崎。

我参与AWS上的建设已经有一段时间了,想介绍一下“CloudFormation”的简单使用方法,那段时间我有很多机会接触到它。
这次,我将解释如何填写运行CloudFormation所需的模板文件。

什么是云形成? ?

这是一项允许您使用 yml 和 json 格式文件在 AWS 提供的 AWS 云环境中管理和构建资源的服务。
您可以从单个控制台(而不是每个控制台)以称为堆栈的单位管理启动、停止和删除 AWS 资源。
使用 CloudFormation 构建的 EC2 实例等需要付费,但 CloudFormation 本身没有额外费用。

围绕VPC构建

现在,让我们根据下面的 yml 文件使用 CloudFormation 创建一个 VPC。

vpc.yml

--- AWSTemplateFormatVersion: '2010-09-09' # 参数设置Parameters: # 输入每个标识符 ProjectCode: Type: String Default: test Description: Project Code # 输入VPC CIDR VPCCidr: Type: String Default: 0.0/16。描述:VPCCidr # 输入子网的 CIDR PublicSubnetCidr: 类型:字符串 默认值:10.31.0.0/24 描述:PublicSubnetCidr 资源:# 周围 VPC #VPC 设置 VPC:类型:AWS::EC2::VPC 属性:CidrBlock : !Ref VPCCidr 标签: - 键:名称 值:!Join [ "-", [ !Ref ProjectCode, vpc ] ] # Internet 网关设置 InternetGateway:类型:AWS::EC2::InternetGateway 属性:标签: - 键:名称 值:! Join [ "-", [ !Ref ProjectCode, igw ] ] AttachGateway: 类型:AWS::EC2::VPCGatewayAttachment 属性:VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway PublicRouteTableIGW: 类型:AWS::EC2: :RouteTable DependsOn: AttachGateway 属性:VpcId: !Ref VPC 标签: - 键:名称 值:!Join [ "-", [ !Ref ProjectCode, public-route-table-igw ] ] PublicRouteIGW:类型:AWS::EC2: :Route DependsOn: AttachGateway Properties: RouteTableId: !Ref PublicRouteTableIGW DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway # 子网设置 PublicSubnet: Type: AWS::EC2::Subnet DependsOn: AttachGateway Properties: VpcId: !Ref VPC AvailabilityZone : ap-northeast- 1a CidrBlock: !Ref PublicSubnetCidr 标签: - 键: 名称 值: !Join [ "-", [ !Ref ProjectCode, public-subnet ] ]

每个项目的解释

现在,我将解释上面的yml文件。

--- AWSTemplateFormatVersion: '2010-09-09'

我正在填写CloudFormation模板的格式版本。
当前最新的模板格式版本为2010-09-09,
这是截至2019年3月21日的唯一有效值。

# 参数设置Parameters: # 输入各个标识符 ProjectCode: Type: String Default: test Description: Project Code # 输入 VPC CIDR VPCCidr: Type: String Default: 10.31.0.0/16 Description: VPCCider # 输入子网 CIDR PublicSubnetCidr: Type:字符串 默认值:10.31.0.0/24 描述:PublicSubnetCider

如果您希望每次创建每个资源时都创建一个固定值,那没问题,但
有时您可能希望更改该值以使其更易于使用。
在CloudFormation中,如果您想自由更改这些值,可以在“参数”部分中进行设置。
在示例文件中,每个资源的公共标识符设置为ProjectCode,
初始值为test,但您可以在堆栈中自由输入。
VPC Cidr和Subnet Cidr也设置为初始值,但同样可以为每个堆栈设置值。

资源: # 周围 VPC #VPC 设置 VPC: 类型:AWS::EC2::VPC 属性:CidrBlock: !Ref VPCCidr 标签: - 键:名称 值:!Join [ "-", [ !Ref ProjectCode, vpc ] ]

管理AWS资源的部分是上面的“资源”部分。
VPC部分称为逻辑ID,可以设置为任意值,并且可以从其他资源调用。
但是,如果每个都不是唯一的,则在运行时会发生错误。
Type:~ 是定义实际 AWS 资源的部分。
Properties下的区域是VPC本身的设置,前面提到的VPCCidr参数是通过一个叫Ref的函数调用的,调用预定义的CIDR并插入到CidrBlock中。
这次在VPC中只配置了CidrBlock,但详细设置可以在AWS官网上找到,请再次查看。
关于AWS官方“AWS::EC2::VPC”

此外,我们在标签部分添加了名称标签,使其更易于理解。
在这里,我们也使用一个名为 Join 的函数来连接 Value 部分,以便它使用标识符 -vpc 进行标记。

  AttachGateway:类型:AWS::EC2::VPCGatewayAttachment 属性:VpcId:!Ref VPC InternetGatewayId:!Ref InternetGateway PublicRouteTableIGW:类型:AWS::EC2::RouteTable DependsOn:AttachGateway 属性:VpcId:!Ref VPC 标签: - 键:名称值: !Join [ "-", [ !Ref ProjectCode, public-route-table-igw ] ] PublicRouteIGW: 类型: AWS::EC2::Route DependsOn: AttachGateway 属性: RouteTableId: !Ref PublicRouteTableIGW DestinationCidrBlock: 0.0.0.0/ 0 GatewayId: !Ref InternetGateway # 子网设置 PublicSubnet: 类型: AWS::EC2::Subnet DependsOn: AttachGateway 属性: VpcId: !Ref VPC AvailabilityZone: ap-northeast-1a CidrBlock: !Ref PublicSubnetCidr 标签: - 键: 名称 值 : !Join [ "-", [ !Ref ProjectCode, public-subnet ] ]

同理,对于其他资源,用Type:~声明每个资源,在Properties中进行详细设置,并链接Name标签。

概括

这次,我写了如何编写使用CloudFormation构建VPC所需的模板文件,但
由于实际执行部分会很长,所以我想下次再写一次。
您可能每天都需要手动启动AWS资源,但
我认为使用这些工具可以减少所需的工作量,因此如果您经常使用AWS,
那么它是免费使用的,所以我希望您能够利用它。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
5,464
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

冈崎润一郎

拥有丰富的手机游戏搬迁及运营经验。

他每天负责多云运营、服务器建设和搬迁。 随着案件数量的增加,我正在考虑如何提高工作效率。 我们经常考虑根据每个云的优点来重新定位服务器的方法。

在云间迁移、从物理到云的迁移过程中,我们在日本MSP协会举办的比赛中取得了两连胜。