Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

Organization

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

動機

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.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?