IaCとは
直訳すると「コードとしてのインフラ」という意味で、ソフトウェア開発のプラクティスをインフラの構築プロセスに活かす方法です。自動化、バージョン管理、テスト、継続的インテグレーション、継続的デプロイといったソフトウェア開発におけるプラクティスを、インフラリソースの構成管理に適用する方法論の総称のことを言います。
大前提システム開発の流れを抑え、自動化をすることによるメリットを押さえる必要があります。
<システム開発からリリースまでの流れ>
①開発環境でコーディング作業
②検証環境でテスト
③ステージング環境で本番動作の確認
④本番(プロダクション)環境でサービス提供開始
<自動化をするとは>
下記のようなツール上で、テンプレートと呼ばれる YAML、JSON、hcl 形式の構成定義ファイルを記述することで、インフラの構成管理をすることができます。これにより、上記のステージごとでのCI /CDツールを用いて継続的デリバリーを可能にすることができます。これを自動化するといいます。
<コード化のためのツール>
Terraform、ansible、cloud formation(AWS専用)、cdk、chefなど。
※TerraformとCloudFormationは「AWSの構成管理」を責務としているが、Ansibleはその2つとは違い「OSより上の構成管理」を主に責務としているため、クラウドとDockerを使うと使用する機会が少ない
<コード化(自動化)するメリット>
インフラをコード管理しているので、ステージング環境と本番環境を全く同じように構築することができます。ステージング環境はテスト環境として使用して、バグが取れたら本番環境に適応すれば、本番とステージングは環境が同じなのでバグが出ません。これにより、時間やコスト、作業上のミスなどの課題を解決することができるのです。
以上になります。
DevOpsなど開発にスピードを求められる昨今のIT環境下では今後欠かせないものとなっていくものと思われます。活用できればインフラ管理業務の負荷を大きく軽減できます。
この記事が気に入ったらサポートをしてみませんか?