EC2 Linux インスタンスでの AWS レプリケーションエージェントのインストール失敗をトラブルシューティングする方法を教えてください。

所要時間4分
0

AWS Application Migration Service または AWS Elastic Disaster Recovery 用の AWS レプリケーションエージェントをインストールしています。私の Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスでのインストールが失敗しました。

解像度

エラーを特定

AWS Replication Agent インストーラーログには、ログの最後から始まるエラーが表示されます。次のコマンドを実行してインストーラーログの最後のページを表示し、エラーを特定します。次に、エラーに関連する次のセクションを確認してください。

less +G aws_replication_installer.log

以下の解決策は、Linux オペレーティングシステムで最も一般的な AWS Replication Agent のインストールエラーを対象としています。

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** ディレクトリを使用します。noexec が**/tmpに設定されている場合、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 ID およびアクセス管理 (IAM) ロールが原因で発生します。IAM ロールの有効期限が切れると、Application Migration Service または Elastic Disaster Recovery エンドポイントへの API 呼び出しが失敗します。

この問題を解決するには、IAM ロールを更新するか、アクセスキーまたはシークレットアクセスキーを使用してロールをインストールします。詳細については、以下を参照してください:

rmmod: エラー: Module aws_replication_driver is not currently loaded

エラーの例

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

このエラーは、ソースインスタンスでセキュアブートがオンになっている場合に発生します。セキュアブートは、Application Migration Service や Elastic Disaster Recovery ではサポートされていません。

このエラーを解決するには、ソースインスタンスのセキュアブートをオフにします。

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 を使用している場合に発生する可能性があります。Python 3.10 にPEP 644 が追加されました。OpenSSL 1.1.1 またはそれ以降のプロポーザルが必要です

古いバージョンの OS には、Python 3.10 をサポートする最新の OpenSSL ライブラリがありません。そのため、AWS レプリケーションエージェントのインストールでは、Application Migration Service または Elastic Disaster Recovery エンドポイントへの 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 レプリケーションエージェントロール、AWSElasticDisaster Recovery Agentロール/AWS Application MigrationAgentRoleを変更した場合に発生することがあります。

このエラーを解決するには、AWS レプリケーションエージェントのロールが次のようになっていることを確認してください:

Application Migration Service

{
  "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"
        }
      }
    }
  ]
}

Elastic Disaster Recovery

{
  "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

このエラーには、次の 2 つの可能性がある原因が考えられます:

  • /var ディレクトリの権限が 754 である。
  • aws-replication ユーザー用の Linux グループの作成中に問題が発生した。

/var の問題を解決するには、/var ディレクトリに対してchmod 755 を実行します。

Linux グループの問題を解決するには、次の操作を行います:

1.AWS レプリケーションエージェントを完全にアンインストールします。

2.次のコマンドを実行して、aws-replication ユーザーと aws- レプリケーショングループを削除します:

# userdel aws-replication
# groupdel aws-replication

3.AWS レプリケーションエージェントを再インストールします。

詳細とインストールの前提条件については、以下を参照してください:

Exception in thread "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 エンドポイントがオフになっていると、Application Migration Service は STS を呼び出してクライアントアカウントのロールを引き継ぐことができません。Elastic Disaster Recovery についても同じことが言えます。

このエラーを解決するには、クライアントの AWS STS エンドポイントをオンにします。詳細については、「AWS リージョンでの AWS STSのアクティブ化と非アクティブ化」を参照してください。

insmod: ERROR: could not insert module ./aws-replication-driver.ko: Required key not available

このエラーは、オペレーティングシステムのセキュアブートがオンになっている場合に発生します。Application Migration Service と Elastic Disaster Recovery は、セキュアブートが有効になっている Linux オペレーティングシステムをサポートしていません。

このエラーを解決するには、Linux オペレーティングシステムのセキュアブートをオフにします。ほとんどのオペレーティングシステムでは、ハイパーバイザーのセキュアブートをオフにします。

insmod: ERROR: could not insert module ./aws-replication-driver.ko: Cannot allocate memory

エラーの例:

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 オペレーティングシステムにエージェントをインストールするための十分なメモリがない場合に発生します。

このエラーを解決するには、オペレーティングシステムに少なくとも 300 MB の空きメモリがあることを確認してください。

Unexpected error while making agent driver! Are kernel linux headers installed correctly?

エラーの例:

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 パッケージがダウンロードされます。このエラーは、エージェントのインストールワークフローが、対応する kernel-devel パッケージを Linux OS の実行中のカーネルにインストールできない場合に発生します。

このエラーを解決するには、インストールログを確認して、リポジトリへのアクセスに問題があったことを確認します。次に、kernel-devel パッケージをインターネットから手動でダウンロードします。パッケージをダウンロードしたら、インストールを再実行します。

対応する kernel-devel/linux-headers パッケージは、以下のサイトからダウンロードできます:

AWS レプリケーションエージェントは、**make gcc perl tar gawk rpm **など、インストールに必要な依存関係もインストールします。詳細については、「Linux のインストール要件」を参照してください。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ