環境
OS:Windows Server 2016 Datacenter
SSM Agentバージョン:2.3.542.0
やりたかったこと
SSM Run Commandを実行してEC2(Windows OS)上にあるファイルをS3にアップロードしたい。
実行したドキュメントはAWSが用意している AWS-RunPowerShellScript
commandsパラメータとして
"aws s3 cp s3://hogehoge/fugafuga.csv {file_to_path}/fufafuga.csv"
を渡して、{file_to_path}/fufafuga.csv
を S3バケット hoghoge
上にアップロードしたいという非常にシンプルなもの。
事前準備
EC2上でRun Commandを実行するために必要な
- SSエージェントのインストール
- EC2への権限の付与
などは
【AWS】【SSM】Systems Manager の SSM エージェントをインストールその他設定して Systems Manager から認識されるようにする設定手順【Windows】
【公式】Systems Manager Run Command を使用してコマンドを実行
などに十分たくさん書いてあるので、それらを参考にお願いします(適当すいません)
なにが起きた?
問題なく実行できるだろうなーと思ってドキュメントを実行したら異常終了。
ログを見てみると
用語 'aws' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
「あーSSMエージェント用のユーザーがAWS CLI見れていないんでしょ、どうせシステム環境変数にパスが入ってないやつね」
とおもって環境変数を確認に行くと
ちゃんとシステム変数に登録されてらあ。
結論
SSMエージェント再起動したら無事正常終了するようになりました。
Stop-Service AmazonSSMAgent
Start-Service AmazonSSMAgent
たぶんですが、
- エージェントのインストール
2.AWS CLIのインストール
っていう順番で行っていたので、エージェントの再起動が必要だったみたいですね。
そりゃそうかなあと思う内容ではあるものの、結構はまってむかついたので記事にしてみました。
まとめ
困ったときの再起動ですね!(最強)