#意外と忘れるコンテナ接続
本番環境のコンテナに入ってDB操作したりデバッグしたり...
久しぶりにやろうとしたらど忘れしていたのでこの記事を書くに至りました。
#接続までの手順
- セキュリティーグループのインバウンドルール変更
- EC2インスタンスのPublic IP / Public DNSを確認
-
ssh -i /path/to/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
コマンドでECSコンテナにssh接続
#それでは始めます
##インバウンドルールの変更
EC2
> セキュリティーグループ
> 該当のセキュリティーグループ
> インバウンドルールを編集
ssh
タイプのソース
を「 マイIP 」に変更する
この変更をしていないと後でssh接続したとき以下のエラーが出るため必要な手順です
ssh: connect to host [自分のPublic IP] port 22: Connection refused
##Public IP / Public DNSを確認
Elastic Container Service
> クラスター
> ECSインスタンス
コンテナインスタンス
> 該当のインスタンスを選択
詳細
> 「 Public DNS 」をコピーする
##ECSコンテナにssh接続
以下のコマンドを使用します
$ ssh -i /path/to/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
キーペアはパスを指定する必要があります。
例えば私は~/.ssh
下に配置しているので下記のように指定します
$ ssh -i ~/.ssh/my-key-pair.pem
次に前の手順でコピーしていたPublic DNSをその後に書いてあげましょう
##接続するとき
以下のような表示が出ますが落ち着いて読みましょう
Are you sure you want to continue connecting (yes/no/[fingerprint])?
「 yes 」で大丈夫です。
その後はこのような表示が出ましたでしょうか。
__| __| __|
_| ( \__ \ Amazon Linux 2 (ECS Optimized)
____|\___|____/
#お疲れさまでした
ここまで読んでいただきありがとうございました。
簡単な手順ではありますが、久しぶりにやると忘れているものです。
#参考
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/instance-connect.html