イミュータブルインフラストラクチャ(Immutable Infrastructure)とは?
Photo by Sajad Nori on Unsplash
株式会社GEEX(ぎーくす)システム部の山口です。
今回、私が携わっている仕事の中からイミュータブルインフラストラクチャについて少しお話ししようと思います。
現在、PaaS、IaaS層の基盤構築自動化検討を担当しているのですがその中でイミュータブルというキーワードが登場しました。
今まではアプリケーションやミドルウェアなどで度重なる更新やパッチ適用をするたびに本番環境や開発環境に直接修正を加えて正常稼働することを確認したり、もし問題が発生すれば、どこに問題があるのか問題の切り分けをしたり、場合によってはリカバリ作業をする必要があり、システムもどんどん複雑化して作業者の負担が大きい状態でした。
この事態を解消する手段がイミュータブルインフラストラクチャ(Immutable Infrastructure)であり、イミュータブルとは「不変」という意味を指します。
つまりは構築した環境に対してバグ修正やパッチ適用などの管理は行わず、「構築した環境は絶対に変えないこと」がイミュータブルインフラストラクチャの考え方です。
イミュータブルインフラストラクチャでは同一構成の本番環境と開発環境の2系統を用意して、開発環境で十分なテストを実施して問題ないと判断できたら
本番環境と開発環境を入れ替えて新本番環境として稼働させて、旧本番環境は捨てます。
今までは構築したシステムに対して長い年月をかけて環境ごとに更新し続けてきて、その変更情報を管理してきましたが「使い捨て」という考え方を取り入れることで、開発環境では正常稼働していたのに本番環境では正常稼働しないという事態も無くなり運用負荷も削減できます。
【最後に】
イミュータブルインフラストラクチャ自体は数年前から存在していたキーワードですが知識だけではなく、現在担当しているプロジェクトの中で実装に向けて検討を進めています。
私が担当している仕事以外でも気になるキーワード(技術)があればストーリーの中でお伝えしていこうと思います。