6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Session Manager (cli)におけるネットワーク切断時の挙動

Posted at

動機

AWS Session Manager を使うと、踏み台サーバが不要になる。
踏み台サーバを利用する場合は、不意に ssh 接続が切断されてしまった場合に備えて踏み台サーバ上で tmux や screen などのターミナルマルチプレクサを利用することが多かったと思うが、Session Manager の場合は不意にネットワークが切断されてしまった場合にどのような状態になるのか気になった。

結論

自動的に再接続され、ネットワークが切断されていた間の出力も失われない。

実験結果

以下は、手元の Mac から aws ssm start-session --target i-xxxxxxxx した直後の画面。
そこで、while sleep 1; do date ; done というワンライナーを実行した。(1 秒毎に date を実行)
その途中で、意図的に Wi-Fi を切断すると出力が止まる。
数秒後に、Wi-Fi に再接続すると、その間に実行されていた date の結果もごそっと出力される。

session_manager.gif

調査メモ

resume-session という API が存在する

aws-cli で、aws ssm resume-session --session-id xxxxxxx などとするとレジュームできるのかと思って試してみた。
出力のひとつの StreamUrlwss:// で始まる URL となっており WebSocket で実現されている様子。

一言で言えば、「EC2インスタンスにSSH・RDPで接続せずにブラウザ上からCLI操作ができる機能」です。ブラウザがSSHクライアントとして動作している訳でなく、制御はSSMによって実現されています。

SSM が WebSocket を扱っているイメージでしょうか。

ドキュメントには、Note として以下のような記載があった。

This command is primarily for use by client machines to automatically reconnect during intermittent network issues. It is not intended for any other use.

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?