EC2 シリアルコンソールの前提条件 - Amazon Elastic Compute Cloud

EC2 シリアルコンソールの前提条件

AWS リージョン

アジアパシフィック (マレーシア) リージョンを除くすべての AWS リージョンリージョンでサポートされています。

Wavelength ゾーンと AWS Outposts

サポート外。

ローカルゾーン

すべての Local Zones ではサポートされています。

インスタンスのタイプ

サポートされるインスタンスタイプ:

  • Linux

    • Nitro システム上に構築されたすべての仮想化インスタンス。

    • 以下を除くすべてのベアメタルインスタンス:

      • 汎用: a1.metal, mac1.metal, mac2.metal

      • 高速コンピューティング: g5g.metal

      • メモリ最適化: u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal

  • Windows

    Nitro システム上に構築されたすべての仮想化インスタンス。ベアメタルインスタンスではサポートされていません。

アクセス権を付与する

EC2 シリアルコンソールへのアクセス権を付与する設定タスクを完了する必要があります。詳細については、「EC2 シリアルコンソールへのアクセスを設定する」を参照してください。

ブラウザベースのクライアントのサポート

ブラウザベースのクライアントを使用してシリアルコンソールに接続するには、そのブラウザで WebSocket をサポートしている必要があります。お使いのブラウザが WebSocket をサポートしていない場合は、独自のキーとSSH クライアントを使用してシリアルコンソールに接続します。

インスタンスの状態

running を指定してください。

インスタンスが pendingstoppingstoppedshutting-down、または terminated 状態の場合、シリアルコンソールに接続できません。

インスタンスステータスの詳細については、「Amazon EC2 インスタンスの状態変更」を参照してください。

Amazon EC2 Systems Manager

インスタンスで Amazon EC2 Systems Manager を使用する場合は、SSM Agent のバージョン 3.0.854.0 以降を、そのインスタンスにインストールする必要があります。SSM Agent の詳細については、AWS Systems Manager ユーザーガイドの「SSM Agentを使用する」を参照してください。

トラブルシューティングツールを選択

シリアルコンソールからインスタンスのトラブルシューティングを行う際に、Linux インスタンスでは GRUB または SysRq、Windows インスタンスでは Special Admin Console (SAC) を使用できます。これらのツールを使用できるようにするには、ツールを使用するすべてのインスタンスで設定手順を実行する必要があります。

インスタンスのオペレーティングシステムの手順を使用して、選択したトラブルシューティングツールを設定します。

GRUB を設定するには、インスタンスの起動に使用された AMI に基づいて、次のいずれかの手順を選択します。

Amazon Linux 2
Amazon Linux 2 インスタンスで GRUB を設定するには
  1. SSH を使用した Linux インスタンスへの接続

  2. /etc/default/grub で、次のオプションを追加または変更します。

    • GRUB_TIMEOUT=1 を設定します。

    • GRUB_TERMINAL="console serial" を追加する。

    • GRUB_SERIAL_COMMAND="serial --speed=115200" を追加する。

    /etc/default/grub の例を次に示します。場合によっては、システム設定に基づいて設定を変更することが必要な場合があります。

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0" GRUB_TIMEOUT=1 GRUB_DISABLE_RECOVERY="true" GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200"
  3. 次のコマンドを実行して、更新された設定を適用します。

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Ubuntu
Ubuntu インスタンスで GRUB を設定するには
  1. インスタンスに接続します

  2. /etc/default/grub.d/50-cloudimg-settings.cfg で、次のオプションを追加または変更します。

    • GRUB_TIMEOUT=1 を設定します。

    • GRUB_TIMEOUT_STYLE=menu を追加する。

    • GRUB_TERMINAL="console serial" を追加する。

    • GRUB_HIDDEN_TIMEOUT を削除します。

    • GRUB_SERIAL_COMMAND="serial --speed=115200" を追加する。

    /etc/default/grub.d/50-cloudimg-settings.cfg の例を次に示します。場合によっては、システム設定に基づいて設定を変更することが必要な場合があります。

    # Cloud Image specific Grub settings for Generic Cloud Images # CLOUD_IMG: This file was created/modified by the Cloud Image build process # Set the recordfail timeout GRUB_RECORDFAIL_TIMEOUT=0 # Do not wait on grub prompt GRUB_TIMEOUT=1 GRUB_TIMEOUT_STYLE=menu # Set the default commandline GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295" # Set the grub console type GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed 115200"
  3. 次のコマンドを実行して、更新された設定を適用します。

    [ec2-user ~]$ sudo update-grub
RHEL
RHEL インスタンスで GRUB を設定するには
  1. インスタンスに接続します

  2. /etc/default/grub で、次のオプションを追加または変更します。

    • GRUB_TERMINAL_OUTPUT を削除します。

    • GRUB_TERMINAL="console serial" を追加する。

    • GRUB_SERIAL_COMMAND="serial --speed=115200" を追加する。

    /etc/default/grub の例を次に示します。場合によっては、システム設定に基づいて設定を変更することが必要な場合があります。

    GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200"
  3. 次のコマンドを実行して、更新された設定を適用します。

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
CentOS

CentOS AMI を使用して起動されるインスタンスの場合、GRUB はデフォルトでシリアルコンソール用に設定されます。

/etc/default/grub の例を次に示します。構成は、システム設定によって異なる場合があります。

GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200" GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200" GRUB_DISABLE_RECOVERY="true"

SysRq を設定するには、現在のブートサイクルで SysRq コマンドを有効にします。設定を永続化するために、後続の起動で SysRq コマンドを有効にすることもできます。

現在のブートサイクルについてすべての SysRq コマンドを有効にするには
  1. インスタンスに接続します

  2. 次のコマンドを実行します。

    [ec2-user ~]$ sudo sysctl -w kernel.sysrq=1
    注記

    この設定は、次回の再起動時にクリアされます。

後続の起動についてすべての SysRq コマンドを有効にするには
  1. /etc/sysctl.d/99-sysrq.conf ファイルを作成し、お気に入りのエディタで開きます。

    [ec2-user ~]$ sudo vi /etc/sysctl.d/99-sysrq.conf
  2. 次の行を追加します。

    kernel.sysrq=1
  3. インスタンスを再起動して、変更を適用します。

    [ec2-user ~]$ sudo reboot
  4. login プロンプトで、前に設定したパスワードベースのユーザーのユーザー名を入力し、Enter キーを押します。

  5. Password プロンプトで、パスワードを入力し、Enter キーを押します。

注記

インスタンスで SAC を有効にすると、パスワードの取得に依存する EC2 サービスは Amazon EC2 コンソールから操作できません。Amazon EC2 起動エージェント (EC2Config、EC2Launch v1、EC2Launch v2) での Windowsは、シリアルコンソールを使用してさまざまなタスクを実行します。インスタンスで SAC を有効にすると、これらのタスクは正常に実行されません。Amazon EC2 の起動エージェント上の Windows の詳細については、「Amazon EC2 Windows インスタンスの設定」を参照してください。SAC を有効にする場合は、後で無効にすることができます。詳細については、「SAC とブートメニューを無効にする」を参照してください。

インスタンスで SAC とブートメニューを有効にするには、次のいずれかの方法を使用します。

PowerShell
Windows インスタンスで SAC とブートメニューを有効にするには
  1. インスタンスに接続し、昇格された PowerShell コマンドラインから以下の手順を実行します。

  2. SAC を有効にします。

    bcdedit /ems '{current}' on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. ブートメニューを有効にします。

    bcdedit /set '{bootmgr}' displaybootmenu yes bcdedit /set '{bootmgr}' timeout 15 bcdedit /set '{bootmgr}' bootems yes
  4. インスタンスを再起動して、更新された設定を適用します。

    shutdown -r -t 0
Command prompt
Windows インスタンスで SAC とブートメニューを有効にするには
  1. インスタンスに接続し、コマンドプロンプトから次の手順を実行します。

  2. SAC を有効にします。

    bcdedit /ems {current} on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. ブートメニューを有効にします。

    bcdedit /set {bootmgr} displaybootmenu yes bcdedit /set {bootmgr} timeout 15 bcdedit /set {bootmgr} bootems yes
  4. インスタンスを再起動して、更新された設定を適用します。

    shutdown -r -t 0