gpt4 book ai didi

iis - 使用自动缩放最佳实践同步 aws ec2 中的 IIS 服务器

转载 作者:行者123 更新时间:2023-12-04 19:06:42 30 4
gpt4 key购买 nike

我们在 Amazon EC2 上使用负载平衡、自动扩展的 Web 服务器 (IIS) 运行我们的 Web 应用程序。

在自动缩放之前,我们的部署过程是将文件复制到几个大型 Web 服务器。

现在有了自动缩放,我们有 5 到 12 个网络服务器随意出现和消失,这使得部署过程更加困难。

为了解决这个问题,我编写了一个 powershell 脚本来检索自动缩放组中服务器的 IP,并使用 MSDeploy 将它们与指定的部署服务器(在负载均衡器中,自动缩放组之外)同步。然后它会创建一个新的 AMI 并更新自动缩放配置。

一切似乎都很好,直到重建部署服务器后,同步脚本才更新网站的运行状态。所以我可以将站点置于维护模式。

我想知道:

  • 其他人如何解决这个问题(特别是在自动缩放 ec2 中同步 iis 服务器)(在 IIS 8 没有 WFF 的情况下)
  • 为什么启动/停止同步失败

  • 代码:
    Set-AWSCredentials -AccessKey XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SecretKey XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Set-DefaultAWSRegion "us-west-2"

    $date = get-date
    $dateString = $date.ToString("yyyyMMdd-HHmm")
    $name = $dateString + "Web"
    $imageId = new-ec2image -InstanceId x-xxxxxxxx -Name $name -NoReboot 1

    $launchConfiguration = New-ASLaunchConfiguration -LaunchConfigurationName $name -ImageId $imageId -InstanceType "m3.medium" -SecurityGroups @('Web') -InstanceMonitoring_Enabled $false

    Update-AsAutoScalingGroup -AutoScalingGroupName "XxxxxxxxxxxxXxxxxxxxxx" -LaunchConfigurationName $name

    $a = Get-ASAutoScalingInstance | select -expandproperty InstanceId | Get-EC2Instance | select -expandproperty RunningInstance | select -property PrivateIpAddress

    foreach($ip in $a)
    {
    $command = "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
    $arg = "-dest:webServer,computerName=" + $ip.PrivateIpAddress;
    $args = @('-verb:sync', '-source:webServer', $arg)
    &$command $args
    }

    最佳答案

    不要尝试“同步”网络服务器。考虑进行一次安装 - 并允许用于部署管理同步的工具启动。

    我过去做的是使用CloudFormation创建环境,并结合cfn-init和cfn-hup进行安装。然后,部署过程变成了将新包重新部署到 S3 之类的地方,然后使用 CloudFormation 来提升版本的情况。

    这会触发 cfn-hup 更新,从而每个服务器将从 S3 中拉下包并重新安装。

    此外 - 如果您的扩展组扩展,它将自动使用 cfn-init 在向负载均衡器注册实例之前完全下拉并安装包。

    这里有几个类似的 StackOverflow 问题

  • AWS - Automatic deployment (.NET) to CloudFormation stack
  • Installing Windows applications/extensions with Amazon CloudFormation
  • Amazon EC2: load balancing / way to sync files / EC2 + CF
  • How do I execute UserData content in a Windows EC2 instance

  • 我也在很多个月前写了两篇关于它的文章
  • http://blog.kloud.com.au/2013/08/05/bootstrapping-on-aws/
  • http://blog.kloud.com.au/2013/08/19/bootstrap-update/

  • 这应该足以让您继续前进。

    关于iis - 使用自动缩放最佳实践同步 aws ec2 中的 IIS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22809220/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com