

# EC2 シリアルコンソールの前提条件
<a name="ec2-serial-console-prerequisites"></a>

**Topics**
+ [AWS リージョン](#sc-prereqs-regions)
+ [Wavelength ゾーンと AWS Outposts](#sc-prereqs-wavelength-zones-outposts)
+ [ローカルゾーン](#sc-prereqs-local-zones)
+ [インスタンスタイプ](#sc-prereqs-instance-types)
+ [アクセス権を付与する](#sc-prereqs-configure-ec2-serial-console)
+ [ブラウザベースのクライアントのサポート](#sc-prereqs-for-browser-based-connection)
+ [インスタンスの状態](#sc-prereqs-instance-state)
+ [Amazon EC2 Systems Manager](#sc-prereqs-ssm)
+ [トラブルシューティングツールを選択](#sc-prereqs-configure-troubleshooting-tool)

## AWS リージョン
<a name="sc-prereqs-regions"></a>

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

## Wavelength ゾーンと AWS Outposts
<a name="sc-prereqs-wavelength-zones-outposts"></a>

サポート外。

## ローカルゾーン
<a name="sc-prereqs-local-zones"></a>

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

## インスタンスタイプ
<a name="sc-prereqs-instance-types"></a>

サポートされるインスタンスタイプ:
+ **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 システム上に構築されたすべての仮想化インスタンス。ベアメタルインスタンスではサポートされていません。

## アクセス権を付与する
<a name="sc-prereqs-configure-ec2-serial-console"></a>

EC2 シリアルコンソールへのアクセス権を付与する設定タスクを完了する必要があります。詳細については「[EC2 シリアルコンソールへのアクセスを設定する](configure-access-to-serial-console.md)」を参照してください。

## ブラウザベースのクライアントのサポート
<a name="sc-prereqs-for-browser-based-connection"></a>

[ブラウザベースのクライアントを使用して](connect-to-serial-console.md#sc-connect-browser-based-client)シリアルコンソールに接続するにはそのブラウザで WebSocket をサポートしている必要があります。お使いのブラウザが WebSocket をサポートしていない場合は[独自のキーとSSH クライアントを使用して](connect-to-serial-console.md#sc-connect-SSH)シリアルコンソールに接続します。

## インスタンスの状態
<a name="sc-prereqs-instance-state"></a>

`running` を指定してください。

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

インスタンスステータスの詳細については「[Amazon EC2 インスタンスの状態変更](ec2-instance-lifecycle.md)」を参照してください。

## Amazon EC2 Systems Manager
<a name="sc-prereqs-ssm"></a>

インスタンスで Amazon EC2 Systems Manager を使用する場合はSSM Agent のバージョン 3.0.854.0 以降を、そのインスタンスにインストールする必要があります。SSM Agent の詳細については*AWS Systems Manager ユーザーガイド*の「[SSM Agentを使用する](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)」を参照してください。

## トラブルシューティングツールを選択
<a name="sc-prereqs-configure-troubleshooting-tool"></a>

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

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

### (Linux インスタンス) GRUB を設定する
<a name="configure-grub"></a>

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

------
#### [ Amazon Linux 2 ]

**Amazon Linux 2 インスタンスで GRUB を設定するには**

1. [SSH を使用した Linux インスタンスへの接続](connect-to-linux-instance.md)

1. `/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"
   ```

1. 次のコマンドを実行して、更新された設定を適用します。

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

------
#### [ Ubuntu ]

**Ubuntu インスタンスで GRUB を設定するには**

1. [インスタンスに接続します](connect-to-linux-instance.md)。

1. `/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"
   ```

1. 次のコマンドを実行して、更新された設定を適用します。

   ```
   [ec2-user ~]$ sudo update-grub
   ```

------
#### [ RHEL ]

**RHEL インスタンスで GRUB を設定するには**

1. [インスタンスに接続します](connect-to-linux-instance.md)。

1. `/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"
   ```

1. 次のコマンドを実行して、更新された設定を適用します。

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
   ```

   RHEL 9.2 を使用している場合は次のコマンドを使用します。

   ```
   [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"
```

------

### (Linux インスタンス) SysRq を設定する
<a name="configure-sysrq"></a>

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

**現在のブートサイクルについてすべての SysRq コマンドを有効にするには**

1. [インスタンスに接続します](connect-to-linux-instance.md)。

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

   ```
   [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
   ```

1. 次の行を追加します。

   ```
   kernel.sysrq=1
   ```

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

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. `login` プロンプトで、[前に設定した](configure-access-to-serial-console.md#set-user-password)パスワードベースのユーザーのユーザー名を入力し、**Enter** キーを押します。

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

### (Windows インスタンス) SAC とブートメニューを有効にする
<a name="configure-sac-bootmenu"></a>

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

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

------
#### [ PowerShell ]

**Windows インスタンスで SAC とブートメニューを有効にするには**

1. インスタンスに[接続](connecting_to_windows_instance.md)し、昇格された PowerShell コマンドラインから以下の手順を実行します。

1. SAC を有効にします。

   ```
   bcdedit /ems '{current}' on
   bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
   ```

1. ブートメニューを有効にします。

   ```
   bcdedit /set '{bootmgr}' displaybootmenu yes
   bcdedit /set '{bootmgr}' timeout 15
   bcdedit /set '{bootmgr}' bootems yes
   ```

1. インスタンスを再起動して、更新された設定を適用します。

   ```
   shutdown -r -t 0
   ```

------
#### [ Command prompt ]

**Windows インスタンスで SAC とブートメニューを有効にするには**

1. インスタンスに[接続](connecting_to_windows_instance.md)し、コマンドプロンプトから次の手順を実行します。

1. SAC を有効にします。

   ```
   bcdedit /ems {current} on
   bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
   ```

1. ブートメニューを有効にします。

   ```
   bcdedit /set {bootmgr} displaybootmenu yes
   bcdedit /set {bootmgr} timeout 15
   bcdedit /set {bootmgr} bootems yes
   ```

1. インスタンスを再起動して、更新された設定を適用します。

   ```
   shutdown -r -t 0
   ```

------