見出し画像

Terraformでインフラ構築を自動化

Infrastructure as Code(IaC)

という言葉を聞いたことはありますでしょうか。

システムを稼働させるためには
システムを動作させるための
サーバーを構築したり、ネットワークの設定を行う必要があります。

このような作業をまとめてインフラ構築と呼び、
これまでは一つ一つ手作業で行っていました。

例えば、クラウド上で
サーバーを構築する際は
仮想マシンとしてCPUやメモリ量を調整したり
OSはWindows Serverをインストールしたり、
IPアドレスを設定したり、
Firewallを設定したりします。

このようなインフラ構築を自動化(コード化)する仕組みが
Infrastructure as Codeです。

一度、コード化しておけば
本番サービス中と同じ環境を短時間で構築できたり、
コードのバージョン管理を行うことで、
いつどのような変更を行ったかを追跡することができます。

このようなInfrastructure as Codeを実現する
ひとつのツールとしてTerraformがあります。

Terraform

AzureにはARMやBicepなど、インフラ構築を自動化する仕組みがあり、
AWSにはCloudFormationという仕組みがあるのですが、
それぞれ独自仕様のため、
AzureのARMの技術でAWSのインフラは構築できませんし、
逆もまたしかりです。

TerraformについてはAzureやAWS、さらにはGCPも
管理できますので、Terraformをマスターすれば、
複数のクラウドに応用がきくようになります。

Terraformでこんなことができる

Windows Serverがメインで動いている環境だと
Active Directoryを用いて、マシンの管理や
ユーザの管理など行っていると思います。

Active Directoryは便利なようで、
システムのテスト時はいろいろと制約となり、
本番環境と同じテスト環境が作れないことが
よくあります。

しかし、TerraformでAcitive Directoryの構築から
Acitive Directoryに管理されるサーバの構築まで
すべて、自動化しておけば、
テスト環境をすぐに準備することができます。

下記のURLで紹介されている
Terraformのソースコードを利用すると、
30分程度で
Active Directory 1台
メンバーサーバ1台
の構成が出来上がりました。

今後はできるだけ、自動化、コード化して
インフラを管理していきたいなと考えています。

最後に

数年前のインフラエンジニアは
シェルスクリプトが少し使える程度の
プログラミング力でよかったのですが、
最近ではそうも言っていられないなと
ひしひしと感じます。

この記事が気に入ったらサポートをしてみませんか?