Blog西麻布のクリエイティブラボ「Makery」でテクノロジーとアイデアをこねています。Webサーバのソフトウェア・アップデートについて考えてみた2018-06-22Webサーバのソフトウェア・アップデートについて考えてみたプログラミングはじめにテクノロジーデザイングループの木村です。この記事では、ビービーメディアで使用頻度の高いCentOSを例に、WebサーバOSのアップデート設定をどのように行うかを考えてみたいと思います。皆さんが普段利用されているパソコンには、Windowsには「WindowsUpdate」、MacOSにも「ソフトウェア・アップデート」と、それぞれ必要に応じてOSの自動更新を行う機能が存在しています。個人向けのパソコンと同じような仕組みで動作しているため、OSやミドルウェアのアップデートはやはり必要です。Webサーバ向けのOSでは個人用パソコンとは異なり、通常デフォルトの状態では自動更新はオンになっていないため、サーバ管理者が都度設定を行うことになります。共用レンタルサーバやroot権限なしのマネージドサーバを利用する場合、特にこれらのアップデートを意識することはありませんが、VPSやAWSなどのクラウドサーバを使用する場合、サーバ管理者はこれらの仕組みについて理解しておく必要があります。最低限の自動アップデートCentOSでは、OSにインストールされるアプリケーションの管理ツールとして、yumという仕組みが存在します。サーバOSにログインした状態で以下のコマンドを実行すると、インターネットから対象のソフトウェアをダウンロードし、新規インストールすることができます。httpdインストール済みのソフトウェアをアップデートするコマンドはこちらです。update」を自動で実行するように定期実行を行えば、アップデートを行うことは可能です。update」を行っても、即座に更新内容が反映されるとは限らないということです。起動済みのアプリケーションに対して新しいバージョンへの更新がインストールされた場合、一度ソフトウェアの再起動を行わないと、変更が反映されません。アップデートの定期実行を行った後で合わせて再起動も行うためには、以下のように複数のコマンドを組み合わせて設定する必要があります。-r自動アップデートの改善これでソフトウェアの更新&再起動はかかるようになりましたが、この設定には若干の問題があります。それは、特に何の更新もなかった場合にも、定期実行のたびにサーバOSが再起動されてしまうということです。数分程度ではありますが、毎日再起動のタイミングでサーバダウンしているということになりますし、サーバの死活監視を設定している場合は、毎晩異常発生の通知が届いてしまいます。update」による更新後に再起動の要・不要をチェックする必要があり、そのために「yum-utils」のツールを使用します。以下のコマンドでツールをインストールします。コマンドが使用できるようになります。カーネルなどコア部分をチェックし、再起動の必要があるソフトウェア名を一覧表示することができます。以下のようなコマンドを定期実行すれば、自動的にソフトウェアのアップデートをチェックし、必要な場合は自動で再起動を行うことができます。返さないため、同様の書き方ができません。そのため、サービスに更新があった場合はプロセスの再起動を行い、OSのコア部分に更新がある場合はOS自体の再起動を行う、などの細やかな自動化を行うためには別途シェルスクリプトを作成する必要があります。自動アップデートを止めるそもそも、ソフトウェアの自動更新を行った際に自動で再起動がかかることについては若干のリスクがあります。稀なケースだとは思いますが、OSのコア部分が自動でアップデートされ、再起動後にうまくソフトウェアが動作しなかった場合は長時間のサーバダウンが発生してしまいます。一度適用した更新を元に戻すことは難しく、原因の調査・復旧にも時間がかかります。このことを考慮してサーバの稼働率を重視する場合、アップデートについては管理者にメールで通知を行い、実際のアップデート作業や再起動は手動で行うことも可能です。この場合、「yum-cron」を使用します。インストールは以下のコマンドで行います。yum-cron次に、yum-cronの設定ファイルを編集します。/etc/yum/yum-cron.conf色々な設定項目が存在するのですが、以下設定項目を修正します。再起動すれば、毎日自動的にソフトウェアがアップデートをチェックし、更新がある場合は指定したメールアドレスに通知されるようになります。update」や「needs-restarting」を行います。この運用方法では、本番環境と同じ状態の開発用サイトを用意しておけば事前にテストを行うことも容易ですし、アップデートによって何か不具合が発生した場合も速やかに対処することができます。一方で、OSやミドルウェアにアップデートが入る頻度はそこそこ高いので、管理するサーバの台数が増えたり、管理するOSの種類が増えアップデートのタイミングがバラバラになってくると適時対応していくのもなかなか大変になるので、悩ましいところです。まとめ今回取り上げたテーマは基本的な事ではあるのですが、案外掘り下げて説明されている記事を見かけないため、個人的な理解をまとめてみました。ご意見、ツッコミなどあればお気軽に教えていただければ幸いです。プログラマー中野です。はてなブログPro自主制作やハッカソン、ワークショップなど、ビービーメディアのラボ「Makery」の活動をアップします。体験できます!VRきもだめし2018世界VR産業大会(中国南昌)出展WEBページをスクレイピングしたい。PUPPETEERで。関連リンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。