unattended-upgrades は、Ubuntu / Debian 系で更新を自動適用するための仕組みです。 放っておくと更新が止まりがちな小規模サーバーで、セキュリティ更新だけでも自動で当てるために使います。
既定ではセキュリティ更新だけ
導入して有効化しただけの状態では、適用されるのはセキュリティ更新のみです。通常の機能更新まで自動化するかは設定で選びます。
判断はこう分けると迷いません。
- セキュリティ更新は自動でよい。当てない方がリスクが大きい
- 通常更新の自動化は慎重に。アプリの動作に影響する更新が混ざる
「全部自動」にした結果、ミドルウェアのバージョンが上がってアプリが動かなくなる、というのは実際に起きます。
更新しても再起動しなければ効かない
見落としがちな急所です。カーネルや共有ライブラリの更新は、再起動またはサービス再起動をするまで反映されません。 パッケージは新しいのに、動いているプロセスは古いライブラリを掴んだまま、という状態になります。
自動再起動を有効にできますが、その場合はサービス断が発生します。選択肢は3つです。
- 自動再起動を有効にし、時刻を業務時間外に指定する
- 再起動は手動にし、要否を通知だけ受け取る
- 冗長構成にして、1台ずつ再起動しても止まらないようにする
黙って失敗していないか
自動化の常で、動いていないことに気づきにくい仕組みです。ログは /var/log/unattended-upgrades/ に残るので、導入直後に一度は中身を見て、実際に適用されているかを確認してください。設定ファイルを書いただけで有効になっていない、という事故は珍しくありません。
実務で見るポイント
- 更新から除外したいパッケージ(DBやアプリ本体)はブラックリストで明示する
- メール通知を設定できるが、届かない設定のまま放置されがち。届くか実際に試す
- 自動更新はファイアウォールや鍵認証と並ぶ基礎対策。入れて終わりにしない