Linux インスタンスにEC2Rescue for Linuxを使用する方法
はじめに
かつまたです。今回はEC2のトラブルシューティングと修復を支援するツールであるEC2RescueをLinuxインスタンスに対してSSM Automationを用いる方法とEC2 Rescue for Linux をダウンロードして使用する方法を利用して試してみたので手順をご紹介します。
EC2 Rescueとは
EC2 Rescueはオープンソースのツールであり、EC2のトラブルシューティングの分析と修復を行えます。Linux用のEC2 Rescueでは以下の使用例が考えられます。
- syslog ログとパッケージマネージャーログの収集
- リソース使用率データの収集
- 既知の問題のあるカーネルパラメータと一般的な OpenSSH の問題の診断と修復
やってみた
前提条件
- 作成したインスタンスにSSM Agentがインストールされていること
- インスタンスに AmazonSSMManagedInstanceCore ポリシーを含む IAM ロールがアタッチされていること
- SSH接続が可能であること
SSM Automation
SSM Automationで「AWSSupport-ExecuteEC2Rescue」オートメーションドキュメントを使用することで簡単にEC2Rescueのインストールと実行を行えます。
このドキュメントを用いると、 以下フロー図のようにWindowsとLinuxインスタンスそれぞれに応じて包括的なインスタンスの問題の分析と修復を実行できます。
1.コンソールで「System Manager」→「自動化」から「Execute runbook」を選択します。
2.検索欄から「AWSSupport-ExecuteEC2Rescue」のオートメーションドキュメントを選択します。
3.「Simple execution」を選び、作成したインスタンスを選択してドキュメントを実行します。
4.実行後、「Executed steps」の完了を待ち、「Outputs」を確認することで以下のような調査結果を得られます。
----------[Diagnostic Results]----------
module run/duplicatefslabels [FAILURE] Duplicate label, /, found on the following filesystems: /dev/nvme0n1p1, /dev/nvme1n1p1
module run/enadiag [FAILURE] ENA problems found on ens5.
module run/arpcache [SUCCESS] Aggressive arp caching is disabled.
module run/arpignore [SUCCESS] arp ignore is disabled for all interfaces.
module run/asymmetricroute [SUCCESS] No duplicate subnets found.
module run/conntrackfull [SUCCESS] No conntrack table full errors found.
module run/consoleoverload [SUCCESS] No serial console overload found
上記出力ではファイルシステムのラベル重複とネットワークインターフェース ens5 での ENAの問題が検出されたことを確認できました。
修正するには、一方のファイルシステムのラベルを変更することやENA ドライバーの更新やネットワーク設定の見直しが必要なことが考えられます。
EC2 Rescue for Linux
次に、EC2にSSH接続をし、直接EC2 Rescue for Linux をインストールする方法を試します。
1.以下コマンドでインストールを実行します。
curl -O https://s3.amazonaws.com/ec2rescuelinux/ec2rl.tgz
tar -xzvf ec2rl.tgz
sha256sum -c ec2rl.tgz.sha256
cd ec2rl-<version_number>
./ec2rl help
2.EC2Rescueを実行します。
./ec2rl run
以下のような実行結果から、問題点などを確認することができます。
----------[Diagnostic Results]----------
module run/arpcache [SUCCESS] Aggressive arp caching is disabled.
module run/arpignore [SUCCESS] arp ignore is disabled for all interfaces.
module run/asymmetricroute [SUCCESS] No duplicate subnets found.
module run/conntrackfull [SUCCESS] No conntrack table full errors found.
module run/consoleoverload [SUCCESS] No serial console overload found
module run/ixgbevfversion [SUCCESS] Not using ixgbevf driver.
module run/tcprecycle [SUCCESS] Aggressive TCP recycling is disabled.
module run/xennetrocket [SUCCESS] No SKB overflow bug found
module run/enadiag [WARN] Unable to run ENA stats module.
参考資料
おわりに
ご覧いただきありがとうございました。EC2Rescue for Linuxを利用することでEC2のトラブルシューティングを実施し、起動やSSH接続ができなくなったインスタンスや特定が難しいシステムやパフォーマンス問題が発生したインスタンスの詳細調査を実施することが可能です。今後はEC2Rescue for Windowsについても機能、ユースケースや使い方を学んでいきたいと思います。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。