この記事は何?
セキュリティ対応のため AWS EC2 (ubuntu) サーバーのパッケージをアップデートした時のメモです。
OS バージョンのアップデートについての記事ではありません!
手順
1. バックアップ作成
まず、EC2インスタンスのバックアップ(AMI)を作成します。これにより、何か問題が発生した場合に、システムを以前の状態に復元できます。
- AWS Management Consoleにログインし、EC2ダッシュボードに移動します。
- バックアップしたいインスタンスを選択します。
- 「アクション」→「イメージとテンプレート」→「イメージを作成」を選択します。
- 以下の情報を入力します:
- イメージ名
- イメージの説明
- 「インスタンスを再起動」オプション設定
- このオプションを有効にすると、バックアップ作成中にサーバーが停止します。停止したくない場合はチェックを外しておきます。
- 「イメージを作成」ボタンをクリックします。
作成には少し時間がかかります。EC2ダッシュボードの「AMI」セクションで、ステータスが「利用可能」になったことを確認してください。
また、「スナップショット」セクションにも新しいエントリが追加されているはずです。両方のリソースに対して、Nameタグを設定しておくと、後で識別しやすくなります。
2. システムアップデート
バックアップが完了したら、システムのアップデートを行います。
-
EC2インスタンスにSSH接続します
-
現在のカーネルバージョンを確認します
uname -a
出力例
Linux ip-10-1-2-23 5.15.0-1019-aws ...
-
rootユーザーに切り替えます
sudo su -
-
パッケージリストを更新し、システムをアップグレードします
apt update apt upgrade
解説:
-
apt update
: パッケージリストを最新の状態に更新します。これにより、利用可能な最新のソフトウェアバージョン情報を取得します。 -
apt upgrade
: 実際にインストールされているパッケージを最新バージョンにアップグレードします。セキュリティパッチや機能改善が適用されます。
このプロセスは時間がかかることがあります。途中でピンク色の画面(ncursesベースのダイアログ)が表示されることがありますが、問題ありません。「OK」を選択して進めてください。
-
-
アップグレードが完了したら、システムを再起動します
reboot
3. 古いカーネルイメージの削除
システムアップデート後、不要になった古いカーネルイメージを削除して、ディスク容量を節約します。
-
再びrootユーザーに切り替えます
sudo su -
-
不要なパッケージを自動削除します
apt autoremove
解説:
apt autoremove
は、他のパッケージに依存されていない不要なパッケージを自動的に削除します。これにより、システムがクリーンに保たれ、ディスク容量を節約できます。 -
現在のカーネルバージョンを確認します
uname -a
出力例
Linux ip-10-1-2-23 6.5.0-1024-aws ...
-
インストールされているすべてのカーネルイメージを確認します
dpkg --list | grep linux-image
出力例
ii linux-image-5.15.0-1011-aws 5.15.0-1011.14 ... rc linux-image-5.15.0-1017-aws 5.15.0-1017.21 ... ii linux-image-5.15.0-1019-aws 5.15.0-1019.23 ... ii linux-image-6.5.0-1024-aws 6.5.0-1024.24~22.04.1 ... ii linux-image-aws 6.5.0.1024.24~22.04.1 ...
解説: このコマンドは2つの部分から成ります
-
dpkg --list
: インストールされているすべてのパッケージをリスト表示します。 -
grep linux-image
: 出力から "linux-image" を含む行のみをフィルタリングします。
これにより、システムにインストールされているすべてのLinuxカーネルイメージを確認できます。
-
-
古いカーネルイメージを削除します
apt-get remove --purge linux-image-5.15.0-1011-aws apt-get remove --purge linux-image-5.15.0-1017-aws apt-get remove --purge linux-image-5.15.0-1019-aws
解説:
apt-get remove --purge
コマンドは、指定したパッケージを完全に削除します。--purge
オプションは、パッケージの設定ファイルも含めて完全に削除することを指示します。これにより、古いカーネルイメージが完全にシステムから削除されます。 -
再度、不要なパッケージを削除し、GRUBを更新します
apt-get autoremove update-grub
解説:
-
apt-get autoremove
: 再度不要なパッケージを削除します。カーネル削除後に依存関係がなくなったパッケージも削除されます。 -
update-grub
: GRUBブートローダーの設定を更新します。これにより、ブートメニューから削除したカーネルのエントリが取り除かれます。
-
-
正しく削除されたことを確認します:
dpkg --list | grep linux-image
解説: このコマンドを再度実行することで、古いカーネルイメージが正しく削除され、最新のカーネルイメージのみが残っていることを確認できます。
出力例
ii linux-image-6.5.0-1024-aws 6.5.0-1024.24~22.04.1 ... ii linux-image-aws 6.5.0.1024.24~22.04.1 ...
-
最後に、システムを再起動して問題がないことを確認します
reboot
4. 動作確認
すべての更新と再起動が完了したら、稼働させているアプリケーションが正常に動作することを確認します。
問題が発見された場合は、直ちにトラブルシューティングを行うか、必要に応じて作成したAMIバックアップを使用してシステムを復元することができます。
まとめ
メンテナンスは結構大変ですね...
もし間違いなどあればお知らせください。