Managed Service Column <システム運用コラム>

運用設計の考え方と取り組み事例

Category: 運用設計編

2021.02.09

システムのクラウド移行が加速する中、「クラウドサービスを活用しているが、クラウド毎に個別に監視・運用をしているため、運用が煩雑化している。どうすればよいか?」「オンプレミスとクラウドを併用することになり、運用管理体制を見直したい」といったお声をいただくことも多くなりました。

システムは構築して終わりではなく、安定稼働するための運用が重要です。そして、システム運用の品質を担保しながら効率を上げていくためには、運用設計が必要となります。

この連載では、運用設計の考え方やの取り組みについて、事例も交えて紹介します(全12回)

構成管理とは

はじめに構成管理とは何か、についてお話します。
構成管理とは、システムを構成するハードウェアやソフトウェアが稼働する環境の情報を常に最新の状態で管理していくことです。最新の状態を管理する、すなわち管理された情報の確かさがシステムを運用して行くうえ重要となるということです。

では、構成管理された情報は どのような目的で使われるのでしょうか?

システムの安定稼働のため、構成の最新情報を管理する

  • 問題の原因分析を特定するための基礎情報
  • 障害発生時の影響範囲を特定するための基礎情報
  • リリース作業や変更作業を行うための基礎情報
  • SLAを維持するための性能ならびに稼働指標を求めるための基礎情報

といった情報を「システムの安定稼働」のため管理します。

システムを構成するハードウェアやソフトウェアに変更が生じた場合は、構成管理で把握されている情報を基に変更計画が立案され、その計画を基に変更作業が行われますので、確実に現況を把握することが極めて重要となります。
現況を掌握出来ておらず実際のシステム構成と構成管理情報にズレが生じると、現状構成が信頼できないものとなり、障害発生時の復旧作業に多大な時間を浪費するばかりか、構成情報の不整合自体がトラブルを誘発することも十分想定できます。

最新の状況を正しく管理するには、追加・変更・削除など構成管理要素に変更が生じる際は、その結果が構成管理に確実に反映される強制的な仕組みが必要になります。

IT資産を管理する

  • 資源の追加、変更、廃棄、譲渡、移管
  • リース契約や保守契約の締結や解約
  • 費用対効果の算出

といった「IT資産の管理」を行います。

10数年前までは、ハードウェアを購入し、キッティングし、OSをインストールし、アプリケーションをインストールするといった作業にそれなりの時間を必要としていたので、(言葉は悪いですが、)運用技術者は、空き時間に都度Excelファイルを開いて情報を更新する といった構成管理が機能していたのかも知れません。

しかし、機器単体に対して手作業で進めてきた構築作業ですが、クラウド利用が当たり前になった今、クラウド上のさまざまな機能を組み合わせたり、さまざまなサーバー(インスタンス)を複数用意して作り上げるシステムが増えてきました。それに伴い、エンジニアが行う作業範囲は大規模化、煩雑化してきました。

また、クラウドでは気軽に、そして短時間でインスタンスの追加や削除ができるため、システムインフラの改変が短時間で実施されるようになってきました。このような環境下でExcelを使った構成管理を行うのは自殺行為です。このような構成管理では、システムインフラの変更作業にかかる時間に比べ、構成管理のためのドキュメント更新にかかる時間の方がはるかに大きくなります。

構成管理ツールと Infrastructure as Code (IaC)

これらの問題を解決するための手段として、構成管理ツール、そして Infrastructure as Code (IaC) というものがあります。構成管理ツールは、ハードウェアの保守情報や構成情報を管理するものや、ネットワーク構成情報・IPアドレスの割り当てを管理するもの、システムの設定を管理するものなどで、目的に応じてさまざまなツールがあります。

IaCも構成管理ツールの一つであると言えますが、ネットワーク・サーバー・クラウド基盤の設定から、ミドルウェアやアプリケーションの設定を管理することに目的を置いたもので、クラウドの普及により、認知度が上がってきており、導入が増えてきています。

Iac は、“Infrastructure as Code” と書かれる通り、インフラの構成をコード化するものです。あまりピンと来ない方もいるかもしれませんが、クラウド基盤の設定、OSの設定、ミドルウェアのインストール・設定などを、再現可能な形でコードとして定義するものです。

”再現可能” という点にポイントがあり、一度定義してしまえば、コードを実行するだけで何度も同じ環境を作ることができ、クラウド環境でインスタンスを追加・削除する場合など、設定漏れなどのミスなく素早く対応を行うことができます。また、コードとして定義しますので、バージョン管理の仕組との親和性が高いことも利点です。
IaC の代表的なツールとしては、Chef, Ansible, Terraform などがあります。

構成管理の取り組み事例

構成管理についての取り組み事例(当社の場合)をご紹介します。
当社では、お客様へシステム運用サービスを提供していますが、その中でお客様のシステムを監視するための監視システムは当社で運用・管理し、お客様に対してサービス提供する形になっています。また、監視基盤を Pandora FMS Enterprise SaaS として SaaS 提供もしています。この監視システムの運用における構成管理をどのように行っているかを紹介したいと思います。

システムの安定稼働につなげるための構成管理

ハードウェアの保守情報や、クラウドであればログインアカウント管理情報など、基本となる情報はもちろん、システムを設計・構築した際の考え方や考慮した点、障害時の対応情報などを社内のポータルにまとめています。
ExcelやWordなどによる文書管理とは異なり、更新された情報を複数の管理者で常にアップデートしていく運用が容易です。また、システムの設計・構築などの「作業」については、チケット管理システムによりタスクをチケット管理しており、ポータルからリンクをたどることにより、過去の作業記録をたどることができます。
まとめ方の概要は次の通りです。

システムの安定稼働につなげるための構成管理
システムの安定稼働につなげるための構成管理

資源の追加・変更・削除における構成管理

お客様へサービス提供している監視システムは、お客様ごとに専用の仮想サーバーを立ち上げています。仮想サーバーは数百台の数が稼働しています。これらのサーバーの追加や、導入しているソフトウェアのアップデート・設定変更のために Ansible を用いています。

数百台のサーバーは、ベースは同じものの個々の設定は全く同じではありません。サーバーのIPアドレスが異なるのは当然ですが、各サーバーがどのお客様向けのサービス提供かによって設定が異なる部分があります。これらを Ansible にてコードとして管理しています。
例えば、新規のお客様向けに監視システムを提供する場合、Ansibleにより以下の一連の操作が実施されます。

  1. 新規のお客様向けの仮想サーバーを 2台作成
  2. サーバーのIPアドレスなど、OSの基本的な設定の実施
  3. そのお客様向けに必要な監視機能を有効にする、監視ソフトウェア設定調整の実施
  4. 立ち上げた2台のサーバーでの冗長構成の設定

エンジニアが一つ一つ設定するわけではないため、お客様へ提供する監視システムを立ち上げる際の設定ミスや設定漏れが発生することはありません。
また、お客様へ提供する機能が(契約変更などで)変更になった場合も、Ansibleでコード化している設定を書き換え、それをサーバーへ適用するという操作を行います。この場合もサーバーに対して一つ一つエンジニアが設定を行うわけではないため、冗長化しているサーバーの一方だけ設定を忘れたといった問題が発生しないようになっています。

Ansibleのコードは、バージョン管理システムを用いてリポジトリ管理しており、変更する際は必ずコメントを記載する運用としています。これにより、過去の変更内容をいつでも全管理者が追えるようにもなっています。また、変更を行った場合はコメントと共に変更差分を全管理者へ通知する設定にもなっており、今行われた変更が何であるかをシステム的に共有できる仕組みになっています。

まとめ

今回は、システムを構成するハードウェアやソフトウェアが稼働する環境の情報を常に最新の状態で管理していく構成管理について、取り組み事例(当社の場合)も交えてご紹介しました。

システムの安定運用を続けていくためには、システムの最新の状態を正しく理解し、正しく管理する必要があります。そのためには構成管理は重要です。

正しい構成管理を行うことで、運用におけるミスを避けながら複数の担当者間での最新の情報共有を実現することができます。それによりシステムが提供するサービスの品質の向上にもつながるでしょう。やり方は一つだけではありませんが、ここで紹介した考え方も参考に自社の取り組みにもぜひ取り入れてみてください。

Tag: 構成管理 運用設計

関連記事

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php