CodeDeploy에서 "Net::OpenTimeout" 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

AWS CodeDeploy에서 Windows Amazon Machine Image(AMI) 인스턴스를 시작하려고 합니다. 하지만 인스턴스를 시작하려고 하면 AWS CodeDeploy 에이전트 로그 파일에 다음과 유사한 오류가 표시됩니다. "CodeDeploy Instance Agent Service: error during start or run: Net::OpenTimeout - execution expired - C:/Windows/TEMP/ocrFxxx.tmp/lib/ruby/2.3.0/net/http.rb:880:in 'initialize'." 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS에서 제공하는 Windows Server 2016 AMI 인스턴스의 경우, 첫 번째 부팅 시 메타데이터 또는 AWS Key Management Service(AWS KMS) 경로가 정적으로 설정됩니다. 이러한 인스턴스에서 사용자 지정 AMI를 생성하는 경우 이러한 경로는 OS 구성의 일부로 캡처됩니다. AMI에서 시작하는 새 인스턴스는 서브넷 배치와 상관없이 동일한 경로를 유지합니다.

다음 중 하나가 true가 아닌 경우 사용자 지정 AMI에서 시작할 때 이러한 정적 경로가 업데이트되지 않습니다.

  • 사용자 지정 AMI에 Sysprep을 사용하고 있습니다.
  • Amazon Elastic Compute Cloud(Amazon EC2) 시작 초기화 작업은 AMI를 생성하기 전에 예약되어 있습니다.

이러한 AMI에서 다른 Amazon Virtual Private Cloud(Amazon VPC), 서브넷 또는 CIDR 블록으로 EC2 인스턴스를 시작하면 다음이 발생합니다.

  • 구성된 경로가 더 이상 유효하지 않습니다.
  • 인스턴스가 인스턴스 활성화에 필요한 메타데이터 서비스 또는 AWS KMS 서버에 연결되지 않습니다.

​해결 방법

1.    Windows에서 사용자 지정 AMI를 생성합니다.

2.    1단계에서 생성한 사용자 지정 AMI를 사용하여 새 인스턴스를 시작합니다.

중요: Sysprep을 사용하는 경우 새 인스턴스를 시작한 후 Sysprep을 사용합니다.

3.    시작된 Windows 인스턴스에 연결합니다.

4.    Windows PowerShell에 관리자로 로그인합니다.

5.    PowerShell에서 C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts로 이동합니다. 그런 후, 다음을 입력합니다.

.\InitializeInstance.ps1 -Schedule

6.    Enter 키를 누릅니다.

7.    3단계에서 생성한 인스턴스를 종료합니다. 그런 다음 종료한 인스턴스에서 새 인스턴스를 생성합니다.

8.    새 AMI를 사용하여 CodeDeploy에서 인스턴스를 시작합니다.


AWS 공식
AWS 공식업데이트됨 2년 전