EC2 Linux インスタンスでの AWS レプリケーションエージェントのインストール失敗をトラブルシューティングする方法を教えてください。
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 ロールを更新するか、アクセスキーまたはシークレットアクセスキーを使用してロールをインストールします。詳細については、以下を参照してください:
- Application Migration Service: 必要な AWS 認証情報の生成
- Elastic Disaster Recovery: 必要な AWS 認証情報の生成
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 レプリケーションエージェントを再インストールします。
詳細とインストールの前提条件については、以下を参照してください:
- Application Migration Service:サポート対象のオペレーティングシステム
- Elastic Disaster Recovery:サポート対象のオペレーティングシステム
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 パッケージは、以下のサイトからダウンロードできます:
- RHEL、CentOS、Oracle、および SUSE パッケージディレクトリ
- debian.org ウェブサイトの Debian パッケージディレクトリ。
- Ubuntu パッケージウェブサイトの Ubuntu パッケージディレクトリ。
AWS レプリケーションエージェントは、**make gcc perl tar gawk rpm **など、インストールに必要な依存関係もインストールします。詳細については、「Linux のインストール要件」を参照してください。
関連するコンテンツ
- 質問済み 3ヶ月前lg...
- 質問済み 6ヶ月前lg...
- 承認された回答質問済み 8ヶ月前lg...
- 質問済み 6ヶ月前lg...
- AWS公式更新しました 6ヶ月前
- AWS公式更新しました 1年前