Ubuntu 18.04.6 LTS を 20.04 LTS にバージョンアップする

Alibaba Cloud Elastic Compute Service (以下、ECSと記載)で稼働中の Ubuntu を 18.04 LTS から 20.04.6 LTS にバージョンアップする作業の記録です。 このブログは ECS インスタンス上の Ubuntu の WordPress で動いていますが気づいたら Ubuntu 18.04 LTS は標準サポートの期限を迎えておりました。 Alibaba Cloud Security Center である程度の攻撃への防御力はあるとは思っていますがインターネット公開サーバのマナーとしてタイムリーにパッチを適用できる状態に是正しようと思います。

作業の流れ

作業は以下の流れで実施します。 このサーバは LAMP 環境で WordPress を動かしています。 ③の Ubuntu バージョンアップの中で Apache と PHP のバージョンがあがる結果なにもせずとも WordPress が動くか何らかの対処が必要となるかはわかりません。 やってみてエラーが出たら対処していきます。

  • 制約や前提条件などの確認
  • 作業前の ECS インスタンスのスナップショットバックアップ
  • Ubuntu のバージョンアップ
  • 動作確認

制約や前提条件などの確認

まずは Alibaba Cloud の ECS として Ubuntu のどのバージョンをサポートしているのか、しないものがあるのか、その際に制限や制約が無いかを確認します。

生成 AI の Google Gemini に聞いてみます。 生成 AI の利用に出遅れていたのでまずはどんどん使っていこうとしています。生成 AI は調べ物にはあまり向いていないとは思いつつ本当にそうなのか、使える部分もあるはずでその見極めなどの経験値を高めるために。

bigriver.jp
bigriver.jp

Alibaba Cloud Elastic Compute Service で利用出来る Ubuntu のバージョンを教えてください

Gemini
Gemini

2024年4月18日現在、Alibaba Cloud Elastic Compute Service(ECS)で利用可能なUbuntuのバージョンは以下の通りです。

最新LTSバージョン

  • Ubuntu 22.04 LTS (Focal Fossa)
  • Ubuntu 20.04 LTS (Focal Fossa)

以前のLTSバージョン

  • Ubuntu 18.04 LTS (Bionic Beaver)
  • Ubuntu 16.04 LTS (Xenial Xerus)

その他

  • Ubuntu 15.10 (Wily Werewolf)
  • Ubuntu 14.04 LTS (Trusty Tahr)

これらのバージョンは、すべてリージョンとインスタンスファミリーに関係なく利用可能です。ただし、一部の古いバージョンは、新しいバージョンほど頻繁に更新されない場合があります。

最新の情報については、Alibaba Cloudのドキュメントを参照してください:

特定のバージョンが必要な場合は、ECSインスタンスを作成時に選択できます。

その他ご不明な点があれば、お気軽にご連絡ください。

Ubuntu は 20.04 と 22.04 の二つの LTS に対応しているようです。 それぞれの EOL を Gemini に聞いてみます。

bigriver.jp
bigriver.jp

20.04 と 22.04 のEOLはいつ?

Gemini
Gemini

Ubuntu 20.04 と 22.04 のEOLについて
Ubuntu 20.04 LTS (Focal Fossa)

・標準サポート終了: 2025年4月11日
・延長サポート終了: 2030年4月11日

Ubuntu 22.04 LTS (Jammy Jellyfish)

・標準サポート終了: 2027年4月14日
・延長サポート終了: 2032年4月14日

詳細情報:

・Ubuntu 20.04 LTS リリースノート: https://wiki.ubuntu.com/FocalFossa/ReleaseNotes
・Ubuntu 22.04 LTS リリースノート: https://discourse.ubuntu.com/t/jammy-jellyfish-release-notes/24668
・Ubuntu サポートライフサイクルポリシー: https://ubuntu.com/support

補足:

・標準サポート期間中は、セキュリティアップデート、バグ修正、新機能が含まれるポイントリリースが定期的にリリースされます。
・延長サポート期間中は、セキュリティアップデートのみが提供されます。
E・OL(End of Life)以降も、Ubuntu 20.04 と 22.04 を引き続き使用することはできますが、セキュリティ上のリスクが高まるため、アップグレードを強く推奨します。

最新の情報については、常にUbuntuの公式リリースノートとサポートライフサイクルポリシーを確認することをお勧めします。

標準サポートは20.04 が来年、22.04 が2027年ということで今回は22.04 にバージョンアップする方向で考えます。 決定ではなく方向で考えるとしたのは 22.04 で問題が無いか他にも確認することがあるためです。 例えば Alibaba Cloud Security Center が 22.04 を対応しているか、WordPress を動かせる LAMP 環境を構築できるか、の2点について問題がないと確認できれば 22.04 にバージョンアップすることが可能と判断できます。

どんどん Gemini に聞いていきます。

bigriver.jp
bigriver.jp

Alibaba Cloud Security Center は Ubuntu 22.04 LTS をサポートしますか?

Gemini
Gemini

はい、Alibaba Cloud Security CenterはUbuntu 22.04 LTSをサポートしています。

2024年4月18日現在、Security CenterエージェントはUbuntu 22.04 LTSを含む以下のオペレーティングシステムをサポートしています。

サポート対象OS:

  • Windows 7、8、10
  • Windows Server 2008 R2、2012、2012 R2、2016、2019
  • Red Hat Enterprise Linux (RHEL) 7.0、7.2、7.4、7.5、7.6、8.0、8.1、8.2、8.3、8.4、8.5、8.6、8.7
  • CentOS Linux 7、8
  • SUSE Linux Enterprise Server (SLES) 12、15
  • Ubuntu 16.04 LTS、18.04 LTS、20.04 LTS、22.04 LTS
  • Debian 9、10、11
  • Oracle Linux 7、8

詳細情報:

ご注意:

  • Security Centerエージェントをインストールするには、root権限が必要です。
  • エージェントをインストールする前に、ファイアウォール設定を確認してください。

その他ご不明な点があれば、お気軽にご連絡ください。

Security Center は 22.04 をサポートするとのこと。Gemini が本当に正しいかはわからないので Alibaba Cloud の公式ドキュメント(https://www.alibabacloud.com/help/en/security-center/user-guide/overview-of-the-security-center-agent)も確認します。 そうすると Ubuntu は 22.04 はサポートリストに含まれず 20.04 までであることがわかりました。 

※後日、20.04に更新後Security Centerが動作しなくなった話はこちら

次は WordPress を動作させるための LAMP 環境について確認します。

bigriver.jp
bigriver.jp

WordPress 6.5をサポートするLAMP環境は?

Gemini
Gemini

WordPress 6.5を動作させるLAMP環境は以下の要件を満たす必要があります。

オペレーティングシステム:

  • CentOS Stream 8
  • Debian 11 (Bullseye)
  • Ubuntu 22.04 LTS (Jammy Jellyfish)

Webサーバー:

  • Apache 2.4.48以降
  • Nginx 1.21.0以降

データベース:

  • MariaDB 10.5以降
  • MySQL 8.0以降

PHP:

  • PHP 8.1以降

その他:

  • mod_rewriteモジュール (Apacheを使用する場合)
  • mysqli拡張モジュール (PHPを使用する場合)

推奨スペック:

  • CPU: 2コア以上
  • メモリ: 4GB以上
  • ストレージ: 10GB以上

注意事項:

  • 上記はあくまで最低限の要件であり、より高いパフォーマンスを得るためには、より高性能なハードウェアを使用することをお勧めします。
  • WordPress の公式サイトでは、より詳細なシステム要件を確認できます: https://wordpress.org/download/
  • 古いバージョンのオペレーティングシステム、Webサーバー、データベース、PHPを使用している場合は、セキュリティ上の脆弱性がある可能性があります。最新バージョンへのアップグレードを強く推奨します。

LAMP環境の構築方法:

LAMP環境を構築するには、様々な方法があります。以下は、一般的な方法の例です。

  • 手動でインストール: 各コンポーネントを手動でインストールし、設定します。
  • LAMPスタックインストーラーを使用する: Softaculous、EasyApache、WebminなどのLAMPスタックインストーラーを使用して、LAMP環境を自動的にインストールすることができます。
  • マネージドホスティングを使用する: WordPressに特化したマネージドホスティングサービスを使用すれば、LAMP環境のセットアップや管理を代行することができます。

ご自身のスキルや経験レベルに合わせて、最適な方法を選択してください。

その他ご不明な点があれば、お気軽にご連絡ください。

WordPress が動作する環境の条件について Gemini の回答はイマイチで不正確な情報が色々混ざっていました。 前提条件となっていない OS や Apache のバージョン指定があったりPHPは 7以上のはずが 8.1以上の記載など。 

実際に WordPress のホームページ(https://make.wordpress.org/hosting/2024/04/05/wordpress-6-5-php-compatibility/)での動作前提条件は以下の3つだけです。

  • PHP: 7.0+
  • MySQL: 5.5.5+
  • MariaDB: 5.5.5+

Gemini の練習もしながらですが今回は Ubuntu 18.04 から 20.04 へバージョンアップすることに決めました。

作業前の ECS インスタンスのスナップショットバックアップ

OS のバージョンアップということで失敗して OS が起動しない事態、OS は起動するけど WordPress が動作しない事態に備えて作業前のスナップショットバックアップを取得します。

データベースがある場合はデータベースを止めるなり別途データをダンプしてスナップショットしないと正しくリストア出来ない可能性がありますがデータベースは RDS に外だししているためオンラインでスナップショットを取得します。

Alibaba Cloud コンソールから ECS インスタンスの Snapshot 画面に移動し Create Disk Snapshot をクリックします。

スナップショットを取得する対象のディスクを指定し、任意のSnapshot Name を入力し OK をクリックします。

完了まで待ちます。

5分もかからずに完了しました。

Ubuntu のバージョンアップ

すでに手順は調べてあるのですが Google Gemini にも聞いてみます。

bigriver.jp
bigriver.jp

Ubuntu 18.04 から 20.04 にバージョンアップする手順を教えて

Gemini
Gemini

Ubuntu 18.04 から 20.04 へのアップグレード手順
重要事項:

・アップグレード前に、必ずバックアップを取ってください。アップグレード中に問題が発生すると、データが失われる可能性があります。
・アップグレードには、インターネット接続が必要です。
・アップグレードには、30分~1時間ほどかかる場合があります。

手順:

1.古いパッケージの削除:
sudo apt update && sudo apt upgrade

2.アップグレードツールのインストール:
sudo apt install do-release-upgrade

3.アップグレードチェック:
sudo do-release-upgrade

4.指示に従ってアップグレードを実行:
画面の指示に従って、アップグレードを完了してください。アップグレード中は、コンピューターが再起動される場合があります。

5. アップグレード完了後:
sudo apt update && sudo apt upgrade


上記の手順で問題が発生した場合は、以下のリソースを参照してください。

・Ubuntu 公式アップグレードガイド: https://ubuntu.com/blog/how-to-upgrade-from-ubuntu-18-04-lts-to-20-04-lts-today
・Ubuntu コミュニティフォーラム: https://askubuntu.com/questions
A・libaba Cloud ヘルプセンター: https://www.alibabacloud.com/support/serviceplan

その他注意事項:

・アップグレード前に、すべての重要なファイルをバックアップしてください。
・アップグレード中は、電源が切断されないようにしてください。
・アップグレードに問題が発生した場合は、慌てないでください。上記のリソースを参照するか、専門家に助けを求めてください。

参考情報:

Ubuntu 18.04 LTS サポート終了のお知らせ: https://ubuntu.com/blog/ubuntu-18-04-eol-for-devices
Ubuntu 20.04 LTS リリースノート: https://wiki.ubuntu.com/FocalFossa/ReleaseNotes
ご不明な点があれば、お気軽にご連絡ください。

今回の Gemini の回答に間違いはなさそうです。

ではバージョンアップを進めていきます。

まずは PKG の最新化を行います。

# apt update && sudo apt upgrade

つぎにOSのバージョンアップのためのツールを導入します。 すでにインストールされているようですが念のため実行します。

# apt install do-release-upgrade

そして OS のバージョンアップを実行します。

# do-release-upgrade

途中で色々確認がはいります。 SSHで接続したままやるのはお勧めしないよーとか、もしもの時用に 10022 port でSSH接続出来るようにしてあるから Firewallで通信通るようにしておいてねーとか、20.04で利用出来ないPKGが●●個あってそれは削除するよーとか、sshdなど設定ファイルを新しいものに置き換えるか既存のものをそのまま使うかの確認とか。  どうするかは環境次第、ケースバイケースなのでちゃんとメッセージ読んで判断するしかない感じです。

20分ほどでアップグレードは終了し、最後にシステムの再起動を求められますので実施します。

System upgrade is complete.

Restart required 

To finish the upgrade, a restart is required. 
If you select 'y' the system will be restarted. 

Continue [yN] y

動作確認

まずはこのブログサイト(https://www.bigriver.jp/)に正常にアクセスできることを確認します。 

問題なくアクセス出来ています。

Ubuntu にログインし、OSバージョンを確認します。 “cat /etc/os-release”を実行します。

予定通りに 20.04にバージョンアップされていることを確認しました。

root@bigriver3:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Alibaba Cloud Security Center からエージェントが正常に動作しているか確認します。

Agent Status は Online とのことで問題ありません。 Kernel も 5.4.0 と今回の 20.04 で想定した Kernel バージョンとして Security Center からも認識されています。

PHPまわりとかでもうちょっとトラブルに遭遇するかと思いましたがあっさりとバージョンアップに成功してしまいました。

以上