はじめに
作った。
とりあえず適当に0.1.0のタグをつけてリリースらしきことをしてみた。
これは何
雑な図がREADMEにありますが、NginxをAWS(EC2 instanceとして)上に作って、挙動をテストするリポジトリです。
モチベーションは何
社内ではNginxを結構派手に使っています。で、自前でもNginxを好きにできる庭が欲しい。しかし、Web application(ex. rails...)とのセットだと敷居が高い。ならば!terraform + ansible + infratasterでインフラCIを実現する学習用リポジトリを作ろう!といった感じです。
心がけてること
誰もがCloneして、すぐにドシャーって作って、ドシャーって壊せる。そしてForkしてアレンジして自分にあったものをすぐに試せる。そんな学習用リポジトリを目指したい。Nginx on AWS with CI/CDをシュっと試せる、そういう書籍で実際に動かすリポジトリ、といったイメージです。なので、ドキュメントもちゃんと作って、同人誌として出したいぐらいの気持ちもあります。
v0.1.0でできること
本当にシンプルで、最低限のところまでです。
- terraformでVPC上にEC2 instanceをdeploy
- ansibleでEC2 instanceにnginxをinstall
- infratasterでGETできることをテスト
こんなもんです。最低限。
今後
で、v0.2.0に向けて何すっかなーってのを考えるために今ここでブログを書いている、という次第です。
- nginxのソースコードビルド&ngx_mrubyのインストール
- CircleCIによるインフラテスト
- nginxの代表的なconfigとテスト
- ドキュメント作成
こんなもんかな。悩んでるのはCircleCIで何をやるか、といったところで、実際にdeployまでできればいいけど、それ以外でも普通に壊して作ったりしたい。毎回壊して作ってするか、それともテスト目的にするか、を悩んでる。テストだとしても、terraform部分のテストはやっぱり実際のAWSに対して打つしかできないと思うし、ansible/terraformのところもCircleCIコンテナでやるの、若干めんどくさいなーって感じ。targetをCIとそうでないときでわけないとできない気がする。
おわりに
Nginx Up and Runningというイキったリポジトリ名にしたからには使い倒せるような学習用リポジトリを目指したい。
シュっと試す。本を読みながらシュッと実行できるって、キャッチアップする人間にとってありがたいと思うんです。今時クラウド上で、CI/CDまでできて当たり前なので、誰かに役にたつリポジトリになればいいな、という思いで、少しずつ育てていこうと思います。