LoginSignup
2
1

More than 1 year has passed since last update.

ec2ssmが便利だと思う

Last updated at Posted at 2022-06-20

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

2
1
0

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
  3. You can use dark theme
What you can do with signing up
2
1