はじめに
目的
本資料は「Webサーバー管理」について、基本から現場で使える実務的な項目までを分かりやすくまとめたガイドです。初心者が学習を進められ、実務担当者が見直しやチェックに使えることを目指しています。
対象読者
サーバーを初めて扱う方、これから担当になるエンジニア、既に運用しているが設定を整理したい方まで幅広く想定しています。専門用語は最小限にし、具体例で補足します。
本資料の構成と使い方
全8章で構成し、基礎→設定→運用→メンテナンスの順に進めます。各章は独立して読めますが、順番に読むと理解が深まります。実際の手順は章4で具体的に示します。
前提と準備
基本的なパソコン操作、管理者権限のあるサーバーへのアクセスがあると進めやすいです。必要なコマンドや設定ファイルは章ごとに説明します。
本章の進め方
まず全体像を把握し、必要に応じて関心のある章を詳しく読むことをお勧めします。実務に取り入れる際はバックアップを取りながら進めてください。
Webサーバー管理の基本概要
全体像
Webサーバー管理は、利用者に安定してサービスを届けるための一連の作業です。ハードウェアの選定とセットアップ、OSの導入と設定、ウェブサーバーソフトやデータベース、アプリケーションサーバーの導入・設定が中心になります。加えて、ネットワーク設定、SSL証明書、DNS、監視やバックアップも重要な要素です。
主な構成要素
- ハードウェア/クラウド:用途に応じて専用機かクラウドを選びます(例:高トラフィックは専用機や大きめのクラウドインスタンス)。
- OS:安定性とサポートを重視して選びます(例:Debian系、Red Hat系)。
- ウェブサーバー:ApacheやNginxなどを用います。
- データベース:MySQLやPostgreSQLなど、アプリに合ったものを選びます。
- ネットワークとセキュリティ:IP、ファイアウォール、SSLの設定を行います。
- 運用ツール:監視(稼働監視)、ログ集約、バックアップを準備します。
管理者の主な役割
- 可用性確保:ダウンを防ぎ、応答時間を保ちます。
- 性能管理:負荷に応じて設定やリソースを調整します。
- セキュリティ対策:アクセス制御や更新、脆弱性対応を行います。
- バックアップと復旧検証:障害時の復旧手順を整備します。
- ログ管理と監視:異常検知と原因追及を容易にします。
初期に意識するポイント
- 要件定義:想定トラフィックや可用性目標を明確にします。
- 冗長化の検討:単一障害点を減らす設計を優先します。
- 自動化:設定やデプロイは自動化してミスを減らします。
- 運用ルール:バックアップ頻度や保守時間を決めておきます。
次章では、サーバー構築で具体的に設定すべき項目を詳しく説明します。
サーバー構築の主要な設定項目
1. セキュリティ設定(ファイアウォール、ユーザー権限、SSHキー)
- ファイアウォール: 必要なポートだけ開けます。例:Webは80/443、SSHは22(別ポートに変更可)。不要なサービスは停止してください。
- ユーザー権限: 管理者は最小権限の原則で運用します。sudoを使い、root直接ログインを避けます。各ユーザーに目的別のアカウントを作成してください。
- SSHキー: パスワード認証を無効にし、公開鍵認証を導入します。鍵は強固なパスフレーズで保護し、公開鍵は~/.ssh/authorized_keysに配置します。
2. ネットワーク設定(IPアドレス、DNS、ルーティング)
- IPアドレス: 固定IPかDHCPかを決め、必要なら静的設定を行います。サーバーは通常固定IPを使います。
- DNS: FQDN(完全修飾ドメイン名)を設定し、逆引き(PTR)も確認します。名前解決の問題はサービス障害につながるため注意してください。
- ルーティング: デフォルトゲートウェイやサブネット、必要な経路(ルート)を設定します。複数NICやVLANを使う場合はルールを明確にします。
3. バックアップとリカバリ設定
- バックアップ方針: 何を、どの頻度で、どこに保存するかを決めます。例:データベースは毎日、設定ファイルは毎週フルバックアップ。
- 保存先・世代管理: オンサイトとオフサイトを併用し、世代管理(世代数)を設定します。暗号化とアクセス制限も行ってください。
- リカバリ手順: 復旧手順を文書化し、定期的にリストアテストを実施します。テストで問題点を早期に発見します。
4. モニタリング設定(Nagios、Zabbixなど)
- 監視対象: CPU、メモリ、ディスク使用率、プロセス、サービス状態を監視します。ログ監視も組み込みます。
- 閾値とアラート: 異常値の閾値を決め、通知先(メール、チャット、電話)を設定します。誤検知を減らすため閾値は適切に調整してください。
- ツールの選択: Nagiosはシンプルで柔軟、Zabbixは可視化と自動検出が得意です。エージェント方式かエージェントレスかを用途で選んでください。
各項目は運用開始前にチェックリスト化し、導入後も定期的に見直してください。変更履歴を残すと問題発生時に役立ちます。
基本設定の実施手順
準備
初期設定前に管理者アカウントでログインし、バックアップを用意します。作業はメンテナンス時間に行うと安全です。
1. システムの更新
パッケージの最新化は最優先です。例:Ubuntuなら “sudo apt update” と “sudo apt upgrade” を実行します。再起動が必要な場合は通知に従います。
2. ファイアウォール設定
外部アクセスを制限します。簡単な例はUFWの利用で、HTTPは80、HTTPSは443、SSHは22を許可します(例:”sudo ufw allow 22″)。設定後に有効化し、”sudo ufw status”で確認します。
3. ユーザーと権限の設定
rootで直接作業せず、管理者用の一般ユーザーを作成します(例:”sudo adduser deploy” と “sudo usermod -aG sudo deploy”)。ファイルやディレクトリの権限は必要最小限に設定します。
4. SSH設定(公開鍵認証の有効化)
公開鍵認証を使うと安全です。ローカルで “ssh-keygen” を実行し、公開鍵をサーバーの~/.ssh/authorized_keysに追加します。rootログインを無効化し、必要ならSSHポートを変更します。
5. ログと時刻の設定
時刻同期(NTP)を有効にしてログの整合性を保ちます。例:”timedatectl set-ntp yes”。
6. 確認とテスト
各設定後に接続やサービスの動作を確認します。SSH接続、Webアクセス、ファイアウォールのルールを実際に試してください。問題があれば設定を戻せるようバックアップを用意します。
OSごとの特有の設定
Windows Serverの基本ポイント
Active Directory(AD)でドメインやユーザー管理を設定します。具体例:権限は最小限にして、管理者アカウントは別で運用します。IISはサイトとアプリプールを分け、TLS証明書を正しく割り当てます。更新はWindows UpdateかWSUSで定期的に配布します。
Linuxの基本ポイント
パッケージ管理は apt(Debian系)や yum/dnf(RHEL系)で行います。例:セキュリティ更新は自動化(unattended-upgradesなど)を検討します。サービスはsystemdで管理し、systemctlで起動・停止・自動起動設定を行います。
共通で注意する設定
時刻同期は重要です。WindowsはNTP、Linuxはchronyやntpdを使います。ファイル権限はOSの標準機能で管理し、ログの保存先とローテーションを決めます。バックアップはOSごとのスナップショット機能や、外部ツールで差分保存します。
実務的なヒント
新しい設定はまずテスト環境で試し、本番には段階的に反映します。トラブルが起きたらログを確認し、設定変更は履歴を残してください。各OSで慣用的な管理ツールを使うと運用が楽になります。
アクセス制御とセキュリティ強化
パスワード管理と多要素認証
強力なパスワードを必ず設定します。目安は長さ12文字以上で、英数字と記号を混ぜることです。定期的に変更し、同じパスワードを他サービスで使わないでください。可能ならば多要素認証(例:ワンタイムコードやスマホアプリ)を導入します。
不要ユーザー・グループの整理
使っていないユーザーやグループは削除または無効化します。管理者権限(sudoやroot)を持つアカウントを最小限にします。具体例:退職者や試験用アカウントは削除し、ログイン履歴を確認して怪しいアカウントを特定します。
SSHキー認証の導入
パスワード認証を無効にしてSSHキー認証を有効化します。鍵はssh-keygenで作成し、公開鍵だけをサーバーに置きます。rootログインを禁止し、必要ならSSHポートを変更します。
ファイアウォールとポート管理
ファイアウォールで必要なポートだけ開けます。例:Webは80/443、管理用は限定したIPだけに22を許可します。不要なサービスは停止してポートを閉じます。
ログ監視と侵入検知
ログを定期的に確認します。失敗したログインや不審なアクセスを早めに検出するため、ログ監視ツールや簡易な侵入検知(例:fail2ban)を導入します。
定期更新とバックアップ
OSやソフトの更新を定期的に適用します。設定変更前には必ずバックアップを取り、問題発生時に素早く復旧できるよう準備します。
日常的な運用・保守業務
監視(稼働状況の確認)
日々、サーバーのCPU・メモリ・ディスクやサービスの稼働状態を確認します。具体的には、定期的なヘルスチェック(応答確認)やシンプルなスクリプトでの監視が有効です。異常があれば即座に通知する仕組みを用意します。
異常検知とトラブル対応
アラートが上がったら、まず影響範囲を特定します。ログの確認、該当サービスの再起動、直近の設定変更の確認を順に行います。対応手順は短い手順書(プレイブック)にまとめておくと迅速に動けます。
負荷分散の実施
アクセスが集中する場面では負荷分散で応答性を保ちます。負荷が高いときはサーバーを追加するか、処理を後回しにするキューを使って負荷を平準化します。定期的に負荷分散の挙動を確認してください。
ログ収集と解析
ログは中央に集めて検索しやすくします。定期的にエラー傾向を確認し、同じエラーが続く場合は原因を洗い出して対策を実施します。ログのローテーションと保存期間も管理します。
ユーザーアクセス管理
利用者のアカウントや権限を最小限に保ち、不要なアカウントは無効にします。アクセス履歴を確認して不審な操作がないか見ます。パスワードや鍵の管理ルールを定め、定期的に見直してください。
定期的なメンテナンスと確認
序文
定期的なメンテナンスは故障や障害を未然に防ぎ、安定運用を続けるために重要です。ここでは実務で実施しやすい確認項目と実施頻度を具体例を交えて説明します。
ハードウェアの状態チェック
- 頻度:月次または異常検知時に実施します。
- 内容:サーバー筐体の異常音、ファン回転、温度、電源ユニット、ディスクのSMART値を確認します。例として、ディスクのリードエラーや温度上昇は早めに交換を検討します。
バックアップの確認と復元テスト
- 頻度:週次でログ確認、月次で復元テストを行うのが実務的です。
- 内容:バックアップジョブの成功ログを確認し、ランダムに選んだファイルやデータベースを実際に復元して動作を確かめます。オフサイト保存や世代管理も確認します。
ログと監視の定期確認
- 頻度:日次で監視アラート、週次でログ全体の傾向をチェックします。
- 内容:エラーログやアクセス異常、リソース使用率の推移を見て、閾値超過や異常増加を早期に検出します。例:短時間でのエラー増加は設定変更や負荷増を調査します。
パッチ適用とソフトウェア更新
- 頻度:月次の定例パッチと緊急対応で実施します。
- 内容:更新は先にステージング環境で検証し、本番では影響の少ない時間帯に実施します。変更点やロールバック手順を記録します。
書類化と運用手順の見直し
- 頻度:四半期ごとに手順書を見直し、必要があれば更新します。
- 内容:障害対応手順、連絡先、復旧手順を簡潔にまとめ、誰でも辿れるようにします。実際の復元テスト結果も添付します。
スケジュールとチェックリスト
- 例:日次(監視確認)、週次(バックアップログ、簡易点検)、月次(復元テスト・ハード点検)、四半期(手順書見直し・大規模検証)。
- 自動リマインダーとチェックリストを使って抜け漏れを防ぎます。












