ec2ssmが便利だと思う
某所でやっつけでつくったec2のNameタグをタブ補完してssmログインするツールを、引数にprofileを指定できるようにして汎用性をもたせました。
ssmの設定については、このあたりの記事を参照。
ec2ssmはこちら。
https://github.com/yuhiwa/ec2ssm
ssm自体の説明は他にまかせます。
ec2ssmはec2ssm Nameタグ
でec2にログインできるaws cli(aws ssm)のラッパーです。
使い方
1. Nameタグをインスタンスに設定する
分かりやすい名前をインスタンスのNameタグに設定しましょう。
2. ~/.aws/credentialsに記載する
# ~/.aws/credentials
[default]
aws_access_key_id=...
aws_secret_access_key=...
[myprofile]
aws_access_key_id=...
aws_secret_access_key=...
3. ec2ssmをインストールする
# cd ~
# git clone https://github.com/yuhiwa/ec2ssm.git
# cd ec2ssm
4. awscliとssmプラグインをインストールする
# sudo pip3 install --upgrade awscli
# curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip"
# unzip sessionmanager-bundle.zip
# sudo python3 sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin
# sudo pip3 install boto3 pexpect
5.zsh設定を編集する
~/.zshrc.localに以下を追記する
function ec2ssm { ~/ec2ssm/ec2ssm.py $1 $2 $3 }
function _ec2ssm { compadd $(cat ~/.aws_instances*) }
compdef _ec2ssm ec2ssm
6. Nameタグとインスタンスの情報を取得する
プロファイルごとにNameタグとインスタンス情報を取得する
ec2ssm update
ec2ssm update --profile myprofile
7. ec2ssmでssmログインする
ec2ssm test-ec2-01
ec2ssm my-ec2-01 --profile myprofile
意識が低いツールなので、第一引き数がupdateとNameタグの両方を兼ねている...
8. 環境変数にログインユーザとパスワードをセットすると自動で入力してくれる
export EC2USER=hoge
export EC2PASSWORD=password
ec2ssm test-ec2-01
ssmログインして、hogeユーザでログインできれば終了です!
ec2ssmスペース入力後、Nameタグ名はzsh補完がききます。
まとめ
全体の構成が以下の記事が読みやすかったので、参考にさせていただきました。
https://zenn.dev/koya/articles/0ee9ccc0561059
ec2sshが有名だったので、こちらも参考にさせていただきました。
https://github.com/mirakui/ec2ssh