このカテゴリでは、OS やアプリケーションそのものではなく、システム全体を成立させるためのインフラ基盤技術 を扱う。
一般にシステムというと、サーバーやアプリケーションが中心に語られることが多い。
しかし実際には、それらのサービスは単体で成立しているわけではなく、
・ネットワーク通信
・証明書 / TLS
・名前解決(DNS)
・時刻同期(NTP)
・Web基盤
・監視
・セキュリティ対策
・通知
・バックアップ
といった複数の基盤技術によって支えられている。
これらの基盤要素が正しく設計されていなければ、アプリケーションやサーバーが正常に動作していたとしても、システム全体として安定した運用を維持することはできない。
そのため本Wikiでは、Windows や Linux といった OS 技術とは分離し、システム全体を支える共通基盤として Infrastructure カテゴリ を整理している。
このカテゴリでは、システム基盤を構成する以下の技術領域を扱う。
各技術の詳細については、以下のページを参照する。
HTTPS 通信や安全なサーバー通信を実現するためには、TLS 証明書による暗号化通信が必要になる。
証明書の発行、信頼関係の構築、更新管理、失効管理といった証明書運用は、インフラ設計において重要な要素となる。
本Wikiでは、
・内部証明書基盤:Active Directory Certificate Services(ADCS)
・公開証明書:Let's Encrypt
を対象に整理している。
→ 証明書
ネットワーク通信では、IPアドレスだけでシステムを運用することはほとんどなく、
通常はホスト名やドメイン名による名前解決が前提となる。
そのため DNS は単なる補助的なサービスではなく、
システムの接続性を支える重要なインフラ基盤となる。
→ DNS
(準備中)
システム全体の時刻を統一するための仕組みとして
NTP(Network Time Protocol) が利用される。
特に Active Directory 環境では Kerberos 認証が利用されるため、
サーバー間の時刻差が大きいと認証エラーが発生する可能性がある。
また TLS 証明書の有効期限判定にも時刻は重要な要素となる。
そのため安定したシステム運用のためには、
インフラ全体で一貫した時刻同期設計が必要になる。
→ NTP
(準備中)
Web サービスを提供する場合には、
Apache や Nginx といった Web サーバーを中心とした
Web Infrastructure の設計が必要になる。
例えば以下のような技術が利用される。
・VirtualHost
・Reverse Proxy
・TLS / HTTPS
・SNI(Server Name Indication)
これらの技術により、複数の Web サービスを
一台のサーバーで安全に運用することが可能になる。
システムを安定して運用するためには、
サービスの状態やサーバーのリソース状況を継続的に監視する必要がある。
監視システムは、
・障害の早期検知
・運用状況の可視化
・トラブルシューティング
といった運用管理の基盤として重要な役割を持つ。
→ Zabbix
公開サーバーでは、SSH や Web ログインなどに対してパスワードを繰り返し試すブルートフォース攻撃が日常的に行われている。
そのためログ監視による自動遮断などのセキュリティ対策が必要になる。
本Wikiでは、ログを監視して不正アクセスを検知し、攻撃元 IP を自動的に遮断するツールとして Fail2Ban を整理している。
→ Fail2Ban
サーバー運用では、セキュリティイベントやシステム異常を、管理者へ通知する仕組みが必要になる。
例えば次のような通知である。
・Fail2Ban の BAN 通知
・AIDE の改ざん検知
・cron エラー通知
・ログ監視レポート
このような通知を実現するためには、サーバーがメールを送信できる環境を構成する必要がある。
本Wikiでは、SMTP サーバーを利用した Linux のメール送信設定として msmtp を利用した SMTP メール送信設定 を整理している。
システムを安定して運用するためには、障害発生時に復旧できる仕組みが必要になる。
バックアップは、データ消失やシステム障害に対する最終的な保護手段として重要な役割を持つ。
バックアップの設計では、
・取得頻度(RPO)
・復旧時間(RTO)
・保持世代(ローテーション)
といった観点を考慮する必要がある。
本Wikiでは、バックアップの実装は Linux 環境で行っているため、詳細は Linux カテゴリで整理している。
インフラ基盤は、システムを安定して運用するための土台となる。
その役割は単にサーバーを動作させることではなく、通信・認証・セキュリティ・運用管理といったシステム全体の基盤を支えることにある。
例えば、
・ネットワーク通信が成立しなければサービスは利用できない
・TLS 証明書が正しく管理されていなければ HTTPS 通信は成立しない
・DNS が正常に機能していなければホスト名による通信は行えない
・時刻同期が崩れると認証やログ管理に影響が出る
・セキュリティ対策が不十分であれば不正アクセスのリスクが高まる
・監視や通知がなければ障害の検知や対応が遅れる
・バックアップがなければ障害発生時に復旧できない
このようにインフラ基盤は個別のサービスを直接提供するものではないが、それらすべてのサービスを成立させるための 前提条件となる技術領域 である。