old*_*ule 5 amazon-web-services autoscaling
从简短的搜索来看 - 似乎没有一种方法可以为自动缩放组的成员设置动态主机名。该功能存在于 OpenStack Heat 中,使用index- 但我找不到任何关于使用 AWS 自动缩放组这样做的信息。
例如,使用 OpenStack Heat - 节点会根据自动缩放组中的节点数量自动获得一个主机名:
instance_group:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: instance_number }
resource_def:
type: OS::Nova::Server
properties:
name: instance%index%
Run Code Online (Sandbox Code Playgroud)
如果我在自动缩放组中有 3 个实例,会给我以下内容
instance0
instance1
instance2
Run Code Online (Sandbox Code Playgroud)
是否有类似的方法可以与 AWS 自动扩展组启动配置和/或 cloud-init 一起使用?
如果您坚持一些并非不合理的约定,我找到了一个效果很好的解决方案。
我启动的每种 EC2 实例,无论自动扩展组中有 N 个此类服务器还是独立实例,我都会为其创建一个实例配置文件。无论如何,根据我的经验,这是一个好主意,即使您不需要实例来访问任何 aws 服务,拥有具有空权限的角色/配置文件也没有什么坏处,它使得授予其访问权限变得更加容易s3 存储桶或将来需要的其他任何东西。
然后,在 user_data 脚本(或者您的配置管理工具,如果您使用的是 puppet 或 ansible 等)中启动服务器时,我从元数据服务查询实例配置文件名称,并附加每个服务器特有的内容(例如私有 ip)并进行设置作为主机名。
您最终会得到这样的主机名webserver-10-0-12-58:人类可读且对每个服务器来说都是唯一的。
(与递增整数相比,这种方法的缺点是它们不可预测,并且不能用于为单个服务器设置独特的行为。例如,如果您有 webserver-{0-8} 并且需要运行某些进程在一台服务器上,您可以使用 if hostname == webserver-0 then run_thing 这样的逻辑。)
| 归档时间: |
|
| 查看次数: |
4125 次 |
| 最近记录: |