CentOS-7の再起動時、Amazon SSM エージェントが立ち上がらなかった時の対応

# Amazon SSM エージェントがOS再起動時こける
AWSのEC2インスタンスでCentOS7を作成し、Amazon SSMエージェントを使うためインストールしたが、OSを再起動したらAmazon SSMエージェントがこけていたので、その対応した時の備忘録。

# 今回の環境
+ Amazon EC2 (Instance Type: t2.micro)
+ CentOS-7 (AMI ID ami-eec1c380)

# 再起動したときのエラー
```:/var/log/message
Jan  6 19:09:23 hogehoge2 systemd: Started amazon-ssm-agent.
Jan  6 19:09:23 hogehoge2 systemd: Starting amazon-ssm-agent...
Jan  6 19:09:23 hogehoge2 amazon-ssm-agent: 2017/01/06 19:09:23 Failed to load instance info from vault. RegistrationKey does not exist.
Jan  6 19:09:23 hogehoge2 amazon-ssm-agent: Error occured fetching the seelog config file path:  open /etc/amazon/ssm/seelog.xml: no such file or directory
Jan  6 19:09:23 hogehoge2 amazon-ssm-agent: 2017-01-06 19:09:23 INFO Starting Agent: amazon-ssm-agent - v2.0.562.0
Jan  6 19:09:23 hogehoge2 amazon-ssm-agent: 2017-01-06 19:09:23 INFO OS: linux, Arch: amd64
Jan  6 19:09:25 hogehoge2 amazon-ssm-agent: 2017-01-06 19:09:25 ERROR error fetching the region, Failed to fetch region. Data from vault is empty. Get http://169.254.169.254/latest/dynamic/instance-identity/document: dial tcp 169.254.169.254:80: connect: network is unreachable
Jan  6 19:09:25 hogehoge2 amazon-ssm-agent: 2017-01-06 19:09:25 ERROR error occured when starting core manager: Failed to fetch region. Data from vault is empty. Get http://169.254.169.254/latest/dynamic/instance-identity/document: dial tcp 169.254.169.254:80: connect: network is unreachable
Jan  6 19:09:25 hogehoge2 amazon-ssm-agent: 2017-01-06 19:09:25 ERROR error occured when starting amazon-ssm-agent: Failed to fetch region. Data from vault is empty. Get http://169.254.169.254/latest/dynamic/instance-identity/document: dial tcp 169.254.169.254:80: connect: network is unreachable
```
エラーが表示されているところで `Get http://169.254.169.254/latest/dynamic/instance-identity/document: dial tcp 169.254.169.254:80: connect: network is unreachable` とあり、ネットワークがまだ立ち上がろうとしている前にAmazon SSM エージェントが立ち上がろうとし、コケているのではと推測しました。

`ps`コマンドで確認するも、Amazon SSM エージェントのプロセスは無かったです。

# 対応
社内で「systemdの順序を定義してやれば、解消する気がしますね。」という話とともに、[Systemd メモ書き - Qiita](http://qiita.com/a_yasui/items/f2d8b57aa616e523ede4) の記事をもらいましたのでやってみました。

## やってみた
```:/etc/systemd/system/amazon-ssm-agent.service
[Unit]
Description=amazon-ssm-agent
After=network.target　←追記部分
  〜〜snip〜〜
```

# 結果、うまく動いた感じっぽ・・・
上記にある `/etc/systemd/system/amazon-ssm-agent.service` のファイルに、 `After=network.target` を追記してOSを再起動した。
そのときのログ

```:/var/log/message
Jan 10 12:38:25 hogehoge2 systemd: Started amazon-ssm-agent.
Jan 10 12:38:25 hogehoge2 systemd: Starting amazon-ssm-agent...
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017/01/10 12:38:25 Failed to load instance info from vault. RegistrationKey does not exist.
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: Error occured fetching the seelog config file path:  open /etc/amazon/ssm/seelog.xml: no such file or directory
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO Starting Agent: amazon-ssm-agent - v2.0.562.0
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO OS: linux, Arch: amd64
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO Initializing bookkeeping folders
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: datastore file /var/lib/amazon/ssm/i-XXXXXXXXXXXXXXXXX/longrunningplugins/datastore/store doesn't exist - no long running plugins to execute
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO Initializing bookkeeping folders for long running plugins
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO Initializing healthcheck folders for long running plugins
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO Initializing locations for inventory plugin
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO Initializing default location for custom inventory
Jan 10 12:38:25 hogehoge2 amazon-ssm-agent: 2017-01-10 12:38:25 INFO [instanceID=i-XXXXXXXXXXXXXXXXX] Create new startup processor
```
うまく動いたようです〜！
以下の様にプロセスも確認できました。

```
$ ps -ax | grep ssm
  756 ?        Ssl    0:00 /usr/bin/amazon-ssm-agent
```

# 最後に・・・
Amazon Linux （AMI ID ami-9f0c67f8）で同じ事になっているか同じように確認したのですが、こちらは `/etc/systemd/system/amazon-ssm-agent.service` を設定する事なく、デフォルトのままでOSを再起動をしてもSSMエージェントが立ち上がらないということは無いようでした。

理由はわかりませんが、こんな事もあったと言うことで、備忘録として記録しておきます。