はじめに
第1回ではシステム開発の自動化が増加している背景を「大規模開発の増加」と「ITエンジニアの不足」という2点に絞り「自動構築」を導入するメリットを紹介し、Ansibleを使って自動構築の手法を説明しました。
第2回の今回は、自動化の増加背景の一因である「クラウド」について少し詳しく紹介するとともに、「システム運用」の観点から自動化技術が必要となってきている理由を説明します。
IaaS
「IaaS」とは「Infrastructure as a Service」の略で「イアース」や「アイアース」と呼びます。「システムを構築・稼働させる上で必要なハードウェアリソースをインターネット経由でオンデマンドに提供するサービス」とよく説明されます。
具体的なサービス名を挙げると、「Amazon Elastic Compute Cloud」や「Google Compute Engine」などが有名です。インフラエンジニアが「クラウド」と聞くとIaaSを想像される方が多いと思われますが、この「オンデマンド」という説明が肝となってきます。
従来のITインフラ(オンプレミス環境)では一度システムを開発すると構成を容易に変更できませんでした。変更できるタイミングは、システムのライフサイクルが一周する時が主で、大体が数カ月~数年間運用してからです。その構成変更作業にしても検証を繰り返し緻密な計画を立てたりと、長期運用が当たり前でした。
しかし、IaaSを介したクラウドコンピューティングならば物理レイヤを考慮する必要がありません。オンデマンド、つまり必要な時に必要な分だけ物理リソースを確保できます。必然、システムのライフサイクルは柔軟になり、従来の固定リソースで長期運用するという前提が変わってきます。
さて、ここまでの説明ではIaaSとは単に物理ハードに掛けていたコストが削減できるという利点しか見出せません。せっかくIaaSを用いていても、従来通りの運用をしているようでは確かにその通りです。
オンデマンドにシステムの物理リソースが変更できるのならば、ユーザーのニーズにも柔軟かつ急速に対応できます。そのためには作業手順書をもとに手作業で行うのではなく、自動化ツールを使った運用が望ましくなってきたのです。
もちろん、IaaSではなくSaaS (Software as a Service)や「PaaS(Platform as a Service)」といったクラウドサービスを用いることで、そもそも運用作業を不要にするという選択肢もあります。しかし、SaaSやPaaSの組み合わせでは対応しきれない部分もでてきますし、スピード感にも欠けてしまいます。
SaaSとPaaSSaaS(Software as a Service)とはソフトウェアのみを提供するサービス。
PaaS(Platform as a Service)とはソフトウェアとミドルウェアを提供するサービス。
どちらもインフラレイヤについて考える必要はないため「運用」を無視できるがその分自由度は下がる。