スキップしてコンテンツを表示

EC2Rescue for Linux を使用して OS レベルの問題をトラブルシューティングする方法を教えてください。

所要時間2分
0

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続できなかったり、起動に問題が起こったりします。EC2Rescue を使用してオペレーティングシステム (OS) の問題を診断し、トラブルシューティングしたいです。

簡単な説明

EC2Rescue for Linux を使用すると、次のアクションを実行できます。

  • vmstat、iostat、mpstat などのシステム使用状況レポートの収集。
  • syslog、dmesg、アプリケーションエラーログ、AWS Systems Manager ログなどのログと詳細の収集。
  • 非対称ルーティングや重複したルートデバイスラベルなどのシステム問題の検出。
  • OpenSSH ファイルのアクセス許可、カーネルパラメータの有効化の問題などのシステムに関する問題の自動修正。

注: EC2 シリアルコンソールにアクセスできる場合は、コンソールを使用すると、サポートされている Nitro ベースのインスタンスタイプをトラブルシューティングできます。詳細については、「EC2 シリアルコンソールに接続する」を参照してください。AWSSupport-ExecuteEC2Rescue ランブックを使用しても、接続の問題を引き起こす問題を自動的に特定して修正できます。詳細については、「到達できないインスタンスに EC2Rescue ツールを実行する」を参照してください。

解決策

前提条件 システムが EC2Rescue の OS およびソフトウェア要件に準拠していることを確認してください。

EC2Rescue を使用して接続に関する問題をトラブルシューティングする

次の手順を実行します。

  1. 問題のあるインスタンスの Amazon マシンイメージ (AMI) を使用して、仮想プライベートクラウド (VPC) でレスキューインスタンスを起動します。
    注: 新しいインスタンスが、問題のあるインスタンスと同じアベイラビリティーゾーンに配置されていることを確認してください。問題があるインスタンスと同じアベイラビリティーゾーン内の、既存のインスタンスを使用することもできます。

  2. 問題があるインスタンスから Amazon Elastic Block Store (Amazon EBS) ルートボリュームをデタッチします。/dev/xvda/dev/sda1 などのデバイス名を書き留めておきます。

  3. その Amazon EBS ボリュームをセカンダリデバイスとしてレスキューインスタンスにアタッチします (例: /dev/sdf)。
    注: インスタンスのルートデバイスが Amazon EBS 基盤のボリュームの場合は、インスタンスを停止して再起動します。

  4. SSH を使用してレスキューインスタンスに接続します

  5. root ユーザーとして、次のコマンドを実行して正しいデバイス名を特定します。

    $ sudo -i
    # lsblk
    # rescuedev=/dev/xvdf1

    注: lsblk を実行する際、出力のデバイス名を書き留めます。xvsf1 は、レスキューインスタンスに接続したデバイスのデバイス名に置き換えます。

  6. 未使用である既存の一時マウントポイントを選択するには、次のコマンドを実行します。

    # rescuemnt=/mnt
    # mkdir -p $rescuemnt

    注: マウントポイントには /mnt を使用することをおすすめします。

  7. アタッチされたボリュームからルートファイルシステムをマウントするには、次のコマンドを実行します。

    # mount $rescuedev $rescuemnt

    ボリュームのマウントが失敗した場合は、次のコマンドを実行します。

    dmesg | tail

    ログに競合するユニバーサルユニーク識別子 (UUID) が表示される場合は、-o nouuid オプションを指定して上記のコマンドを再実行します。例:

    mount -o nouuid $rescuedev $rescuemnt
  8. 特別なファイルシステムをマウントし、ルートディレクトリを新しいファイルシステムに変更するには、次のコマンドを実行します。

    # for i in proc sys dev run; do mount --bind /$i $rescuemnt/$i ; done
    # chroot $rescuemnt
  9. Linux 用 EC2Rescue ツールをオフラインの Linux ルートボリュームにダウンロードしてインストールします。

  10. オプションを指定せずに EC2Rescue for Linux を実行し、すべてのモジュールを実行します。

  11. 結果に応じて次のコマンドを実行し、サポートされているモジュールでの修復を有効にします。

# ./ec2rl run --remediate
  1. chroot を終了してセカンダリデバイスをアンマウントするには、次のコマンドを実行します。
# exit
# umount $rescuemnt/{proc,sys,dev,run,}

注: アンマウント操作が失敗した場合は、セカンダリデバイスをアンマウントする前に、レスキューインスタンスを停止または再起動してください。 レスキュー EC2 インスタンスからセカンダリボリュームをデタッチしますセカンダリボリューム /dev/sdf をルートボリューム /dev/xvda または /dev/sda1 として元のインスタンスにアタッチします。 インスタンスを起動し、インスタンスが期待通りに動作することを確認します。

別のトラブルシューティング方法を使用する

OS レベルでの接続に関する問題のトラブルシューティングには、次の手順を実行します。

関連情報

EC2Rescue と Amazon EC2 Systems Manager Automation を使用して障害が発生したインスタンスを復旧する

Amazon EC2 Windows インスタンスに関する問題のトラブルシューティング

AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ