Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

動機

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 で実現されている様子。

https://dev.classmethod.jp/cloud/aws/ssm-session-manager-release/

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

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

https://docs.aws.amazon.com/cli/latest/reference/ssm/resume-session.html

ドキュメントには、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.

serima
サービス志向、組織志向なエンジニア。常に良くしていくマインドが特徴。
http://serima.co/blog
gamewith
GameWithは、ゲームをプレイされる皆様がより深くゲームを楽しんで頂ける環境を提供するべく設立されました。あなたがゲームをする時のお供になる。これが私達の目標です。
https://gamewith.co.jp/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした