Edited at

ECS上のgo製プログラムのプロファイル覗き見る

More than 1 year has passed since last update.

SSHトンネリングに必要な情報を得るための手順が多くて忘れるのでメモ。

うっかりsudo忘れる。


前提

goのpprofについては

とか

とか参照。

当然profiler動いてなきゃ話にならんので注意。


トンネリング


  1. ECSのタスク選ぶ

  2. instanceのIP見る


  3. sshで入ってsudo su -


  4. docker psで、対象サービスのコンテナ探してIDを確認

    $ docker ps -f name=api-server --format="{{.ID}}"
    
    123a456b78



  5. docker inspectで、対象コンテナIDからコンテナのIPアドレス取得

    $ docker inspect --format="{{ .NetworkSettings.IPAddress }}" 123a456b78
    
    172.17.0.1


  6. ssh抜ける



  7. localhostの適当なポートに、指定インスタンス経由でコンテナのプロファイラのポートをトンネリングさせる

    # ssh <instanceIP> -L <port>:<container IP>:<prof port>
    
    $ ssh 56.64.122.32 -L 9999:172.17.0.1:33680



プロファイラ見る

go tool pprof localhost:9999/debug/pprof/profile