EC2にSSHするときのメモ
概要
EC2にお気軽に接続するためのメモ
手順
依存パッケージのインストール
$ brew install direnv awscli peco
環境変数の設定
direnvを使ってプロジェクトごとに環境変数を設定する
プロジェクトのルートに下記のファイルを作成
.env
AWS_ACCESS_KEY_ID: <YOUR_AWS_ACCESS_KEY_ID>
AWS_SECRET_ACCESS_KEY: <YOUR_AWS_SECRET_ACCESS_KEY>
AWS_REGION: ap-northeast-1
AWS_DEFAULT_REGION: ap-northeast-1
AWS_DEFAULT_GATEWAY: manage.myapp.dev
.envrc
if [ "$(type -t direnv_load)" = 'function' ]; then
dotenv
fi
SSHの設定を追加
踏み台サーバを経由して各インスタンスにアクセスする
/etc/hosts
xxx.xxx.xxx.xxx manage.myapp.dev
~/.ssh/config
Host manage.myapp.dev
IdentityFile ~/.ssh/id_rsa_myapp
User ec2-user
Host manage.myapp.dev/*
ProxyCommand ssh -W "$(basename "%h")":%p "$(dirname "%h")"
IdentityFile ~/.ssh/id_rsa_myapp
User ec2-user
接続用スクリプトの設置
接続用のスクリプトを作成する
スクリプトはどこかで拾ったやつを若干手直ししたもの
リンクを貼りたかったんですが、コピペ元が見つからなかった
ごめんなさい
~/usr/local/bin/ec2ssh
#!/bin/bash
SSH_COMMAND="ssh ${AWS_DEFAULT_GATEWAY}"
DESCRIBE_COMMAND=$(cat << EOS
aws ec2
--output text
describe-instances
--query
'sort_by(Reservations[].Instances[].{InstanceId:InstanceId,Tags:Tags[?Key==\`Name\`].Value|[0],InstanceType:InstanceType,State:State.Name,Ip:PrivateIpAddress},&Tags)'
EOS
)
IP=()
COUNT=1
IFS=$'\n'
SERVER_LIST=$(eval $DESCRIBE_COMMAND)
for line in $SERVER_LIST; do
IFS=$'\t'
set -- $line
IP=("${IP[@]}" $3)
LIST=$LIST"$COUNT: $5 $3 $4 $1 $2\n"
(( COUNT++ ))
done
RET=$(echo -e "$LIST" | column -t -s " ")
if type peco > /dev/null 2>&1 ; then
SELECTED="$(echo $RET | peco)"
IFS=$':'
set -- $SELECTED
ITEM=$1
else
echo $RET
echo -n "number? : "
read ITEM
fi
if expr "$ITEM" : '[0-9]*' > /dev/null ; then
if [ 1 -le "$ITEM" -a "$ITEM" -le $COUNT ]; then
(( ITEM-- ))
eval "${SSH_COMMAND}"/"${IP[$ITEM]}"
fi
fi
EC2に接続
プロジェクトのルートで以下のコマンドを実行
$ ec2ssh
Author And Source
この問題について(EC2にSSHするときのメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/cohakim/items/2fcf7cb6848037d3388c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .