EC2 Linux 인스턴스의 AWS 복제 에이전트 설치 실패 문제를 해결하려면 어떻게 해야 합니까?

6분 분량
0

AWS 애플리케이션 마이그레이션 서비스 또는 AWS 탄력적 재해 복구용 AWS Replication 에이전트를 설치하고 있습니다. Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에서 설치가 실패했습니다.

해결 방법

오류 확인

AWS Replication 에이전트 설치 프로그램 로그에는 로그 끝부터 오류가 표시됩니다. 다음 명령을 실행하여 설치 프로그램 로그의 마지막 페이지를 보고 오류를 확인합니다. 그런 다음 오류와 관련된 다음 섹션을 검토하세요.

less +G aws_replication_installer.log

다음 해결 방법은 Linux 운영 체제의 가장 일반적인 AWS Replication 에이전트 설치 오류를 다룹니다.

libz.so .1: 공유 객체에서 세그먼트를 매핑하지 못함: 작업이 허용되지 않음

오류 예시

./aws-replication-installer-64bit: error while loading shared libraries: libz.so .1: failed to map segment from shared object: Operation not permitted

설치 스크립트는 /tmp 디렉터리를 사용합니다. /tmpnoexec가 설정된 경우 libz.so는 세그먼트를 매핑할 수 없습니다. 이 경우 이 작업이 허용되지 않음 오류가 표시됩니다.

이 오류를 해결하려면 다음과 같이 하세요.

1.    다음 명령을 실행하여 /tmp를 마운트 해제합니다.

# umount /tmp

2.    다음 명령을 실행하여 exec 권한으로 볼륨을 마운트합니다.

# sudo mount /tmp -o remount, exec

요청에 포함된 보안 토큰이 만료되었습니다.

오류 예시

botocore.exceptions.ClientError: An error occurred (ExpiredTokenException) when calling the GetAgentInstallationAssetsForDrs operation: The security token included in the request is expired [installation_id: 1a9af9d3-9485-4e02-965e-611929428c61, agent_version: 3.7.0, mac_addresses: 206915885515739,206915885515740, _origin_client_type: installer]

이 오류는 AWS 식별 및 액세스 관리(IAM) 역할이 만료되어 발생하는 경우가 많습니다. IAM 역할이 만료되면 애플리케이션 마이그레이션 서비스 또는 엘라스틱 재해 복구 엔드포인트에 대한 API 호출이 실패합니다.

이 문제를 해결하려면 IAM 역할을 새로 고치거나 액세스 키 또는 비밀 액세스 키를 사용하여 역할을 설치하세요. 자세한 내용은 다음을 참조하세요.

rmmod: 오류: 모듈 aws_replication_driver가 현재 로드되지 않았습니다.

오류 예시

rmmod: ERROR: Module aws_replication_driver is not currently loaded insmod: ERROR: could not insert module ./aws-replication-driver.ko: Required key not available

이 오류는 소스 인스턴스에서 보안 부팅이 켜져 있을 때 발생합니다. 보안 부팅은 애플리케이션 마이그레이션 서비스 또는 탄력적 재해 복구에서 지원되지 않습니다.

이 오류를 해결하려면 소스 인스턴스에서 보안 부팅을 끄세요.

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]

오류 예시

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) - urllib.error.URLError: <urlopen error unknown url type: https>

**참고:**이 오류 외에도 다음 방법을 사용하여 대부분의 URLLIB/SSL 오류를 해결할 수 있습니다.

이 오류는 클라이언트가 Python 3.10 이상의 이전 OS 버전을 사용하는 경우 발생할 수 있습니다. 파이썬 3.10은 PEP 644를 추가했습니다. - OpenSSL 1.1.1 이상의 제안이 필요합니다.

이전 OS 버전에는 파이썬 3.10을 지원하는 최신 OpenSSL 라이브러리가 없습니다. 따라서 AWS Replication 에이전트를 설치하면 애플리케이션 마이그레이션 서비스 또는 엘라스틱 재해 복구 엔드포인트에 대한 SSL 인증서를 확인하지 못합니다.

이 오류를 방지하려면 버전 2.7 또는 3.8과 같은 이전 버전의 Python을 사용하세요.

botocore.exceptions.CredentialRetrievalError

오류 예시:

botocore.exceptions.CredentialRetrievalError: Error when retrieving credentials from cert: Oct 17, 2022 9:38:54 AM com.amazonaws.cloudendure.credentials_provider.SharedMain createAndSaveJks

이 오류는 AWS Replication Agent role, AWSElasticDisasterRecoveryAgentRole/ AWSApplicationMigrationAgentRole을 수정하는 경우 발생할 수 있습니다.

이 오류를 해결하려면 AWS Replication 에이전트 역할이 다음과 같아야 합니다.

애플리케이션 마이그레이션 서비스

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "PrincipalGroup": {
        "AWS": "svc:mgn.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringLike": {
          "sts:SourceIdentity": "s-*",
          "aws:SourceAccount": "AWSACCOUNTIDHERE"
        }
      }
    }
  ]
}

탄력적 재해 복구

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "PrincipalGroup": {
        "AWS": "svc:drs.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringLike": {
          "aws:SourceAccount": "AWSACCOUNTIDHERE",
          "sts:SourceIdentity": "s-*"
        }
      }
    }
  ]
}

stderr: aws-replication.target에 대한 종속성 작업이 실패했습니다.

오류 예시:

stderr: A dependency job for aws-replication.target failed. See 'journalctl -xe' for details

이 오류의 가능한 두 가지 원인은 다음과 같습니다.

  • /var 디렉터리의 사용 권한이 754입니다.
  • aws-replication 사용자를 위한 Linux 그룹을 만드는 데 문제가 발생했습니다.

/var 문제를 해결하려면 /var 디렉터리에 대해 chmod 755를 실행합니다.

Linux 그룹 문제를 해결하려면 다음과 같이 하세요.

1.    AWS 복제 에이전트를 완전히 제거합니다.

2.    다음 명령을 실행하여 aws-replication 사용자 및 aws-replication 그룹을 삭제합니다.

# userdel aws-replication
# groupdel aws-replication

3.    AWS 복제 에이전트를 다시 설치합니다.

자세한 정보 및 설치 사전 요구 사항은 다음을 참조하세요.

"main"에서 예외 발생 com.amazonaws.services.drs.model.InternalServerException

오류 예시:

Exception in thread "main" com.amazonaws.services.drs.model.InternalServerException: An unexpected error has occurred (Service: Drs; Status Code: 500; Error Code: InternalServerException; Request ID: 4f4a76cb-aaec-44cc-a07a-c3579454ca55; Proxy: null)

이 오류는 클라이언트가 AWS STS 엔드포인트를 끄는 경우 발생합니다. AWS STS 엔드포인트가 꺼져 있는 경우 애플리케이션 마이그레이션 서비스는 STS를 호출하여 클라이언트 계정에서의 역할을 맡을 수 없습니다. 엘라스틱 재해 복구도 마찬가지입니다.

이 오류를 해결하려면 클라이언트에서 AWS STS 엔드포인트를 켜세요. 자세한 내용은 AWS 리전의 AWS STS 활성화 및 비활성화를 참조하세요.

insmod: 오류: 모듈을 삽입할 수 없음 ./aws-replication-driver.ko: 필수 키를 사용할 수 없음

이 오류는 운영 체제에서 보안 부팅이 켜져 있을 때 발생합니다. 애플리케이션 마이그레이션 서비스와 탄력적 재해 복구는 보안 부팅이 설정된 Linux 운영 체제를 지원하지 않습니다.

이 오류를 해결하려면 Linux 운영 체제의 보안 부팅을 끄세요. 대부분의 운영 체제에서는 하이퍼바이저에서 보안 부팅을 끕니다.

insmod: 오류: 모듈을 삽입할 수 없음 ./aws-replication-driver.ko: 메모리를 할당할 수 없음

오류 예시:

insmod: ERROR: could not insert module ./aws-replication-driver.ko: Cannot allocate memory
rmmod: ERROR: Module aws_replication_driver is not currently loaded
]
2023-03-16 10:27:08,416 ERROR      Exception during agent installation                                             
Traceback (most recent call last):
  File "cirrus/installer_shared/installer_main.py", line 308, in run_agent_installer_command_linux
  File "shared/installer_utils/command_utils.py", line 161, in run
shared.installer_utils.command_utils.RunException:
command: /tmp/tmp_t

이 오류는 Linux 운영 체제에 에이전트 설치에 필요한 메모리가 충분하지 않을 때 발생합니다.

이 오류를 해결하려면 운영 체제에 사용 가능한 메모리가 300MB 이상 있는지 확인하세요.

에이전트 드라이버를 만드는 중 예상치 못한 오류가 발생했습니다! 커널 리눅스 헤더가 올바르게 설치되었나요?

오류 예시:

Unexpected error while making agent driver! Are kernel linux headers installed correctly?
Installation returned with code 1
Installation failed due to unspecified error:

에이전트를 설치하는 동안 설치는 Linux 운영 체제에 구성된 패키지 리포지토리에서 일치하는 커널 개발 패키지를 다운로드합니다. 이 오류는 에이전트 설치 워크플로에서 일치하는 kernel-devel 패키지를 Linux OS의 실행 중인 커널에 설치할 수 없을 때 발생합니다.

이 오류를 해결하려면 설치 로그를 검토하여 리포지토리에 액세스하는 데 문제가 있었는지 확인하세요. 그런 다음 인터넷에서 kernel-devel 패키지를 수동으로 다운로드합니다. 패키지를 다운로드한 후 설치를 다시 실행합니다.

다음 사이트에서 일치하는 kernel-devel/linux-headers 패키지를 다운로드할 수 있습니다.

또한 AWS 리플리케이션 에이전트는 make gcc perl tar gawk rpm과 같이 설치에 필요한 종속성을 설치합니다. 자세한 내용은 Linux 설치 요구 사항을 참조하세요.

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