Amazon web services 自动缩放启动后从AMI进行Windows EC2初始配置
我正在研究自动缩放Amazon提供的现成WindowsAMI(而不是定制的) 在一个新实例启动之后(在!!它被添加到负载平衡器之前),我希望注入一些初始化任务并在新实例上运行(比如,运行powershell脚本) 其次,loadbalancer需要知道只有在这个启动脚本完成后才开始向新EC2实例发送请求(也不知道如何执行) 在一个新实例启动之后(在!!它被添加到负载平衡器之前),我希望注入一些初始化任务并在新实例上运行(比如,运行powershell脚本) 看一看。其长短不一之处在于,您可以将实例配置为在启动时运行一个小脚本,该脚本可用于引导 通常的做法是在userdata中包含足够的代码,以便从中心位置(例如Git repository或secure S3 bucket)下载一个变量脚本,然后执行该脚本-这样,您就可以在不更新userdata的情况下对实际脚本进行版本设置和更改 其次,loadbalancer需要知道只有在这个启动脚本完成后才开始向新EC2实例发送请求(也不知道如何执行) 负载平衡器倾向于对指定端口的实例执行一种ping请求,以确定指定文件是否正常。我不确定你的WindowsAMI是做什么用的,但它应该以同样的方式工作。您只需要将它指向一个只有在引导完成后才可用的文件,也就是说,您的引导脚本可能会在系统中的某个地方创建一个Amazon web services 自动缩放启动后从AMI进行Windows EC2初始配置,amazon-web-services,amazon-ec2,autoscaling,Amazon Web Services,Amazon Ec2,Autoscaling,我正在研究自动缩放Amazon提供的现成WindowsAMI(而不是定制的) 在一个新实例启动之后(在!!它被添加到负载平衡器之前),我希望注入一些初始化任务并在新实例上运行(比如,运行powershell脚本) 其次,loadbalancer需要知道只有在这个启动脚本完成后才开始向新EC2实例发送请求(也不知道如何执行) 在一个新实例启动之后(在!!它被添加到负载平衡器之前),我希望注入一些初始化任务并在新实例上运行(比如,运行powershell脚本) 看一看。其长短不一之处在于,您可以将实
health.txt
文件,其内容为“OK”,负载平衡器可以ping该文件,直到它存在->然后它就正常了
如果您采用上述想法,请确保health.txt
不作为您用来旋转自动缩放实例的AMI的一部分存在,否则它们将使用该文件创建,并且可能在userdata/bootstrapping脚本完成之前注册为假阳性
例如,对于LAMP堆栈,量化这一点相当容易,因为示例userdata脚本可能会执行以下操作:
/health.html
文件执行ping操作,直到返回一个200头,这只会在上述步骤5完成后发生
我相信你也能为你的WindowsAMI找到一个类似的合适人选
在一个新实例启动之后(在!!它被添加到负载平衡器之前),我希望注入一些初始化任务并在新实例上运行(比如,运行powershell脚本)
看一看。其长短不一之处在于,您可以将实例配置为在启动时运行一个小脚本,该脚本可用于引导
通常的做法是在userdata中包含足够的代码,以便从中心位置(例如Git repository或secure S3 bucket)下载一个变量脚本,然后执行该脚本-这样,您就可以在不更新userdata的情况下对实际脚本进行版本设置和更改
其次,loadbalancer需要知道只有在这个启动脚本完成后才开始向新EC2实例发送请求(也不知道如何执行)
负载平衡器倾向于对指定端口的实例执行一种ping请求,以确定指定文件是否正常。我不确定你的WindowsAMI是做什么用的,但它应该以同样的方式工作。您只需要将它指向一个只有在引导完成后才可用的文件,也就是说,您的引导脚本可能会在系统中的某个地方创建一个health.txt
文件,其内容为“OK”,负载平衡器可以ping该文件,直到它存在->然后它就正常了
如果您采用上述想法,请确保health.txt
不作为您用来旋转自动缩放实例的AMI的一部分存在,否则它们将使用该文件创建,并且可能在userdata/bootstrapping脚本完成之前注册为假阳性
例如,对于LAMP堆栈,量化这一点相当容易,因为示例userdata脚本可能会执行以下操作:
/health.html
文件执行ping操作,直到返回一个200头,这只会在上述步骤5完成后发生
我相信您将能够为您的Windows AMI找到类似的解决方案。您可以通过用户数据部分的powershell运行初始化任务
/yourscript
并且,假设您使用的是ELB,您可以将“ping目标”设置为指向一个文件,该文件是在成功执行userdata脚本后创建的。在此之前,ELB不会向您的EC2实例发送通信量。您可以通过用户数据部分的powershell运行初始化任务
/yourscript
并且,假设您使用的是ELB,您可以将“ping目标”设置为指向一个文件,该文件是在成功执行userdata脚本后创建的。在此之前,ELB不会向您的EC2实例发送流量。自动缩放将为您自动添加到ELB:自动缩放将添加到ELB自动缩放