このあとの展開
このあとは、 docker compose という別の管理の仕組みを取り上げてみたいと思います。 内容は、今までのシェルスクリプトを回すのと同じなんですけど、 書き方が違います
Infrastructure as a Code (IaaC) ?
この構築ガイドでは、 実行したい内容をシェルスクリプトに書き、 それを実行することで、毎回おなじシステムが起動してきます。 この半世紀のあいだ使われてきた伝統的な Unix らしいスタイルです。
そもそも Unix の起動も、 スクリプト群を動かすことで毎回おなじシステムが起動してくるようになっています。
Infrastructure as a Code (IaaC)って、そういうことじゃないの? この50年やってるんだけどなぁ、そんなことなら
現代的な話
そもそもUnixの起動方式がIaaCだとしても、
来週、データセンターに空のサーバ1万台が送られてくるから設定しないとね
という話になると、古典的なやり方そのままではどうにもなりません。 まぁ、 そもそも論で、そういう心配はクラウドを売ってるプロバイダや GAFAM の人たちの話なので、 たいていのSEには「そういう心配ごとではない」と言れそうですけどね;-)?
最近の環境構築であれば、 オンプレミスではなく、次のような条件が前提になるはずです。
- クラウドの利用は前提
- クラウドを API (コマンド)で叩いて遠隔操作可
- あるていど仕込みがある状態のOS(仮想もしくはコンテナ)
こういう前提のもと、 コマンド一発で毎回おなじ環境(サーバ群および仮想ネットワーク)を作るには? というテクニックを総称して最近のバズワード IaaC になるんだとおもいます。
あと、なにより、 シェルスクリプトだと長いソースコードは書きづらいし、 そもそもみんなシェルスクリプトが書けないし、 クラスとか抽象化とかできないのかよ!とか文句言われそうだし、 Ruby で書きたいんだよ!とか、 Unix なんて知らないよ!とか、 … そんなわけで、 Unix わからない人でも何とかなるツールってのが流行するわけですよ、 たぶんそういう話やと思います;-)
代表的なツール
- Ansible
- Chef
- Puppet
- Terraform (HashiCorp社)
- AWS CloudFormation (Amazon)