Fargateインスタンスでデバッグしたかった
ECS ExecでSSH的なことができるとのことなので、すげー助かる!と思ってネットの情報で設定したがうまくいかない。
そしたらチェッカー(AWS製に見える)という素敵なものがあると知って実施したが、チェッカー自体がエラーになってハマった。。。
上記readmeをできるだけ読んでcheck-ecs-exec.shを実行したら途中で下記エラーになった。プルリクにもそれっぽい修正入ってるぽいけど、それでも不十分だったので自前で直して実行。
An error occurred (InvalidSubnetID.NotFound) when calling the DescribeSubnets operation: The subnet ID '' does not exist
せっかくなので、プルリク(初!)も作成した。
結局ECS Execでつながったが
このコンテナはパブリックIP振っていないので、いろんなエンドポイントの追加が必要で、それが漏れてたのが原因だった。チェッカーも通ったように見えた後でもつながらず四苦八苦したのだが、どうやらFargateコンテナ再起動が必要だったぽく(理由は不明)、再起動との合わせ技で解決。
詳しく内容出力してくれるのでオススメ。
上記のようなエンドポイントが不足している以外にもいっぱい教えてくれる。今回はエンドポイントssmmessagesが抜けてるとか教えてくれた。が、追加後再起動せよとは教えてくれなかった。
また、今回のFargateコンテナはプライベートサブネットに配置しているせいか、そこにECS Execをすると、たまに内部エラーになることも分かった。これについては、何度かECS Execの接続をやり直しているとつながるって感じ。