AWS SSM Automation RunbookでHello World!を出力する

# はじめに
AzureのAutomationを試した内容を記事にしました。

https://zenn.dev/arbr/articles/19994b62d63ea3

AWSで同様のサービスである、AWS Systems Manager Automation Runbookも触ってみました。
最も単純な例として上記記事と同様、"Hello, World!"を実行するだけの例をまとめました。


# 概要
AWS SSM Automation Runbookは以下のように動かします。

1. ランブックの作成
1. ランブックの実行

Azureと違って、Automationアカウントのようなものもありませんし、ランタイム環境もAWS指定の中から選ぶだけです。


# 参考
https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-document-script-considerations.html


# やってみた
AWS SSM Automation Runbookは、[変更管理ツール]-[自動化]から始めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/4d0dab8c-d55b-4bba-aaaf-f3fd5204f18f.png)


## ランブックの作成
`Create automation runbook`から始めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/bc89aee4-3880-4ad7-a5f5-09d8277af9f7.png)

左上のところでランブックの名前を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/755e58a0-a32c-43fe-bc33-a8c9294f47a2.png)

スクリプトを指定するので、「スクリプトを実行」ステップを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/87da1d94-ff8d-4447-a837-0fe813b9941a.png)

最初から入っていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/0bb90059-f2c0-4505-9b13-17d9c110e688.png)

PowerShellにして、`Hello, World!`にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/31245d14-8965-42a9-a05c-5d8063b27004.png)

ランブックを作成　して保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7c5605d2-b494-4add-8390-3f39b6c04bb3.png)

レコメンデーションが出ますが、無視して作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/d053fb91-d6c4-4b07-bd0e-259e0b7d3208.png)

作成すると、Automationでランブックを実行する画面に遷移します。ここでは一旦戻ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7f19d8ce-e29b-421f-97dd-9f86909c2271.png)

:::note info
作ったランブックを編集するには、ドキュメントから遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/8903a890-211b-4a89-8b3a-0280a46d399e.png)

:::

## Automation実行
`Execute automation`から始めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/fedc4e4f-3729-4e3f-a1c6-4ea3630ea748.png)

ランブックを選ぶ際に、先ほど作成したランブックを指定します。`Owned by me`タグを選択すると、先ほど作成したランブックが表示されます。
右上の"〇"をクリックして選択し、フォーム右下のNEXTで遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/44dd16e3-61c2-402c-9e30-1256ebf73f3f.png)

ただ実行するだけなので、`Simple execution`を選び、`Execution`ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7840d021-16e4-4a16-9684-5dc945060d05.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/20f47c02-bc37-415d-af51-af6cb45c6686.png)

完了を待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7415c3ce-8e49-41bb-b2ca-e51aa5f43b21.png)

完了した後、詳細から結果を確認できます。"Hello, World!"が出力されたことを確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/31ef526b-3d90-4416-9a64-5b1d959bfade.png)

:::note warn

スクリプトに何かあった場合、以下のようなエラーが出ました。同じエラーが起こった場合、スクリプトを疑ってみてください。

```
Conversion from JSON failed with error: Unexpected character encountered while parsing number: �. Path '', line 1, position 1.
```

:::

# おわりに
今回はAWSにて、SSM Automation Runbookを使ってみました。
Azureと違って、デザイン画面から構築できる機能があり、開発を補助してくれます。Step Functionsとどう使い分けるのかは考えどころと思います。

この記事がどなたかのお役に立てれば幸いです。