내 Windows 환경의 AWS Elastic Beanstalk에서 T2 무제한 인스턴스는 어떻게 사용할 수 있습니까?

현재 Windows 환경의 AWS Elastic Beanstalk에서 초과 크레딧을 사용하지 않으면 T2 무제한 인스턴스 사용은 지원되지 않습니다. Windows 환경에서 T2 인스턴스를 사용하려면 Elastic Beanstalk에서 .ebextensions 구성 파일을 수정해야 합니다.

참고: T2 인스턴스에 대해서만 구성 파일 수정이 유효하며, 기본적으로 해당 인스턴스는 Standard로 시작됩니다. 구성 파일을 수정하면 시작 시 무제한 T2 인스턴스를 활성화할 수 있습니다. T3 인스턴스는 기본적으로 무제한으로 시작됩니다. 자세한 내용은 성능 순간 확장 가능 인스턴스의 무제한 모드를 참조하십시오.

Elastic Beanstalk 환경의 인스턴스 프로파일에 대한 인라인 정책 업데이트

1.     AWS Identity and Access Management(IAM) 콘솔을 엽니다.

2.     [Roles]를 선택합니다.

3.     검색 상자에 aws-elasticbeanstalk-ec2-role을 입력하고 Elastic Beanstalk 환경의 기본 인스턴스 프로파일을 찾습니다.

4.     aws-elasticbeanstalk-ec2-role을 선택하고 [Add inline policy]를 선택합니다.

5.     [JSON] 보기를 선택하고 코드 편집기에서 다음 코드를 입력합니다.

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

6.     [Review policy]를 선택합니다.

7.     [Name]에 생성한 새 정책의 이름을 입력합니다.

8.     [Create policy]를 선택합니다.

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.     탐색 창에서 [Configuration]을 선택합니다.

3.     [Instance type] 섹션에서 아직 기본적으로 선택되지 않은 경우 [Instance type]으로 [t2.micro]를 선택합니다.

중요: 이 해결 방법은 T2 인스턴스 유형을 사용하는 IIS 기반 Elastic Beanstalk 환경에만 적용됩니다.

4.     [Root volume (boot device)] 섹션에서 [Size]로 30 이상을 입력합니다.

중요: 루트 볼륨 크기는 Windows 인스턴스에 대해 30GB 이상이어야 합니다.

5.     [Apply]를 선택합니다.

업데이트된 애플리케이션 배포

Elastic Beanstalk 콘솔, [Elastic Beanstalk Command Line Interface] 또는 [AWS Command Line Interface]에서 Elastic Beanstalk 환경에 애플리케이션을 배포합니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2019년 2월 27일

업데이트 날짜: 2019년 3월 6일