コスト削減と同時に効率性向上も実現
続いて「共通化」について見てみよう。インフラ構築業務は専門的な領域ではあるものの、似たような作業の繰り返しが多い。微妙に違いがあるものの、大枠では同じだったりする。そこで環境構築の共通化を進めることで、コスト削減を実現していくことができる。
もし環境をコードで定義していれば再利用が可能だ。たとえばある案件では、以前構築した案件(AWSのEC2でVMを構築する)とほぼ同じだが、メモリとCPUの設定値が少し違うとする。全体としてはほぼ同じなので流用ができて、一部の設定値だけ置き換えていけばいい。
さらにTerraformでは環境を部品化することが可能であり、これを「モジュール」と呼ぶ。部品化すると、次からはモジュールを呼び出すことで似たような環境を簡単に複製していくことができるし、共通部分は部品化しておくことで、以降の生産性が高まる。
最後は協働化(コラボレーション)について説明しよう。Terraformのモジュールは自社が作成したものだけではなく、オープンに公開されている「パブリックモジュール」という社外の誰かが作ったものを使うこともできる。広い目で見れば、似たような作業をしている人がどこかにいるものだ。誰かの知見を共有(享受)できるのはオープンソースの強みでもある。インフラのコードを通じて組織を超えたコラボレーションができて、労力やコスト削減にもつなげることができる。
またTerraformの実行環境がSaaSで提供されるTerraform Cloudを使うと、GitHubなどのレポジトリと組み合わせることもできる。たとえばTerraformのコードをGitにコミットすると、自動的にTerraform Cloudで処理が走り、レビューを経てクラウドのインフラ構築を自動化することもできる。DevOpsやCI/CDをインフラ構築にも広げるようなイメージだ。環境構築におけるコラボレーションも実現できる。草間氏は「Terraform Cloudを活用することでチームやメンバー間のコラボレーションがより進み、運用の効率化も図ることができます」と補足する。