システムの安定稼働に運用設計は欠かせない? 必要事項や重要性を解説
システムは開発・導入したら終わりではなく、安定稼働のためには適切な運用が欠かせません。その運用業務において重要なのが、「運用設計」です。どんなシステムでもトラブルが起こる可能性は存在します。それぞれの企業の要件を満たした運用設計を行っておくことで、トラブルが発生した場合にもリスクを最小限に抑えることが可能です。また、運用担当者の業務負担を減らすというメリットも期待できます。本記事では、運用設計の概要や検討すべき項目、ポイントについて解説します。
この記事の目次
運用設計とは
運用設計とは、日々の定常作業や、障害発生時の復旧作業をスムーズに進めるためのルールやプロセスをあらかじめ定義することです。
完成度の高いシステムでも障害やトラブルが発生する可能性は存在し、定期的なメンテナンスも必要となります。そこで運用業務に必要な情報をまとめ、フレームワーク化しておくことにより、トラブルを防ぎ作業を効率化でき、安定した運用が可能になります。また万が一障害が発生した場合にも、迅速な対応が可能になります。システムのダウンタイムを減らすことができれば、ビジネスへ影響するリスクも最小限に抑えられるでしょう。
運用設計を行うタイミング
最近では「DevOps」という開発担当者と運用担当者が協調してシステム開発を進める手法が広がってきています。開発をスピーディーに行うだけでなく、その後の安定稼働も実現させるためには、運用設計もシステム開発における要件定義・設計工程など、なるべく早い段階で同時に着手することが望ましいでしょう。運用を安全でスムーズに行うために望ましい設計を開発段階で組み込むことができれば、運用業務の効率化やコスト削減が期待できます。
しかし、必ずしも初期段階で行わなければ意味がないというわけではありません。現在すでに稼働しているシステムでも、運用フローなどが整備されていない場合や、フローを見直す必要がある場合には、改めて運用設計を行うことで運用におけるリスクを減らすことができるでしょう。
運用設計の目的
運用設計は以下を目的として実施します。
- 運用対象・範囲の明確化
- ルールの周知によるトラブル防止
- 障害への迅速な対応・復旧
- 運用の属人化、ブラックボックス化を防ぐ
- 運用業務の効率化・最適化
運用設計は、システムを「Who(誰が)、When(いつ)、Where(どこで)、How(どのように)」使用するか想定し、システムの性質から要求される運用レベルに合わせて検討します。システムの性質や運用要件を考慮した運用設計がなされていないと、不要な工数が嵩んでしまったり、反対に必要とされる対応ができなかったりといったことになりかねません。
そのシステムが果たす役割は何なのか? 停止した時の影響はどうか? 扱うデータの機密性、求められるセキュリティはどうか? 特筆すべき条件はあるか? など、具体的な障害対応時のフローなどの検討に入る前に、前提の確認から行うことが重要です。
運用設計で検討すべき項目
では、運用設計において検討すべき事項とはどのようなものでしょうか。実際にはそれぞれシステムの要件によって異なりますが、基本的な項目について解説します。
基本方針
運用設計の概要や目標、設計に必要な要素や作業スケジュールといった基本的な方針を決定します。システム開発の設計書を参考にしながら作成するため、基本的には開発設計と平行して最初の段階で策定します。
対象システムの用途
運用を行う対象システムの内容について詳細に定義します。たとえば以下のような項目です。
- システムの用途
- システムの持ち主(自社・顧客・クラウドベンダーなど)
- システムの利用者
- 稼働日時
- システムが停止した場合の影響
- アクセスが集中する時間帯
運用管理対象
システムの構成要素を洗い出し、何を運用・管理するかということを定義します。たとえば以下のような要素が管理対象とされます。
- サーバー
- ネットワーク機器
- OS
- ミドルウェア
- アプリケーション
- ログファイル
- バックアップデータ
構成情報
管理対象とするシステムの要素が決定したら、構成情報をまとめます。以下のような情報が必要です。
- 論理/物理ネットワーク構成図
- 設定情報
- ライセンス情報
- グループポリシー
- データセンター情報
運用体制
どのような体制を構築し運用を行うかを定義します。統括責任者・運用責任者・保守担当者など役割を分担してポジションを設定し、人選を行います。社内でリソースが足りず外部へ委託する場合は、委託先や委託範囲について決定します。
監視設計・障害対応手順
障害発生時に備え、監視設計を行い障害対応の手順を定義しておきます。
- 監視内容・監視方法・通知方法
- 取得するログの内容
- 障害対応レベル
- 障害対応手順(復旧手順・エスカレーション方法・対応終了条件など)
- 対応時間・体制(平日日中帯のみ/24時間365日体制/夜間休日はベストエフォートなど)
障害を速やかに検知し対応することは、システムの安定稼働において非常に重要度が高いです。しかし、予期できない障害対応は最も運用担当の負荷となる業務でもあります。
例えば対応が不要であるアラート通知が大量に飛ぶようになっていると、アラートを確認することに手が取られてしまったり、アラート自体に慣れてしまいクリティカルなアラートを見逃してしまったり、といったことが起こり得ます。そういったことを防ぎ、監視運用の負荷を軽減するためにも適切な対応レベルの定義や監視設計は重要です。
定常作業
定常作業とは、あらかじめ実施するスケジュールが決まっている以下のような作業が該当します。
- 定期メンテナンス
- 定期リリース
- バックアップ
- ジョブ管理
- ログ管理
- マスタ更新
スムーズに運用を行うために、作業手順やスケジュール(日次・週次・月次・年次など)について検討し定義します。
セキュリティ対策
システムや取り扱うデータに対する不正アクセスや情報漏えいの被害を防ぐため、セキュリティに関する運用作業も発生します。セキュリティ対策もどの程度のレベルの対応が求められるのかはシステムの性質に大きく左右されるため、運用現場だけでなくシステムのオーナーや企業の経営者など、ステークホルダーと対応方針について認識を合わせておく必要があるでしょう。
具体的な運用作業としては、以下のようなものが想定されます。
- 脆弱性やセキュリティリスクの情報収集方法
- セキュリティパッチの適用判断基準や適用方法
- 導入しているセキュリティ対策ソリューションの設定や運用作業
- ログの監視
運用設計のポイント
適切な運用設計を行うために、注意すべきポイントについて解説します。
可用性を優先する
可用性とは、システムが停止することなく稼働し続けることを指します。システムが停止した場合の損害は大きいため、可用性を高めることは運用設計における必須事項といえるでしょう。具体的にはメンテナンス時間が利用者に影響を及ぼさないこと、障害発生時の復旧手順やスケジュールが用意され復旧時間が許容されるものであることなどが重視されます。
機密性・完全性を徹底する
機密性とは情報が外部に流出しない状態を指し、完全性とは情報が正確かつ最新である状態を指します。運用を行ううえで機密性を徹底することは、情報漏えいを防ぐ観点で重要です。完全性は提供するサービスのクオリティや信頼性を保証します。運用設計において機密性・完全性を徹底することは、企業が社会的な信頼を得ることに直結します。
運用設計をアウトソースする
運用設計は検討項目が多く専門的な知識も要するため、社内のリソースに不安を感じるかもしれません。そこで専門業者にアウトソースすることも一つの手段です。システム運用に関するコンサルティングや、システム設計・構築の支援などのサービスが受けられます。専門的な視点から適切な運用設計の提案をしてもらえれば、リソース不足を補いながら運用の安定性を高められるでしょう。
まとめ
システムを安定して稼働させ続けるためには、日々の運用が欠かせません。運用設計をしっかりと行うことで、トラブルを回避し、作業を効率化することが可能です。自社にノウハウやリソースがない場合は、専門業者からサポートを受けることもおすすめです。
既に稼働しているシステムの運用を見直したい、これから開発するシステムの監視運用設計についてコンサルティングを受けたい、などの要望があれば「ベアサポート」までご相談ください。20年以上にわたるサーバー運用実績で培ってきたナレッジを武器に、監視運用の代行だけではなく、インフラの初期構築や監視設計・導入、セキュリティソリューションの導入・運用なども可能なため、インフラ運用に関することは何でも相談ください。