2021年7月3日土曜日

EC2インスタンスのタグ(Name)とSSMでSSHしてみる

 

EC2インスタンスのタグ(Name)でSSHしてみたいと思います。


まず、SSMで ssh できることを確認します。

セットアップの手順は下記ページを参考にしてください。


~/.ssh/config は下記のとおり。

Host i-* mi-*
    ProxyCommand sh -c "aws ssm start-session --profile sandbox --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"


下図のようにssh接続します。

aws-cliを実行するので、接続するまで、少し遅いです。


こんどは、~/.ssh/config は下記のようにします。

"--target" に指定するインスタンスIDを aws-cli で検索します。

なお、%h は大文字を小文字に置き換えるので、EC2インスタンスのタグ(Name)は、アルファベット小文字にしないと失敗します。

Host sbx-*
    ProxyCommand bash -c "aws ssm start-session --profile sandbox --target $(aws ec2 describe-instances --profile sandbox --filters "Name=tag:Name,Values=%h" "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].InstanceId" --output text) --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"


下図のようにEC2インスタンスのタグ(Name)でssh接続します。

aws-cli を2回実行するので、接続するまで、さらに遅いです。