aws로 고정 관리하지 않는 (auto-scaling) 서버에 peco로 선택하고 ssh하고 싶다 (.ssh/config 업데이트는 하고 싶지 않다)

2575 단어 aws-cliPecoAWS
프로덕션 웹 서버 등을 적당히 선택하고 ssh하고 싶을 때가 있었으므로 shell을 썼습니다.

개요




aws-cli , peco , awk 에 의존
웹 서버에 관한 tag Name(webB,webC)로 좁히기
웹을 실행하는 사람이라도 필터링 (state = running)
iam role 등에서 describe-instances를 실행할 수 있도록 해 둘 필요가 있습니다.
instance-id와 private-ip를 표시하고 있지만 private-ip만으로도 좋습니다.

.bashrc

# .bashrcに書き込めば使えるはず
function webssh () {
  host=$(aws ec2 describe-instances --filters "Name=tag-value,Values=webB,webC" "Name=tag-key,Values=Name" "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*].[InstanceId,PrivateIpAddress]" --output text | peco | awk '{print $2}' | xargs -n 1)
  ssh -i ~/.ssh/hoge.pem $host
}

aws-cli 부분
aws ec2 describe-instances \
  --filters \
    "Name=tag-value,Values=webB,webC" "Name=tag-key,Values=Name"\
    "Name=instance-state-name,Values=running"\
  --query \
    "Reservations[*].Instances[*].[InstanceId,PrivateIpAddress]"
  --output text

참고



AWS Cli 자체 팁
AWS CLI 필터 및 쿼리 사용법을 요약해 보았습니다.
AWS CLI를 사용하여 EC2 인스턴스에 대한 정보 얻기

좋은 웹페이지 즐겨찾기