始めに
2021年3月末に「EC2シリアルコンソール」というものがリリースされてたので、遅ればせながら使ってみました。ここでは使うための手順や注意点を書いていきます。
制約として
- 対象インスタンスタイプは限られる(古いタイプは未対応)
- Windowsの場合はSACを有効にしておく必要がある。
がありますが、事前に設定を済ませておけば、ブラウザから簡単にコンソール接続が出来そうです。
Amazon EC2 コンソールまたは SSH を使用して EC2 インスタンスのシリアルコンソールに接続できます。シリアルコンソールに接続したら、起動、ネットワーク設定、およびその他の問題のトラブルシューティングに使用できます。

今まで通常のRDPやSSH接続以外では、他に「セッションマネージャ」等がありました。セッションマネージャは事前にエージェントのインストールやプロキシ環境ではプロキシ設定等が必要でした。そしてエージェントが死んでいる場合は接続出来ませんでした。
ECシリアルコンソールが該当EC2に対応している前提が必要ですが、より楽に緊急接続できそうです。
手順
AWS公式サイトの資料に基に進めていきます。
共通の事前準備
- EC2シリアルコンソール操作に必要な権限があること。
⇒ IAMポリシー「ec2-instance-connect:SendSerialConsoleSSHPublicKey」です。詳細は上記公式サイトに明記されているため割愛します。 - EC2内のアカウントやパスワードを設定しておく。
⇒ 鍵認証が前提だと意識しないかもしれません。linuxであればpasswdコマンドで事前設定しておきましょう。 - EC2メニューから「EC2シリアルコンソール」を許可にする。
⇒ 後述します。
EC2サービス内の共通設定であり「デフォルトは無効」です。許可するためには、EC2サービス内におけるダッシュボード画面右上の「ECシリアルコンソール」から操作可能です。

接続(Linux)
LinuxOSのEC2を選択して接続画面を表示し、EC2シリアルコンソールより接続してみます。

ブラウザの新しいタブで画面が開きます。画面表示後に「Enter」を1回押下すると、無事にコンソールのログイン画面が表示されました。

アカウント、パスワードを入力するとログインでき、操作可能です。

このようにLinuxの場合は簡単です。続けてWindowsの場合を見ていきます。
接続(Windows)
Windowsの場合、事前にSAC(Special Admin Console)の設定が必要です。
Windowsにログインしてコマンドプロンプトを「管理者権限」で起動し、以下コマンドでSACを有効にします。
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200

実行後、OSを再起動します。
※コマンドでは「shutdown -r -t 0」です。
事前準備が済みましたら、Linuxの時と同様に「接続」を実施します。

ブラウザの新しいタブで画面が開きます。画面表示後に「Enter」を1回押下すると、次のようにSACのプロンプトが表示されました。

SACで出来ることは次の通りです(?入力してEnter)。


ひどい文字化け・・・。
日本語OSのため読めません(恐らく文字コードかフォントの問題)。しかし、マウスで文字を選択後にテキストエディタにペーストすると、次のように読むことは可能です。

続いてSACのプロンプト画面から、OSにログインを行い、コマンドプロンプトの実行まで進めてみます。流れは次の通りです。
- cmd と入力
→ Channelが作成される。(注意) WindowsOS側を起動してすぐは作成に失敗するため、その時は暫くしてから再実行します。 - ESCを押下してからTABを押下
→ Channelに切り替わる。 - Enterを押下
→ ログイン認証に切り替わる。 - アカウント、ドメイン、パスワードの順に入力
→ コマンドプロンプト表示!


コマンドプロンプトでも結構な文字化けが・・・。
日本語OSの場合、コマンドプロンプトでも文字化けしますが、「chcp 65001」と入力してUTF-8に切り替えることで若干改善はされます。

それでも文字化けは残りますが、テキストエディタにコピペで読めます。
以上がWindowsでのEC2シリアルコンソール接続となります。
まとめ
今回はEC2シリアルコンソールを使ってEC2にコンソール接続を実施してみました。
- 事前準備が必要(権限やアカウント。WindowsはSACの有効化。)
- 対象リージョンやインスタンスタイプは制限がある
というのが現状ありますが、対応可能なEC2に対しては構築段階で準備しておくと、いざってときにEC2シリアルコンソールは心強いと感じます。

最後までご覧いただき、ありがとうございました。
コメント