回答:
無人アップグレードパッケージは、Ubuntuで重要なバグ修正とセキュリティパッチを自動的に適用する標準的な方法です。
すべてのUbuntuシステムにこれをインストールすることをお勧めします。
sudo apt-get update &&
sudo apt-get install unattended-upgrades
独自のcronジョブを作成する必要はありません。パッケージによりインストールされます。
動作を変更する場合は、デフォルト構成を編集できます:https : //help.ubuntu.com/lts/serverguide/automatic-updates.html
unattended-upgrades
2015年から2020年まで問題なく使用しています。以下の小さなセットアップ(DigitalOcean上)があります。
nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
過去の良好なパフォーマンスに基づいて、この方法で更新を行うことは、それを行わないよりも安全であると感じています。しかし、それは必ずしも将来を保証するものではありません!
これはapache
、他のユーザーのレポートとapache
更新の私の過去の経験に基づいて、にとってあまり良い考えではないかもしれません。[上記およびここを参照 ]
を使用unattended-upgrades
すると、リリースがEOLに近づくと、手動による介入が必要になります。
(質問とは別に、TWiki、WordPress、およびJenkinsでの私の経験では、これらのアプリを最新の状態に保つことは、OS自体よりも実際に大きな懸念事項ですが、もちろん両方を実行する必要があります。 Dockerコンテナ内で実行される非ルートプロセスとしてインターネットに接続されたアプリをサンドボックス化できます。)
ただし、ベストプラクティスについて尋ねたので、AWSドキュメントで推奨される主なアプローチは次のとおりです。
新しいインスタンスを作成して起動し、現在のオンラインインスタンスを置き換えます。次に、現在のインスタンスを削除します。
新しいインスタンスには、セットアップ中にセキュリティパッチの最新セットがインストールされます。
(2020年2月)
これは、青緑展開戦略の一部として実行できます。ここでの利点は、トラフィックを切り替える前に新しいサーバーに対してテストを実行できることです。テストが徹底的であれば、理論上、更新は完全に自動化され、稼働前に検証され、ダウンタイムは発生しません。
その他の利点:
テストは、人間の注意が必要な場合に高度な警告を与えることができます(unattended-upgrades
問題が発生した後にのみユーザーから警告が出される場合とは対照的に!)。
システムが危険にさらされた場合、またはプロバイダーを切り替えることにした場合、このアプローチにより、新しい展開を簡単に展開できます。配備戦略は、古代の記憶ではなくスクリプト化されています。
しかし、もちろん、このアプローチには単純なインストールよりも多くのセットアップが必要unattended-upgrades
であり、より複雑であるため、まだエラーの余地があります。
AWSは、「Update Dependencies stackコマンド」の実行についても言及しています。これは、に類似しunattended-upgrades
た何かを行う公式の方法のようです。Instancesインターフェイスからトリガーできるようですが、自動化できるかどうかはわかりません。