サーバー構築という仕事
【連載コラム:Linuxでサーバーを構築してみよう(12)」
今回のテーマはサーバー構築後に始まる通常時の業務についてです。サーバーは構築したら終わりではなく、ある意味そこがスタートだったりします。運用する中での通常時の業務とは一体どういうものでしょうか?
サーバーの構築が終わったら、それで終わりではありません。サーバー管理という日々の業務が待っています。インターネットに接続されたからには、サーバー管理を欠かすことはできません。
サーバー管理は大きく分けると「通常時の業務」「異常発生時の業務」の2つに分けることができます。サーバー構築の連載コラムの12回目の今回は、「通常時の業務」についてに具体的に見ていきます。
ログのチェック
サーバー管理の際、ログチェックは命と言っても過言ではありません。
特にサーバー構築直後には、エラーメッセージが出ていないかのチェックだけでなく、正常に動作しているか?のチェックも行います。ただし、ログをことこまかく見ているとそれだけで日が暮れてしまいますので、キーワードによる絞り込みや、重要度の高いメッセージに絞ってチェックを行うなどの工夫を行い、無理なくチェックできるようにできる体制を作っておくとよいでしょう。
正常動作の確認
サーバーが正常に動作しているか否かの確認は、ログだけではなく、実際にクライアントとしてサーバーにアクセスしてみる、ユーザからの連絡を迅速に受け取るなどの面からも行うようにしましょう。
ネットワークが異なると、サーバーの見え方が違ってくることは、サーバー運営時にはよくあることです。たとえば、LAN内のPCからは正常に動作しているように見えているのに、インターネットを介した別のネットワークからは正常に見えない、などです。チェックはさまざまなネットワークから行うようにしましょう。スマートフォンが普及した現在であれば、Wi-Fiを経由せずにサーバーにアクセスして正常に動作しているか否かをチェックするなどの方法が考えられます。
また、自分だけでなく、他の人にも正常動作の確認の協力を依頼することもあります。特にメールに関しては、テストメールを送って、正しく受信できているかなどのチェックは、サーバー構築直後だけでなく、設定を変更したとき、あるいはトラブル発生時などにも必要になることがあります。
バックアップの取得
必要に応じてですが、トラブル発生時に備えて、定期的にバックアップを取得します。
バックアップがないと、トラブル発生時に大変な苦労を強いられることがあります。バックアップ対象は、Webコンテンツ、データベースのデータなどです。ここはサーバーの構成によって必要性や頻度が異なります。
また、バックアップは取得するだけでなく、リカバリ処理を行ってきちんと戻せることまで確認しておきましょう。
コンテンツなど変更への対応
Webサーバーの内容に変更を行うなどの際に、サーバー側で設定を変更するなどの作業が必要になる場合があります。
Webコンテンツの作成を管理者が行っている場合は自分で対応すればよいのですが、多くの場合、Webコンテンツの作成者と管理者は別になっていると考えられます。その場合、コンテンツ作成者の要望に合わせて、ソフトウェアの設定変更、パーミッションの設定などを行う必要が生じることがありますので、作成者とよく打ち合わせましょう。
アップデートの適用
セキュリティアップデートなどのアップデートの適用も、サーバ管理者の大事な仕事です。セキュリティアップデートは欠かさずに行いましょう・・・というと、yumやdnf、aptなどのコマンドを実行すればいいだけだと思う方もいるかもしれませんが、それだけでは解決しない場合もあります。
たとえば、WordPressなどのソフトウェアで内部的にプラグインなどを使用している場合、OS側のコマンドだけではアップデートできません。また、ハードウェアも自前で運用している場合にはファームウェアアップデートが必要になることもあります。
また、アップデートを適用したせいで、サーバーが誤作動を起こすこともあります。このため、アップデートの内容はよく確認し、テスト環境でうまくアップデートを施すことができることを確認してから作業を行うようにしましょう。
OSのバージョンアップは慎重に
OSのバージョンアップでメジャーバージョンが変わるような時には、非常に大規模なアップデートが必要になる場合もあります。このような場合は、絶対に本番環境で一発勝負のアップデート作業をしてはいけません。事前に情報を十分に集め、テスト環境でうまくアップデートができることを確認しましょう。
また、仮想化やクラウドなどでは、上手くいかなかったときに備えてスナップショットを作成しておくべきでしょう。また、影響が出た場合のために、ユーザーに事前に作業を行う旨を周知してから作業を行って下さい。
構築し直しも視野に入れて
アップデートがあまりに大きなものになる場合、せっかく作ったシステムが対応できない場合もあります。
この場合は、思い切って「サーバを構築しなおす」ということを検討するのも一計です。下手に既存のものをアップデートするよりも、作り直してしまうのが速いということは意外とあります。当然、それだけ手間がかかる可能性もあるので、アップデートする時の作業量との見合いとなるでしょう。
最近では、構築の自動化に伴う「Immutable Infrastructure(イミュータブルインフラストラクチャ)」という考え方があります。本番環境にアップデートを適用していくのではなく、アップデートが必要になった時に新たに環境を構築していく手法です。また、コンテナなどを活用した構築方法もあるので、参考にしてみるとよいでしょう。
侵入を許していないかどうかのチェック
サーバーは、定期的に攻撃者の侵入を許していないかどうかのチェックを行うことが望ましいと言えます。ここでは詳細は割愛しますが、スキャンタイプのチェックツールだけでなく、SnortやTripwireといった侵入検知システム(IDS)などの導入も検討してください。
まずは通常時の作業として、サーバーが正常に動作している場合でも発生する作業をいくつか挙げてみました。システムの種類によっては他にユーザーの追加やストレージ容量のチェックなどの作業が発生する場合があります。事前に想定して検証しておくのはもちろんのこと、サーバーの稼働後に判明した作業についても、きちんとテスト環境で検証し、本番環境で実施する、という基本的な流れを忘れずに取り組んでください。
- 筆者紹介
川原 龍人 氏
1975年生まれ。
著書に「BIND9によるDNSサーバ構築」、「シェルスクリプト ポケットリファレンス Bash編(技術評論社)」など。
予備校講師としても活躍中。Linuxとのつきあいは20年を超える。
バックナンバー
第14回:バックアップ
第13回:異常発生時の対応
第12回:サーバー構築という仕事
第11回:ユーザー教育の重要性
第10回:テスト環境を構築する
第9回:ログローテーションとは
第8回:ログの取得と管理
第7回:アクセス制限
第6回:OpenSSHの活用
第5回:ユーザーアカウントとアクセス制限
第4回:テスト環境を構築する
第1回:Linuxでサーバーを構築しよう