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

최종 업데이트 날짜: 2020년 4월 7일

Windows Amazon Machine Image(AMI) 인스턴스를 시작하려고 하면 AWS CodeDeploy 에이전트 로그 파일에 다음과 유사한 오류가 표시됩니다. "CodeDeploy 인스턴스 에이전트 서비스: 시작 또는 실행 중 오류: 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.    시작된 인스턴스에 연결합니다.

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

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

.\InitializeInstance.ps1 -Schedule

6.    Enter 키를 누릅니다.

7.    3단계에서 만든 인스턴스를 종료하고 해당 인스턴스에서 새 인스턴스를 생성합니다.

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


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?