EC2 シリアルコンソールを使用して Amazon EC2 インスタンスをトラブルシューティングする
EC2 シリアルコンソールを使用して、インスタンスのシリアルポートに接続することで、起動、ネットワーク設定、およびその他の問題をトラブルシューティングできます。
インスタンスのオペレーティングシステムと、インスタンスで設定したツールの手順を使用します。
注記
開始する前に、選択したトラブルシューティングツールの設定など、前提条件を満たしていることを確認してください。
GNU GRUB (GNU GRand Unified Bootloader の略。一般に GRUB と呼ばれます) は、ほとんどの Linux オペレーティングシステムのデフォルトのブートローダーです。GRUB メニューから、起動先のカーネルを選択したり、メニューエントリを変更してカーネルの起動方法を変更したりできます。これは、障害が発生したインスタンスをトラブルシューティングする際に役立ちます。
GRUB メニューは、ブートプロセス中に表示されます。通常の SSH ではメニューにアクセスできませんが、EC2 シリアルコンソールからアクセスできます。
シングルユーザーモードまたは緊急モードで起動できます。シングルユーザーモードでは、カーネルを低めの実行レベルで起動します。例えば、ファイルシステムをマウントしても、ネットワークをアクティブ化しない場合があり、インスタンスの修正に必要なメンテナンスを実行することができます。緊急モードはシングルユーザーモードと似ていますが、カーネルは可能な限り低い実行レベルで実行される点が異なります。
シングルユーザーモードで起動するには
-
インスタンスのシリアルコンソールに接続します。
-
次のコマンドを実行して、インスタンスを再起動します。
[ec2-user ~]$
sudo reboot
-
再起動時に GRUB メニューが表示されたら、任意のキーを押してブートプロセスを停止します。
-
GRUB メニューで、矢印キーを使用して起動先のカーネルを選択し、キーボードの
e
を押します。 -
矢印キーを使用して、カーネルを含む行にカーソルを置きます。行は、インスタンスの起動に使用された AMI に応じて、
linux
またはlinux16
のいずれかで始まります。Ubuntu の場合、2 つの行はlinux
で始まります。どちらも次のステップで変更する必要があります。 -
行の最後に、単語
single
を追加します。Amazon Linux 2 の例を次に示します。
linux /boot/vmlinuz-4.14.193-149.317.amzn2.aarch64 root=UUID=d33f9c9a-\ dadd-4499-938d-ebbf42c3e499 ro console=tty0 console=ttyS0,115200n8 net.ifname\ s=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.she\ ll=0 single
-
シングルユーザーモードで起動するには、Ctrl+X キーを押します。
-
login
プロンプトで、前に設定したパスワードベースのユーザーのユーザー名を入力し、Enter キーを押します。 -
Password
プロンプトで、パスワードを入力し、Enter キーを押します。
緊急モードで起動するには
シングルユーザーモードと同じステップに従い、ステップ 6 で single
の代わりに emergency
という単語を追加します。
システムリクエスト (SysRq) キーは、「マジック SysRq」とも呼ばれ、シェルの外部でカーネルにコマンドを直接送信するために使用でき、カーネルが何をしているかにかかわらず、カーネルは応答します。例えば、インスタンスが応答を停止した場合、SysRq キーを使用して、カーネルにクラッシュまたは再起動するように指示できます。詳細については、Wikipedia の「マジック SysRq キー
SysRq コマンドは、EC2 シリアルコンソールブラウザベースのクライアントまたは SSH クライアントで使用できます。中断リクエストを送信するコマンドは、クライアントごとに異なります。
SysRq を使用するには、使用しているクライアントに基づいて、次のいずれかの手順を選択します。
Windows の Special Admin Console (SAC) 機能を使用して、Windows インスタンスをトラブルシューティングできます。インスタンスのシリアルコンソールに接続して SAC を使用すると、ブートプロセスを中断し、Windows をセーフモードで起動できます。
注記
インスタンスで SAC を有効にすると、パスワードの取得に依存する EC2 サービスは Amazon EC2 コンソールから操作できません。Amazon EC2 起動エージェント (EC2Config、EC2Launch v1、EC2Launch v2) での Windowsは、シリアルコンソールを使用してさまざまなタスクを実行します。インスタンスで SAC を有効にすると、これらのタスクは正常に実行されません。Amazon EC2 の起動エージェント上の Windows の詳細については、「Amazon EC2 Windows インスタンスの設定」を参照してください。SAC を有効にする場合は、後で無効にすることができます。詳細については、「SAC とブートメニューを無効にする」を参照してください。
SAC を使用する
SAC を使用するには
-
インスタンスで SAC が有効になっている場合、シリアルコンソールには
SAC>
プロンプトが表示されます。 -
SAC コマンドを表示するには、
?
と入力し、Enter を押します。正常な出力
-
コマンドプロンプトチャネル (
cmd0001
やcmd0002
など) を作成するには、cmd
と入力し、Enter を押します。 -
コマンドプロンプトチャネルを表示するには、ESC を押してから TAB を押します。
正常な出力
-
チャネルを切り替えるには、ESC + TAB + チャネル番号を同時に押します。例えば、
cmd0002
チャネルに切り替えるには (チャネルが作成されている場合)、ESC + TAB + 2 を押します。 -
コマンドプロンプトチャネルに必要な認証情報を入力します。
コマンドプロンプトは、既に出力された文字の読み取りを許可しない点を除いて、デスクトップ上で取得するのと同じフル機能のコマンドシェルです。
PowerShell は、コマンドプロンプトからも使用できます。
進行状況の詳細設定をサイレントモードに設定する必要がある場合があります。
ブートメニューを使用する
インスタンスでブートメニューが有効になっていて、SSH 経由で接続した後に再起動した場合は、次のようにブートメニューが表示されます。
ブートメニューのコマンド
- ENTER
-
オペレーティングシステムの選択したエントリを開始します。
- TAB
-
[Tools] (ツール) メニューに切り替えます。
- ESC
-
インスタンスをキャンセルして再起動します。
- ESC、その後に 8
-
[F8] を押す操作に相当します。選択した項目の詳細オプションを表示します。
- ESC キー + 左矢印
-
最初のブートメニューに戻ります。
注記
ESC キーだけでは、Windows がエスケープシーケンスが進行中かどうかを確認するために待機しているため、メインメニューに戻ることはありません。
SAC とブートメニューを無効にする
SAC とブートメニューを有効にする場合、これらの機能を後で無効にできます。
インスタンスで SAC とブートメニューを無効にするには、次のいずれかの方法を使用します。