search
LoginSignup
1

posted at

updated at

ec2ssmが便利だと思う

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1