一般的にクラウドシステムはイニシャルコストの小ささや、スケールのしやすさなどが評価されます。しかし、長期的に見ればクラウドシステムが持つ真の強みは、「運用負荷の低減」にあると言えるでしょう。運用タスクの自動化が進むことで、ITインフラの維持・管理にかかるリソースを小さくできるほか、属人的なスキルに依存した運用からも脱却できる可能性があります。ここではクラウド自動化の基礎知識やメリット、おすすめのツールなどを紹介します。
クラウド自動化の基礎的な仕組み
一口にクラウド自動化とは言っても、その内容はさまざまです。そこで、まず一般的なクラウド自動化の仕組みについて解説します。
クラウド自動化の仕組み
クラウド自動化は主に「IaC(Infrastructure as Code)によるインフラ構築の自動化」、「ツールによる運用の自動化」「CI/CDパイプライン構築の自動化」に分類されます。
IaC(Infrastructure as Code)による構築の自動化
IaC(Infrastructure as Code)とは、ITインフラ構築作業を手動ではなくコードによって行う方法です。あらかじめ生成しておいたコードが実行されることにより、インフラ構築・設定作業が自動化されるため、環境構築に関する工数が削減されます。具体的には、OS・ミドルウェアのインストールや設定、ユーザー情報の変更などをコード実行によって自動化します。クラウド活用では、ビジネスの成長やアクセス数に応じてシステムの規模をスケールアウトさせます。IaCによるインフラ構築の自動化は、迅速なスケールアウトに貢献するでしょう。
各種ツールによる運用の自動化
クラウド運用は、構成情報や仮想マシンの管理など、意外と手間がかかる作業が多いことが特徴です。こうした作業の工数を減らし、ランニングコストの低減に貢献するのがツールによる自動化です。運用自動化で使われるツールとしては「仮想マシンの自動作成ツール」「電源操作自動化ツール」「スケジュール自動化ツール」「構成情報の可視化ツール」などが挙げられます。
CI/CDパイプラインの構築
CI(継続的インテグレーション)およびCD(継続的デリバリー)の実現も、クラウド自動化のひとつです。CI(継続的インテグレーション)ではコードの変更・ビルド・テストまでを自動化し、CD(継続的デリバリー)ではテストが完了したコードを本番環境に適用するための作業(動作確認や環境の設定変更など)を自動化します。CI/CDパイプラインが構築されることで、何らかの機能改修が発生した場合でも、半自動的に改修・テスト・本番適用を進めることが可能です。
クラウド自動化のメリット
これら3つの自動化対策によって発生するメリットをまとめると、以下3点に集約されます。
- インフラ構成のコード化による検証、テスト、本番適用の自動化
- 運用負荷の軽減
- 開発と運用の一体化、継続的な改善とリリースの迅速化
近年は、プライベートクラウドやパブリッククラウド、マルチクラウドなど多様なクラウド活用が進んでいます。また、クラウドとオンプレミスの併用・使い分けも珍しくなくなりました。こうした活用方法の多様化で、運用面の負荷増大が深刻な課題になっているケースが散見されます。
例えば、新たな定型業務(仮想マシンの作成やリソース割り当て、構成管理業務)や複数のクラウドサービスを連携させるための管理など、オンプレミス時代には無かった業務が発生しています。また、クラウドシステム上では比較的簡単に仮想マシンを構築できるため、結果的にサーバー台数が増え、管理工数が増えてしまう可能性もあるでしょう。クラウド自動化はこうしたインフラ運用工数の肥大化を抑制する施策です。特にTCO削減の効果は目覚ましく、クラウド自動化で20%以上のTCO削減が確認できたという例もあるほどです。
クラウド自動化における課題
一方で、クラウド自動化にも課題があります。それは「自動化にかかるコストや契約」です。
一般的にクラウド自動化は、複数の自動化ツールを組み合わせながら進められる施策です。自動化ツールは外部のベンダーとの契約で導入する場合もあれば、自社開発で賄うこともあるでしょう。しかし、いずれにしても相応のコストがかかります。そのコストは決して小さいものではなく、回収できるまでに数年を要することも珍しくありません。
また、自動化ツールに対しての保守・サポート契約が必要になる可能性もあります。これらはクラウド自動化の強みであるTCO削減効果を相殺してしまうリスクもあるのです。
Azureによるクラウド自動化「Azure Automation」
そこで、クラウドプラットフォームが提供する自動化ツールに注目してみましょう。Azureでは、複数の自動化機能を必要な時に、必要な分だけ利用することができます。
Azure Automationでクラウド定型業務を手軽に自動化
Azure Automationは、Azure内で提供されているクラウド自動化ツールです。主に次のような機能を持ち、運用負荷軽減に貢献します。
・タスクの自動化
頻繁に実行する運用管理タスク作業の大半を自動化する機能です。設定作業や確認作業をRunbook(手順書)にまとめ、ジョブとして実行することで自動化を推進します。
・構成管理
システム内に存在する仮想マシンやサーバー、その他インフラ構成の変更を管理する機能です。
サービス、デーモン、ソフトウェア、レジストリ、ファイル全体までをチェックし、変更を自動的に追跡します。
・更新管理
Azure内はもとより、他のクラウドサービスやオンプレミスを含めて更新状態を可視化する機能です。
・共有機能
システム内で予定されているスケジュールの情報、モジュールに関する情報、変数、アクセス制御情報などを共有します。
・異種環境サポート機能
異なる環境をまたいで自動化を進めるための機能です。WindowsとLinuxをサポートするほか、外部のクラウドサービスやAzure以外の仮想マシンにも対応しています。
無理、無駄のないクラウド自動化の実現
Azure Automationは、時間単位の課金モデルを採用しています。そのため、自動化対策のコストを最小化しつつ、小さく確実な自動化を目指すことが可能です。例えば、常時実行ではない定型タスクの自動化を進める場合、極めて小さなコストで運用負荷を下げられるはずです。
また、環境をまたいだ自動化対策を進められることもAzure Automationの強みです。WindowとLinuxが混在する場合や、連携先システムにAzure以外のクラウドを使用している場合でも、包括的かつスムーズに自動化を進めることができます。
まとめ
今回は、クラウド自動化の具体的内容や課題、その解決方法を紹介しました。クラウド自動化はTCO削減効果が見込める施策です。一方、専用のツールやシステムを新規構築する場合には、そのコストが課題になることも少なくありません。クラウド自動化を進める際には、多機能で汎用性が高く、コスト面でも優れるAzure Automationの活用を検討してみてはいかがでしょうか。