概要
EC2 Sysytem Manager は EC2 に専用のエージェントをインストールすることで外部からインスタンスの操作をできるようにする機能です
今回はエージェントのインストール方法と機能の一つである「コマンド実行」という機能を試してみました
環境
- ssm-agent 2.0.913.0-1
ロール作成
事前に「AmazonEC2RoleforSSM」ポリシーがアタッチされているロールを作成しておきます
EC2 インスタンス作成
EC2 インスタンスを作成します
作成するときのロールの設定先ほど作成したロールをインスタンスに割り当てるようにしてください
OS は Amazon Linux AMI 2017.03.1 (HVM), SSD Volume Type を選択します
VPC に入れる場合はインターネットからアクセスできるように DNS やゲートウェイ、サブネットの設定を行っておいてください
念のためインスタンスに SSH して動作を確認するためです
ssm-agent のインストール
System Manager を使うには専用のエージェントをインストールする必要があります
yum コマンドで簡単にインストール可能です
ssh -i your_key.pem ec2-user@ec2-xx-xxx-xxx-xx.ap-southeast-2.compute.amazonaws.com
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
インストールが完了すると /usr/bin/amazon-ssm-agent
というプロセスが起動しているのが確認できます
コマンドを実行する
エージェントのインストールができたらコンソールからシェルコマンドを実行してみましょう
今回はマネージメントコンソールから実行します
EC2 -> SYSTEM MANAGER SERVICES -> コマンドの実行を選択します
AWS-RunShellScript を選択しコマンドを実行するインスタンス選択します
タグもでも選択できるのコマンドを複数のインスタンスに一斉に実行することも可能なようです
そして、Commands の欄でシェルスクリプトを記載します
今回は以下とします
echo "hoge" > hoge.txt
これでコマンドを実行するとルート直下に /hoge.txt
というファイルが作成されているのが確認できると思います
aws CLI をインストールしている場合は CLI からでも実行することができます
aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids "i-0a61f7fc18311b89a" --parameters '{"commands":["echo \"hoge\" > hoge.txt"]}' --timeout-seconds 600 --region ap-southeast-2
最後に
簡単ですが、EC2 System Manager を試してみました
エージェントをインストールすればコンソールや CLI からインスタンスを操作できるのでわざわざ踏み台サーバや SSH ログインしないでもオペレーションできるようになるという機能かなと思います
他にも実行できるコマンドはたくさんあるので興味があれば試してみると良いかと思います
ちなみに ssm-agent は Github で公開されています
https://github.com/aws/amazon-ssm-agent
あと AWS に Opsworks という機能がありこれでも同じようにコマンド実行することができます
おそらく Opsworks の機能をインスパイアして EC2 で更に使いやすくした機能という位置づけなんじゃないかなと思います
0 件のコメント:
コメントを投稿