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回実行するので、接続するまで、さらに遅いです。