0
0

EC2 ubuntu でパッケージのアップデートを行うコマンドのメモ

Posted at

この記事は何?

セキュリティ対応のため AWS EC2 (ubuntu) サーバーのパッケージをアップデートした時のメモです。

OS バージョンのアップデートについての記事ではありません!

手順

1. バックアップ作成

まず、EC2インスタンスのバックアップ(AMI)を作成します。これにより、何か問題が発生した場合に、システムを以前の状態に復元できます。

  1. AWS Management Consoleにログインし、EC2ダッシュボードに移動します。
  2. バックアップしたいインスタンスを選択します。
  3. 「アクション」→「イメージとテンプレート」→「イメージを作成」を選択します。
  4. 以下の情報を入力します:
    • イメージ名
    • イメージの説明
    • 「インスタンスを再起動」オプション設定
      • このオプションを有効にすると、バックアップ作成中にサーバーが停止します。停止したくない場合はチェックを外しておきます。
  5. 「イメージを作成」ボタンをクリックします。

作成には少し時間がかかります。EC2ダッシュボードの「AMI」セクションで、ステータスが「利用可能」になったことを確認してください。

また、「スナップショット」セクションにも新しいエントリが追加されているはずです。両方のリソースに対して、Nameタグを設定しておくと、後で識別しやすくなります。

2. システムアップデート

バックアップが完了したら、システムのアップデートを行います。

  1. EC2インスタンスにSSH接続します

  2. 現在のカーネルバージョンを確認します

    uname -a
    

    出力例

    Linux ip-10-1-2-23 5.15.0-1019-aws ...
    
  3. rootユーザーに切り替えます

    sudo su -
    
  4. パッケージリストを更新し、システムをアップグレードします

    apt update
    apt upgrade
    

    解説:

    • apt update: パッケージリストを最新の状態に更新します。これにより、利用可能な最新のソフトウェアバージョン情報を取得します。
    • apt upgrade: 実際にインストールされているパッケージを最新バージョンにアップグレードします。セキュリティパッチや機能改善が適用されます。

    このプロセスは時間がかかることがあります。途中でピンク色の画面(ncursesベースのダイアログ)が表示されることがありますが、問題ありません。「OK」を選択して進めてください。

  5. アップグレードが完了したら、システムを再起動します

    reboot
    

3. 古いカーネルイメージの削除

システムアップデート後、不要になった古いカーネルイメージを削除して、ディスク容量を節約します。

  1. 再びrootユーザーに切り替えます

    sudo su -
    
  2. 不要なパッケージを自動削除します

    apt autoremove
    

    解説: apt autoremove は、他のパッケージに依存されていない不要なパッケージを自動的に削除します。これにより、システムがクリーンに保たれ、ディスク容量を節約できます。

  3. 現在のカーネルバージョンを確認します

    uname -a
    

    出力例

    Linux ip-10-1-2-23 6.5.0-1024-aws ...
    
  4. インストールされているすべてのカーネルイメージを確認します

    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カーネルイメージを確認できます。

  5. 古いカーネルイメージを削除します

    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 オプションは、パッケージの設定ファイルも含めて完全に削除することを指示します。これにより、古いカーネルイメージが完全にシステムから削除されます。

  6. 再度、不要なパッケージを削除し、GRUBを更新します

    apt-get autoremove
    update-grub
    

    解説:

    • apt-get autoremove: 再度不要なパッケージを削除します。カーネル削除後に依存関係がなくなったパッケージも削除されます。
    • update-grub: GRUBブートローダーの設定を更新します。これにより、ブートメニューから削除したカーネルのエントリが取り除かれます。
  7. 正しく削除されたことを確認します:

    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 ...
    
  8. 最後に、システムを再起動して問題がないことを確認します

    reboot
    

4. 動作確認

すべての更新と再起動が完了したら、稼働させているアプリケーションが正常に動作することを確認します。
問題が発見された場合は、直ちにトラブルシューティングを行うか、必要に応じて作成したAMIバックアップを使用してシステムを復元することができます。

まとめ

メンテナンスは結構大変ですね...
もし間違いなどあればお知らせください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0