こんにちは!本日は、airClosetで日常的に使用している便利なコマンドラインツールをいくつかご紹介します。サーバー管理や効率的な作業のために役立つものばかりなので、ぜひ参考にしてください!
1. ssm-session-start: サーバーへの簡単ログイン
通常、サーバーにログインする際は、pem
キーを使用してSSH
接続を行うのが一般的です。しかし、複数のサーバーを管理していると、IPアドレスやインスタンス情報を覚えるのが大変ですよね。
ssm-session-start
を使えば、これらの情報を覚える必要がなく、選択するだけでサーバーにログインできます。
このツールは、AWS Session Managerを利用して自社で作成したものです。
スクリプト内容
以下のスクリプトを/usr/local/bin/ssm-session-start
として保存してください。
#!/bin/bash
if !(type aws > /dev/null 2>&1); then
echo AWS CLI をインストールしてください。
exit 1
fi
if !(type fzf > /dev/null 2>&1); then
echo fzf をインストールしてください。
exit 1
fi
export NAME_SSM2EC2=$(aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].Tags[?contains(Key, \`Name\`)].Value" --output text | fzf)
if [ -z "$NAME_SSM2EC2" ]; then
echo Exiting script.
exit 0
fi
echo Connect instanceName: $NAME_SSM2EC2
export ID_SSM2EC2=$(aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" "Name=tag:Name,Values=${NAME_SSM2EC2}" --query 'Reservations[].Instances[].InstanceId' --output text)
IDS=(`echo $ID_SSM2EC2`)
if [ "${#IDS[@]}" -gt 1 ]; then
echo $NAME_SSM2EC2 が複数のインスタンスに同一名で付与されています。
echo このツールは、複数のインスタンスに同一のインスタンス名が付与されている場合には対応していません。
echo インスタンス名が一意になるように統一してください。
exit 1
fi
echo Connect instanceId: $ID_SSM2EC2
aws ssm start-session --target ${ID_SSM2EC2}
使用方法
1> スクリプトの設置: 上記のコードを/usr/local/bin/ssm-session-start
として保存し、実行権限を付与します。
chmod +x /usr/local/bin/ssm-session-start
2> 前提条件: 対象インスタンスにAWS Session Managerがインストールされている必要があります。詳細はこちらの記事をご覧ください。
https://qiita.com/mksamba/items/6d7a0b84894578feafa8
3> 実行例:
ssm-session-start
実行すると、以下のようにインスタンスの一覧が表示されます。接続したいインスタンスを選択するだけで、自動的にログインできます!
2. fzf: インクリメンタル検索ツール
fzfは、Goで実装されたインクリメンタル検索ツールです。サーバー操作や日常のコマンド履歴検索など、さまざまな場面で便利に使えます。特に、コマンド履歴の検索機能がおすすめです。
コマンド履歴検索
通常、コマンド履歴を確認する際にhistory
コマンドを使うと、結果が見づらくて大変ですよね。fzf
を導入すれば、直感的に履歴を検索できます。
以下のスクリーンショットのように、簡単に過去のコマンドを見つけることができます!
3. ripgrep: 超高速テキスト検索ツール
ripgrepは、Rust製のテキスト検索ツールです。その名の通り、grepに似た機能を持ちながら、圧倒的な検索速度を誇ります。
使用例
特定の文字列を検索したいときに、以下のように使えます。
rg tableName
インストール
詳しいインストール手順は、公式GitHubページをご参照ください。
以上、今回はairClosetで日常的に使っている便利なコマンドラインツールを3つご紹介しました。これらを活用することで、作業効率を大幅に向上させることができます。ぜひ試してみてください!