如何在 Windows 环境中将 T2 Unlimited 实例与 AWS Elastic Beanstalk 结合使用?

AWS 目前不支持在 Windows 环境中将 T2 Unlimited 实例与 Elastic Beanstalk 结合使用,而不使用剩余积分。要在 Windows 环境中使用 T2 实例,您必须在 Elastic Beanstalk 中修改您的 .ebextensions 配置文件

注意:修改您的配置文件仅适用于 T2 实例,这些实例默认作为标准实例启用。通过修改配置文件,在启动时启用不受限的 T2 实例。T3 实例默认作为不受限实例启动。有关更多信息,请参阅可突增性能实例的不受限模式

更新您的 Elastic Beanstalk 环境的实例配置文件的内联策略

1.     打开 AWS Identity and Access Management (IAM) 控制台

2.     选择角色

3.     在搜索框中,输入 aws-elasticbeanstalk-ec2-role,以查找您的 Elastic Beanstalk 环境的默认实例配置文件。

4.     选择 aws-elasticbeanstalk-ec2-role,然后选择添加内联策略

5.     选择 JSON 视图,然后在代码编辑器中输入以下代码:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "T2UnlimitedPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:ModifyInstanceCreditSpecification",
        "ec2:DescribeInstanceCreditSpecifications"
      ],
      "Resource": "*"
    }
  ]
}

6.     选择查看策略

7.     对于名称,输入您创建的新策略的名称。

8.     选择创建策略

更新您的 Elastic Beanstalk 配置文件

1.     在应用程序源包根目录中,创建一个名为 .ebextensions 的目录。

2.     在 .ebextensions 目录中创建一个名为 changetot2unlimited.config 的新文件,然后包括以下内容:

files:
  "c:\\windows\\temp\\t2-test.ps1":
     content : |
      powershell -command "Start-Sleep -s 60"
      $instance = (Invoke-WebRequest http://169.254.169.254/latest/meta-data/instance-type -UseBasicParsing).Content
      if(echo "$instance" | Select-String 't2.*'){ exit 0}

  "c:\\windows\\temp\\changecredit.ps1":
     content: |
       $instanceId = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")
       #Set Default Region
       Set-DefaultAWSRegion -Region `{"Ref":"AWS::Region"}`

       #Check current credit model
       Get-EC2CreditSpecification -InstanceId $instanceId

       #Change to unlimited
       $unlimitedCredit = New-Object -TypeName Amazon.EC2.Model.InstanceCreditSpecificationRequest
       $unlimitedCredit.InstanceId = $instanceId
       $unlimitedCredit.CpuCredits = "unlimited"
       Edit-EC2InstanceCreditSpecification -InstanceCreditSpecification $unlimitedCredit

container_commands:
  02unlimited:
    command: powershell.exe -ExecutionPolicy Bypass -File C:\windows\temp\changecredit.ps1
    test: powershell.exe c:\windows\temp\t2-test.ps1
    ignoreErrors: true
  01unlimited:
    command: cd c:\Windows\Temp\ && del /f *.bak

3.     要使用更新的配置文件创建应用程序源,请运行以下 zip 命令:

zip ../myapp.zip -r * .[^.]*

在部署应用程序前验证您的配置设置

1.     打开 Elastic Beanstalk 控制台,然后选择您的应用程序。

2.     在导航窗格中,选择配置

3.     在实例类型部分中,对于实例类型,如果尚未默认选中,选择 t2.micro

重要提示:此解决方案仅适用于采用 T2 实例类型的基于 IIS 的 Elastic Beanstalk 环境 。

4.     在 根卷(引导设备) 部分中,对于大小,输入 30 或更大的数。

重要提示:对于 Windows 实例,您的根卷大小必须为 30 GB 或更大。

5.     选择应用

部署已更新的应用程序

在 Elastic Beanstalk 控制台、Elastic Beanstalk 命令行界面AWS 命令行界面中,将您的应用程序部署到您的 Elastic Beanstalk 环境。


此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS Support 中心

发布时间:2019 年 2 月 27 日

更新时间:2019 年 3 月 6 日