コース: DevOpsの基礎

今すぐコースを受講しましょう

今すぐ登録して、23,700件以上登録されている、業界エキスパート指導のコースを受講しましょう。

Infrastructure as Code(IaC )とは

Infrastructure as Code(IaC )とは

システム管理は、 インフラストラクチャアズ コードの登場で 自動化が進みました。 IaC(アイエーシー)とも呼ばれ、 インフラを開発コードのように 運用管理できる手法です。 開発と運用が別々だと、お互いの手法や 知恵は共有されません。 例えば、開発チームでコード管理に ソースコントロールを使わなければ、 気でも違ったかと思われます。 異常ですね。 それぐらい当然ということです。 これに対し、運用チームは ソースコントロールをほとんど使いません。 それから、システムもコードとして 扱う手法が生まれました。 総合開発環境でコードを開発し、 単体テストと結合テストを 継続的インテグレーションの一環として 実施し、デプロイします。 決定も状態に応じて自動化します。 これらを実現するのがIaCです。 ツールによっては、サーバーの構成を 完全自動で行い、仮想サーバー、 クラウドサーバー、コンテナの構築、 変更、削除をプログラミングできます。 IaCの例を見てみましょう。 画面はAmazonウェブサービスの コードです。 使用するシステムは、 CloudFormation(クラウドフォーメーション) と呼ばれるテンプレートに JSON(ジェイソン)形式で記述します。 アセットはソースコントロールに 登録されて、システムの構成を 正確に反映する資料として、 誰でも見ることができます。 開発環境、ステージング環境、 本番環境が完全に同一かどうかも 確認できます。 手作業やUI(ユーアイ)を 極力排除して、インフラをモデルに 定義するか、 RESTAPI(レストエーピーアイ)を 実行するコードで動かします。 これをソースコントロールに登録すれば、 継続的インテグレーションのパイプラインに 沿ったテストとデプロイができます。 本番システムに直接ログインしてコードを 変更する蛮行は誰もしません。 遠い過去の話ですね。 それはシステムでも同じことです。 IaCで難しいのは、意識を変えることです。 新しい分野なので、古い習慣は 通用しませんし、 ノウハウの共有も困難です。 ある大規模なIT組織で、 ネットワーク刷新のプロジェクト管理を 請け負った時のことです。 計画はこうでした。 アプリケーション、 データベース、サーバー、SAN(サン)、 ネットワークの順に停止し、…

目次