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

所要時間4分
0

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

解決策

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

エラーを特定

AWS Replication Agent インストーラーログには、ログの最後にエラーが表示されます。

エラーを特定するには、次のコマンドを実行してインストーラーログの最後のページを表示します。

less +G aws_replication_installer.log

見つかったエラーを解決するには、エラーに関連するセクションの手順に従います。

エラー: 共有オブジェクトからセグメントをマップできませんでした: 操作は許可されていません

エラーの例:

"./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 はセグメントをマップできません。これが発生すると、「操作は許可されていません」** というエラーが表示されます。

このエラーを解決するには、次のコマンドを実行して、実行権限でボリュームをマウントします。

# 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 ロールを更新するか、アクセスキーまたはシークレットアクセスキーを使用してロールをインストールします。詳細については、AWS ドキュメントを参照してください。

エラー: 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 ではサポートされていません。

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

Error: ssl.SSLCertVerificationError

エラーの例

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

このエラーは、クライアントが Python 3.10 以降の古いバージョンの OS を使用している場合に発生する可能性があります。Python 3.10に、PEP 644 が追加されました。Python Enhancement Proposals ウェブサイトで OpenSSL 1.1.1 またはそれ以降のプロポーザルが必要です

古いバージョンの OS には、Python 3.10 をサポートする最新の OpenSSL ライブラリがありません。そのため、AWS レプリケーションエージェントのインストールでは、Application Migration Service または Elastic Disaster Recovery エンドポイントへの SSL 証明書の検証に失敗します。

このエラーを回避するには、バージョン 2.7 や 3.8 などの古いバージョンの Python を使用してください。

**注:**urllib/SSL エラーのほとんどを解決するには、古いバージョンの Python を使用してください。

Error: 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"

このエラーは、Elastic Disaster Recovery の AWS レプリケーションエージェントロールAWSElasticDisasterRecoveryAgentRole および Application Migration Service の AWSApplicationMigrationAgentRole を変更した場合に発生することがあります。

このエラーを解決するには、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-*"
        }
      }
    }
  ]
}

エラー: aws-replication.target の依存関係ジョブが失敗しました。

エラーの例:

"stderr: aws-replication.target の依存関係ジョブが失敗しました。See 'journalctl -xe' for details"

このエラーには、次の 2 つの原因が考えられます。

  • /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 レプリケーションエージェントを再インストールします。

詳細とインストールの前提条件については、次の 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 Security Token Service (AWS STS) エンドポイントをオフにした場合に発生します。STS エンドポイントがオフになっていると、Application Migration Service または Elastic Disaster Recovery は AWS STS を呼び出してクライアントアカウントのロールを引き継ぐことができません。

このエラーを解決するには、クライアントの STS エンドポイントをオンにします

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

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

このエラーを解決するには、Linux OS のセキュアブートをオフにします。ほとんどの OS では、ハイパーバイザーのセキュアブートをオフにします。

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

このエラーを解決するには、OS に少なくとも 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 1Installation failed due to unspecified error:"

エージェントをインストールすると、現在のパッケージと一致する kernel-devel パッケージがダウンロードされます。現在のパッケージは、Linux OS で設定されているパッケージリポジトリにあります。

このエラーは、エージェントのインストールワークフローが、Linux OS の実行中のカーネルに kernel-devel パッケージをインストールできない場合に発生します。

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

kernel-devel パッケージは、次のウェブサイトからダウンロードできます。

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

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

関連するコンテンツ