先日参加した JAWS Festa 東海道 2016 でawspecの作者がawspecと構成管理ツールとの用途比較をされていて、僕の中でも使えそうと思ったので個人的整理とメモとして残します。

awspecとは

ここ参照してください。

https://speakerdeck.com/k1low/inside-of-awspec-awswotesutosurufang-fa-sositesofalsezhong-falsehanasi

初期構築段階のお供に

CloudFormationやTerraformなどの構成管理ツール側で冪等性が保たれるのでテスト不要論はわかる。
が、しかし、テストが不要かというと、そうでも無い難しい問題。
(手作業ならテストは大事だよね・・

運用中のお供に

定期的にあるべき姿を保っているか、外形監視的に使うのは大賛成。
複数人(複数社)で管理してる場合に意図していない変更を管理するのは重要。(Configでも良いのでは?
Terraformとかを常時ぶん回すには破壊的行為をしないか超心配だが、awspecならreadなので安心してまわせる

プロジェクトを横断してチェックをかける

構築時、運用中問わず、自社ポリシーに適合してるかどうか。のチェックは重要だと思うのでこれもアリだと思う。
例えばSSHが0.0.0.0/0で開放されていないか。とかバックアップタグがあること。など。(Configでも良いのでは?

(これが一番ハマった)アジャイルな感じで構築している場合のテスト

ウォーターフォール的に構築してる場合は、設計書やパラメータシートに基づきテスト仕様書を作れば良いが、短納期でバシバシ変更を加えるようなアジャイル的に構築してる場合は、最終的なパラメータは順次決まっていく。

都度テスト仕様書に起こして、都度テストするのも辛いし、最終的に忘れずにチェック出来てるか管理するのも結構辛かった。整合性も取れているか不安要素。

awspecを使えば、随時決まる最終要件をテスト仕様書ではなくawspecに落として(都度や)リリース前にチェックをかければ、随時決まっていった要件を漏れずにテスト出来るのでは。と思った。
(awspecをテスト仕様書にしちゃいなよ)

インフラもアジャイルでTDDが出来そう

クラウドならインフラもアジャイルで作れてTDDも出来るなー。とawspecの良さを感じたメモでした。

他に良さげな使い方があればコメントください

最後に

海外からもプルリクがよく来るみたいで、無いものがあればプルリク待ってます。とのことだったので、
必要なものがあればどしどしプルリクしちゃいましょう!

https://github.com/k1LoW/awspec

元記事はこちら

awspecの活用方法を考えてみた(インフラにもTDDを【cloudpack大阪ブログ】