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

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

【超过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]超越官方频道“美由丸频道”

[AWS] 使用 AWS CLI 快速创建自动缩放!

你好。
我是Mandai,负责Wild 开发团队。

在 AWS 上使用自动扩展时,您需要做很多事情,例如在开发期间和操作开始后创建启动设置和自动扩展组。
每次从 AWS 控制台执行此操作都需要时间,如果执行多次,最终可能会丢失某些内容。

AWS 有一个名为 AWS CLI 的命令行工具,因此一旦创建它,​​您就可以快速、安全、可靠地创建它。

这种内容实在是太多了,我都不知道是多少,不过也就这样了。这是这个。那么,我们赶紧出发吧!

 

自动缩放启动设置和自动缩放组

对于自动缩放,您首先需要创建一个成为模板的启动配置。
此时,您需要注册 AMI,但是一旦创建了启动设置,就无法更改它们。
换句话说,如果您忘记在 AMI 中包含必要的命令、更改用户数据或更改环境设置,则需要重新创建启动配置。

如果启动设置发生更改,则还必须从新的启动设置重新创建自动缩放组,因此我想立即执行此操作。

当从 Amazon Linux(由 Amazon 提供)中的 AMI 启动实例时,会安装以 aws 开头的命令,但它们必须安装在其他 AMI 或本地环境中。

安装和配置 AWS CLI - Amazon Kinesis Streams具有详细信息,因此请使用适合每个操作系统的安装方法进行安装。

 

“aws autoscaling create-launch-configuration”命令用于创建自动缩放启动配置

要创建自动扩展启动配置,请使用“aws autoscaling create-launch-configuration”命令。
如果您不知道如何使用它或有哪些选项可用,您可以在“aws autoscaling create-launch-configuration help”(英文)中查看选项列表。

需要一些选项,所以基本形式如下。

aws autoscaling create-launch-configuration \ --launch-configuration-name [启动配置名称] \ --image-id [要使用的 AMI 的 AMI ID] \ --security-groups [列出要应用的安全组] \ - -instance-type [要启动的 EC2 实例的类型]

上面的命令没有什么特别需要注意的,但是在配置安全组的时候,需要列出多个“sg-xxxxxxx”,并用空格分隔。
使用 bash 创建 shell 脚本时,可以执行以下操作:

sg=( "sg-xxxxxxx1" "sg-xxxxxxx2" "sg-xxxxxxx3" ) aws 自动缩放 create-launch-configuration \ --launch-configuration-name hogehoge \ --image-id ami-xxxxxxxx \ --security-groups ${sg[@]} \ --实例类型 t2.micro

通常会注册多个安全组,因此如果将它们排列在数组中,只需扩展它们即可轻松管理它们。
由于我经常使用多可用区构建环境,因此我认为最好也列出可用区,如下所示。

az=( "ap-northeast-1c" "ap-northeast-1a" )

 

“--user-data”选项用于在启动设置中指定用户数据

当启动具有自动扩展功能的 EC2 实例时,很多情况下会使用用户数据执行初始设置。
创建启动设置时会注册用户数据,因此如果有任何更改,则必须重新创建启动设置,因此请考虑多次重新创建启动设置,尝试查看其是否按预期工作。 ,我认为自动化会更好。

从 AWS CLI 在启动配置中注册用户数据时,除了上述基本格式之外,您还需要使用“--user-data”选项指定一个文件。

aws autoscaling create-launch-configuration \ --launch-configuration-name [启动配置名称] \ --image-id [要使用的 AMI 的 AMI ID] \ --security-groups [列出要应用的安全组] \ - -instance-type [要启动的 EC2 实例的类型] \ --user-data "file:///path/to/user-data.sh"

指定用户数据的本地文件。
如果您在“file://”后添加绝对路径(如“/path/to/user-data.sh”),AWS CLI 将尝试从运行 CLI 的计算机上的相应路径检索文件。

如果您指定不带斜杠(两个斜杠)的路径,例如“file://user-data.sh”,它将尝试从当前目录中检索它。

通过阅读帮助您可以看到,有一个选项可以从 AWS 控制台以 base64 进行注册,但从 cli 中您可以只指定文件路径。

 

“aws autoscaling create-auto-scaling-group”命令用于创建自动缩放组

创建启动配置后,创建自动缩放组。
假设您创建如下启动配置:

aws autoscaling create-launch-configuration \ --launch-configuration-name my-test-lc \ --image-id ami-123123 \ --security-groups sg-xyzxyz \ --instance-type t2.large

创建自动缩放组的命令如下。

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-test-asg \ --launch-configuration-name my-test-lc \ --min-size 2 \ --max-size 4 \ --所需容量 2 \ --target-group-arns "arn:aws:elasticloadbalancing:ap-northeast-1:xxxxxxxxxxxx:targetgroup/hogehoge-group/1234567890abcdef" --availability-zones "ap-northeast-1c " "ap-northeast-1a" \ --vpc-zone-identifier "子网-aaaaaaaa,子网-bbbbbbbb"

通过上面的命令,

  • 自动缩放组的名称是“my-test-asg”
  • 自动缩放组中使用的启动配置名称是“my-test-lc”
  • 最小尺寸为 2 个单位
  • 最大尺寸为 4
  • 所需的实例数为 2
  • 目标组的ARN为“arn:aws:elasticloadbalancing:...(以下省略)”
  • 使用的可用区是“ap-northeast-1c”和“ap-northeast-1a”
  • VPC 子网为“subnet-aaaaaaaa”和“subnet-bbbbbbbb”

这就是它的意思。
由于某些原因,VPC 设置使用逗号分隔值会变得复杂,但事实就是如此,所以你别无选择,只能记住它。

另外,由于我们这次选择了两个可用区,所以最初的两台机器应该容纳在不同的可用区。

 

尝试设置一下

如果您使用 AWS 控制台,选择各种项目并忘记检查它们可能会很烦人,因此它无法正常工作,但是一旦您设置好它,您应该能够执行基本相同的操作,因此您可以重新创建您还可以根据需要验证 AMI。

老实说,我认为如果你不使用它,认为它是浪费时间也没关系。

可以通过与SQS等链接来自动化此过程,但如果你做的事情过于复杂,你可能会看不到目的,所以要小心。

就是这样。

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

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

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

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

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。