【後編①】詳細設計で決めること|基本設計を「構築・テスト・運用できる形」に落とし込む工程

システム開発

※この記事は「詳細設計で決めること」3部作の後編①です。前編はこちら、後編②はnoteで公開しています。


前編では、詳細設計を単なるパラメータ表ではなく、基本設計で決めた方式を構築・テスト・運用・保守へ接続する工程として整理しました。

後編①では、その考え方をOS、Web/APサーバ、DB、ジョブの4領域に展開します。これらは、システムの処理方式と性能・可用性を直接左右する領域であり、設計の甘さが構築工程やシステムテストで手戻りとして現れやすい領域でもあります。

前編を読んでいない方は、先に前編をお読みいただくと、各章の「なぜその観点が重要か」が伝わりやすくなります。ただし、担当領域の章だけを辞書的に参照する使い方でも成立するように書いています。

詳細設計で具体化する主な領域

1. OS詳細設計

OS詳細設計では、サーバの基本的な設定を具体化します。

ホスト名、IPアドレス、ディスク構成、ファイルシステム、ユーザ、グループ、権限、時刻同期、名前解決、OSパッケージ、サービス起動設定、カーネルパラメータ、ログ設定、セキュリティ設定などが対象になります。

OS詳細設計は、単にOSをインストールするための設定表ではありません。そのサーバがシステム内でどの役割を担うのかを反映する設計書です。

Webサーバなのか、APサーバなのか、DBサーバなのか、運用管理サーバなのか。役割によって、必要なパッケージ、起動サービス、ファイアウォール設定、ログ、監視、権限は変わります。

また、OS詳細設計は、運用にも直結します。

  • OSログをどこに出すのか
  • syslog や messages を何日保持するのか
  • ログローテーションをどう行うのか
  • rootログインを許可するのか
  • sudo権限を誰に与えるのか。
  • 時刻同期がずれた場合にどう検知するのか
  • 不要サービスを停止しているか
  • OSパッチ適用をどう行うのか

こうした内容は、構築だけでなく、監視、ログ、セキュリティ、運用手順とつながります。

特にOSログのローテーションは、監視設計とセットで確認します。

たとえば、`/var/log/messages` のようなOSログをログ監視製品で監視している場合、ログローテーション方式によって、監視対象が意図せずずれることがあります。

ログローテーションには、ファイルをリネームして新しいログファイルを作る方式、コピーしてから元ファイルを空にする方式、アプリケーションやsyslogにログファイルを再オープンさせる方式などがあります。

一方、ログ監視製品によっては、単にファイル名だけを見ているのではなく、監視開始時点のファイル実体やファイルハンドルを追跡する挙動になることがあります。

この挙動を理解しないまま、`logrotate`、`cp`、`touch` などを組み合わせてログローテーションを設計すると、監視製品がローテーション後の古いファイルを追い続け、新しい `/var/log/messages` に出力されたエラーを拾えなくなる場合があります。

その結果、実際の /var/log/messages にはエラーが大量に出ているのに、監視製品はそのログを見ていないため、アラートが発報されない、という事態が起きます。

画像

これは、OSログ設計だけを見ていると気づきにくい問題です。

ログローテーションの設計は、OS詳細設計、ログ詳細設計、監視詳細設計の境界にあります。

そのため、OSログをローテーションする場合は、次の点を確認します。

  • ログ監視製品が、ファイル名で監視するのか、ファイル実体を追跡するのか
  • ローテーション後に、監視対象が新しいログファイルへ正しく切り替わるのか
  • copytruncate、リネーム、再オープンなど、どのローテーション方式を採用するのか
  • syslogやアプリケーション側でログファイルの再オープンが必要か
  • ローテーション後も、監視キーワードが検知されるか
  • ログローテーション試験で、監視アラートまで確認しているか

OSログのローテーションは、単に古いログを退避するだけの設定ではありません。

監視対象のログを、ローテーション後も監視し続けられるかまで含めて設計します。

ここを確認しないまま本番稼働すると、ログは出ているのに監視できていない、という非常に危険な状態になります。

実際の現場でも、ログローテーション後に監視製品が古いログファイルを追い続け、新しい messages を監視できていなかった、というトラブルは起こりえます。

OS詳細設計で検討すべき主な観点は以下のとおりです。

  • ホスト名、IPアドレス、名前解決
  • ディスク構成、マウントポイント、ファイルシステム
  • ユーザ、グループ、sudo権限
  • 起動サービス、不要サービス停止
  • 時刻同期、タイムゾーン
  • OSログ、ログローテーション
  • ログ監視製品との連携
  • ローテーション後の監視継続確認
  • パッケージ、リポジトリ、パッチ適用方針
  • OSセキュリティ設定
  • 監視対象となるプロセス・リソース

この章で確認したい問いは、次の3つです。

  • サーバの役割に応じて、必要なOS設定・サービス・権限が整理されているか
  • ログローテーション後も、監視製品が本来のログを監視し続けられるか
  • パッチ適用、不要サービス停止、sudo権限はセキュリティ設計と整合しているか

コメント

タイトルとURLをコピーしました