aws-cliを使ってEC2インスタンスに接続するの面倒くさいので、簡単に接続できるようにMakefileを書きました。
タグで特定のenvironment
の稼働中インスタンスの名前とインスタンスIDをpecoに渡して、選択したインスタンスIDをHOST
に入れてます。
ssm-ec2: echo "start session manager in ec2..." $(eval HOST = `aws ec2 describe-instances --region ap-northeast-1 --output json --filters "Name=instance-state-code,Values=16" --filters "Name=tag:environment,Values=xxx" | jq -r '.Reservations[].Instances[] | [.Tags[] | select(.Key == "Name").Value][] + "\t" + .InstanceId' | sort | peco | cut -f 2`) aws ssm start-session --target $(HOST)
aws-vaultを使うとこんな感じ。
aws-vault exec <profile> -- make ssm-ec2
おしまい。