Upgrade to Pro — share decks privately, control downloads, hide ads and more …

狂気!AWS CloudShell細胞分裂!

greymd
December 29, 2020

狂気!AWS CloudShell細胞分裂!

2020/12/29 AWS CloudShell おもしろ選手権で発表した内容です。
https://connpass.com/event/199259/

greymd

December 29, 2020
Tweet

More Decks by greymd

Other Decks in Technology

Transcript

  1. 狂気!AWS CloudShell細胞分裂!
    grethlen
    2020/12/29 AWS CloudShell おもしろ選⼿権

    View full-size slide

  2. $ whoami
    ぐれさん
    Twitter: @grethlen
    GitHub: @greymd
    シェル芸⼈
    ↓ の作者

    View full-size slide

  3. tmux 使ってますか?
    tmux on AWS
    Cloud9 の Terminal では残念な状態
    CloudShellではなんとデフォルトで⼊っている!
    分割してもレイアウト崩れず
    どんどん使えという中の⼈のメッセージと理解

    View full-size slide

  4. tmux-xpanes
    tmuxの端末分割を超絶楽にできる xpanes
    コマンド
    Bash 3.2〜5.xで動く超ポータブルコマンド
    私が作者です(GitHub:greymd/tmux-xpanes)
    EPEL登録済み、ぜひ御社でも
    CloudShellでもこの通り
    $ sudo amazon-linux-extras install epel -y
    $ sudo yum install xpanes -y
    ###
    必要なら HOME
    以下に退避
    $ cp /usr/bin/xpanes ~

    View full-size slide

  5. 何分割できるのか?

    View full-size slide

  6. 制限
    tmux
    当然、1(⾏ or ⽂字)より低い幅はできない
    CloudShellの制限はあるか?
    端末サイズは上限なさそう
    ウィンドウを⼤きくすると stty size
    も⼤きくなる
    ulimit
    の max user processes
    は無制限( unlimited

    = コンテナのリソースが許す限り分割できそう

    View full-size slide

  7. 何プロセスくらい⾛るのか(1/2)
    端末1:
    $ yes 'sleep 1000 &' | sh
    端末2:
    $ ps ax | nl
    8,600 プロセスくらいまでsleepは動かせた
    それ以上では動作が重すぎて話にならず( ps
    すら⽌まる)
    数千のオーダーで性能限界が来るっぽい

    View full-size slide

  8. 何プロセスくらい⾛るのか(2/2)
    皆さんの関⼼
    => ⼀般的なユースケースのコマンドがどれくらい並列で使えるか
    ssh
    セッションマネージャ
    ojichat
    $ xpanes -sc ojichat {1..100}
    => ojichatを 100 分割して実⾏

    View full-size slide

  9. ちなみに
    セッションマネージャは40分割での利⽤くらいが限度でした

    View full-size slide

  10. 結論
    CloudShellは並列作業に便利!
    tmux と xpanes が使える
    端末サイズとコンテナのリソースが許す限り画⾯分割して動かせる
    ただし……そこそこの処理をするコマンドの動作は分割しすぎると苦しい
    数⼗程度の規模が限度
    AWS CLI + セッションマネージャ: 40分割〜あたりからプロセスが落ちる
    ojichat: 100 を超えると動作が極めて遅い上に精神的にも⾟い

    View full-size slide