EC2インスタンスへのシリアルコンソール接続にトライした

awscliにトライしますよ。シリアルコンソールつないでみるのです。普段ログインしているユーザにはIAMの権限は付けていなくて、アクセスキーもないので、rootユーザで作業です。緊張します。CLI用のユーザを作ってアクセスキーを発行します。

続いてawscliのインストールです。WSL2のUbun22.04からもawscli使えます。早速インストールします。

$ sudo apt search awscli
awscli/jammy,now 1.22.34-1 all [installed]
Universal Command Line Environment for AWS
$ sudo apt -y install awscli

こちらの「設定の基本」を参考にaws configureを実行します。つづいて、「インスタンスのステータスチェック」を参考に、awscliをお試ししてみます。

$ aws ec2 describe-instance-status | jq '.InstanceStatuses[].InstanceState'
{
"Code": 16,
"Name": "running"
}

ちゃんとステータス見えます。それでは本題のssh経由のシリアルコンソール接続です。いざ、SSH公開鍵を突っ込みます。・・・が、エラーではじかれました。

$ aws ec2-instance-connect send-serial-console-ssh-public-key \
> --instance-id i-instance-id \
> --serial-port 0 \
> --ssh-public-key file://~/.ssh/id_th0x0472.pub \
> --region ap-northeast-1

An error occurred (EC2InstanceTypeInvalidException) when calling the SendSerialConsoleSSHPublicKey operation:

EC2InstanceTypeInvalidExceptionって言われているので、インスタンスタイプがダメなのかな?

WebUIのコンソールから[EC2]→[インスタンス]→[i-instance-id]→[インスタンスに接続]とたどってみると、「このインスタンスタイプは、EC2 シリアルコンソールではサポートされていません。」と言われてしまいました。かなしい・・・

EC2 シリアルコンソールを使用してこのインスタンスに接続するには、インスタンスが AWS Nitro System 上に構築されたインスタンスタイプを使用する必要があります。

だそうです。Nitro Systemですか・・・t2シリーズは違うんですかね・・・。

Nitro System 上に構築されたインスタンス」のページによると、t2はダメだけどt3はいけるそうです。

無償期間も終わるし、t2.microから乗り換えますか・・・順当にいけばt3.microかな。

t3.microのオンデマンド価格を調べると、東京リージョンは0.0136 USDで、オレゴンは0.0104 USDだそうです。その差0.0032USD。750時間かけてみると2.4ドルちがう。円安の今はGoogle先生によると「2.4 アメリカ合衆国ドル は324.54 円」だそうです。クレカのレートで課金されることも考慮すると年間4000円は違ってきそう。というわけで、オレゴンにお引越しかなぁ。

今度こそまた来週、です。