※この記事は翻訳されたものです。本記事の原文はこちら
あらゆる規模の企業にとって、ITシステムの必要性がますます高まっていることは周知の事実です。しかし、ITシステムは、運用性と回復力があり、可用性が高くて初めて、企業やその顧客にとって有効なものとなります。企業が全社レベルでの可用性を構築しようとするとき、脆弱性を重みづけして評価するための基準値を持つことは、インフラ、ソフトウェア、サービス、サポートの統合を成功させ、ビジネスの成功を促進する際に違いを生み出すのです。
自社のシステムの可用性が高いのか、それとも脆弱性が高いのを判断するのに役立つ最も基本的なチェックリストをご紹介します。
1.高可用性をサポートする適切なインフラがあるか
- データセンターには、ビルのシステムを測定するための環境センサーが設置されていますか?
- データセンターは24時間365日稼働していますか?
- データセンターは、複数のソースからの冗長電源とネットワーク接続を備えていますか?
- データセンターでは、ホストおよびストレージサービスが複数のレイヤーに分かれていますか?
私はカスタマーエクスペリエンス担当バイスプレジデントとして、お客様がインフラの根本的な問題に対処せずに、高可用性ソリューションを構築しようとするのを見てきました。ソフトウェアを導入しても、ネットワークインフラやサーバー、データセンターそのものが不安定なのです。クラウドはインフラの問題の多くを解決してくれますが、すべてのクラウドプラットフォームが同じように設計されているわけではありません。オンプレミス、クラウドを問わず、データセンターについてよく理解することが重要です。
2.設計、アーキテクチャ、プロセスをカバーするランブック(またはプレイブック)を作成しているか
- ランブックはきちんと文書化・公開され、簡単にアクセスできるようになっていますか?
- ランブックの定型的な部分は十分に自動化されていますか?
- エンタープライズランブックにアクセスできる人はいますか?
- ランブックは現在メンテナンスされていますか?
- ランブックとその中の自動化ツールのバージョン管理はできていますか?
ランブックやプレイブックが何かわかったら、まずそれを探すか、作成しましょう。ランブック(またはプレイブック)は、組織が高可用性システムアーキテクチャに関して、システムとプロセスを維持するのに役立ちます。自動化ツールを使用してサーバーを展開・構成するスクリプトを作成する企業もあれば、バージョン管理されたドキュメントで、レジリエンスと成功を実現するためにすべてのものがどのように連携しているかを把握する企業もあります。チームには、新しく加わったメンバーや元からいるメンバーが、環境、プロセス、使用されているツールを理解するための場所が必要です。
3.高可用性のベストプラクティスを維持するための専任の担当者はいるか
- 担当している社員や請負業者をサポートし、トレーニングを行っていますか?
- チームに、より良いベストプラクティスを採用し、創造するための自主性を与えていますか?
「自分はこのシステムをセットアップしたわけではない、他のサーバーと一緒に引き継いだだけだ」とIT管理者が言うのはよく聞きますが、これは本音でしょう。可用性の高い企業となるために重要なのは、合併や買収、コスト削減、アウトソーシング、あるいはスタッフの離職に左右されず、十分な人員を確保することです。スタッフ、トレーニング、サポートが不足すると、企業は非常に脆弱になってしまいます。
4.変更管理を適切にコントロールしているか
- 定期的なアップデートの方針とスケジュールを決めていますか?
- パッチのメンテナンスに関するプロセスを定義していますか?
- パッチ(脆弱性、脅威など)に対するレビュープロセスを確立していますか?
変更管理は重要です。変更管理のコントロールとポリシーは、リスクを低減し、システムを確実に利用できるようにするために絶対に必要です。権限が適切に制限されていないユーザーは、システムの安定性を損なうようなパッケージやアップデートを追加したり、数時間にわたって組織を混乱させるような変更を加えたりする可能性があります。さらに、定義されたポリシーがないと、期待されるもの(文書化されたもの)と実際のもの(実施されているもの)の間にずれが生じることも多くなります。スタンバイクラスターがプライマリー/ソースシステムと同じパッチおよびソフトウェアレベルであり、QA(または本番前)環境が本番環境と大幅にずれていないことを確認するためもは、変更管理は重要です。
5.適切なアクセス制御が行われているか
- サーバー管理用のアカウント管理層はありますか?
- 予期せぬダウンタイムを防ぐための仕組みを導入していますか?
当社のサービスチームは、お客様との電話で、ソフトウェアの設定とアップデートのために、昇格コマンドを実行する権限を持つ管理者がセッションに参加するのをひたすら待ち続けたことがあります。また数週間後には、別のお客様で、管理者権限を持つ複数のユーザーが同じクラスター上で大量のコマンドを実行するのを恐る恐る見ていました。この2つの例から、アクセス制御がいかに重要であるかがよくわかると思います。
高可用性を実現するためには、構成にダメージを与えたり、運用を低下させたりする可能性のある昇格コマンドをユーザーが実行できないように、適切なアクセス制御が行われるよう徹底する必要があります。また、ユーザーの役割、ニーズ、さらには経験に基づいて、ユーザーが実行できる操作も制限してください。
6.定期的なテストのプロセスはあるか
- 本番稼動前に、本番環境またはQA環境でテストを行っていますか?
- 定期的なバックアップとバックアップのテストを行っていますか?
- 継続的な改善のために、災害復旧シナリオとカオステストを実践していますか?
テストには時間がかかりますが、お客様のクラウド移行や高可用性の導入を支援する私の業務では、この時間はとても有効なものです。多くの場合、高い可用性と高い脆弱性の違いは、お客様やパートナーのテストプロセスに起因します。ソリューションが複雑になるに従って、テストと検証はリスクと脆弱性を減らすためにますます重要になってきます。もし、設計から本番稼働までそのまま行ってしまうと、非常に脆弱なシステムを運用することになります。しかし、テストとチェックポイントを設け、本番稼動前に変更を検証するプロセスを導入すれば、そのリスクを大幅に軽減することができます。
当社のサービスチームは、あるお客様で、本番移行を完了する前に丸1年間、QAでシステムを展開しました。その1年間で、停電、災害、顧客の負荷、ダウンタイム、メンテナンス、パッチ適用戦略、バックアップ、バックアップからの復旧、その他さまざまなテストをシミュレートしました。その結果、パフォーマンス、プロセスの順守、高可用性、そして企業の成功において、目覚ましい成果を挙げることができました。
高可用性に潜むすべての脆弱性を網羅できるようなチェックリストはありませんが、これらの質問に答えることで、皆さんの会社が高可用性か高脆弱性かを理解するための強力な基礎を築くことができます。
関連記事