老朽化サーバーをAIに丸投げして半日で移設した話

最近はギターの練習にかまけてばかりで、なかなかインフラ周りの面倒事に手をつけられていなかったのだけれど、いよいよ限界がやってきました。

1. CentOS 7の老朽化、そして遅さの限界

このブログ「Glob」を含むWebサイト群は、長年さくらのVPSで運用してきました。OSは CentOS 7.7(2019年リリース)。サーバー構成は以下の通り。

  • Webサーバー(typea.info): WordPress、MediaWiki、FreeStyleWiki を稼働
  • リポジトリサーバー : SVN と Git を稼働

つまり、2台のVPSを借りて運用していたわけです。

CentOS 7のサポート期限は2024年6月にすでに終了しており、カーネルは3.10系。Apacheも2.4.6と古く、HTTP/2にも対応していません。そしてとにかく遅い。ページの表示にやたら時間がかかるし、管理画面の操作もモッサリ。体感で「もう無理」というレベルでした。

2. 新サーバーを借りてみたものの……

重い腰を上げて、ConoHa VPSで新しいサーバーを契約しました。OSは AlmaLinux 8.10。CentOSの後継として実績のあるRHEL互換ディストリビューションです。カーネルは4.18系にアップグレードされ、Apache 2.4.37でHTTP/2にも対応。スペック的にも申し分ありません。

で、意気揚々とAI(ChatGPTなど)に相談しながら移設作業を始めたのですが……。

これがまあ、めちゃくちゃ面倒

  • ミドルウェアのバージョン合わせ(PHP 7.4をAlmaLinux 8のAppStreamで入れる必要がある)
  • MySQLの認証方式の違い(caching_sha2_password vs mysql_native_password
  • WordPressのDB移行、MediaWikiのDB移行、それぞれ微妙に手順が違う
  • FreeStyleWikiはPerl CGIなので、Perlのバージョンアップに伴う正規表現の非互換……
  • SVN/Gitリポジトリの移行とApache VirtualHostの設定
  • SSL証明書(Let’s Encrypt)の新規取得と自動更新設定

AIに聞けば手順は教えてくれるけれど、結局コマンドを打つのは自分。コピペして、実行して、エラーが出たらまた聞いて……の繰り返し。正直、週末を何度か費やしても全然終わる気がしなくて、しばらく放置してしまいました。

3. Antigravityに全部やらせる

そんな折、Google DeepMind の Antigravity を使い始めました。こいつはチャットで指示するだけじゃなくて、SSHでサーバーに直接接続してコマンドを実行してくれます。

思い切って、新サーバーのSSH接続情報(ホスト、ポート、秘密鍵)をAntigravityに渡して、こう言いました。

「このサーバーに環境を構築して、旧サーバーからデータを全部移してくれ」

すると、Antigravityは以下の作業を自律的に進めてくれました。

STEP 1: 環境調査

旧サーバーにSSH接続して、OS・ミドルウェアのバージョン、ディレクトリ構成、DB一覧などを自動で調査。移行計画書まで作ってくれました。

STEP 2: ミドルウェア構築

新サーバーにApache 2.4、MySQL 8.0、PHP 7.4をインストール。必要なモジュール(mod_ssl、mod_http2、mod_cgiなど)も全部入れて設定。

# Antigravityが実行したコマンド例
dnf install -y httpd mod_ssl mod_http2
dnf module reset php
dnf module enable php:7.4
dnf install -y php php-mysqlnd php-xml php-mbstring php-json php-gd

STEP 3: データ抽出

旧サーバーからWebコンテンツを丸ごとtar.gzに圧縮し、MySQLの全データベースをダンプ。

# 旧サーバー上で実行
tar czf /tmp/web_data.tar.gz /var/www/html/
mysqldump -u root --all-databases > /tmp/mysql_all_backup.sql

STEP 4: データ転送・復元

SCPで新サーバーに転送し、tarを展開、DBをインポート。

STEP 5: アプリケーション調整

ここが人間だと一番ハマるところ。Antigravityは各アプリの設定ファイルを読み取って、自動で修正してくれました。

  • FreeStyleWiki: Perl 5.26で厳格化された正規表現に合わせて、Parser.pmの波括弧を3箇所エスケープ修正({{\{\{)。500エラー解消。
  • MediaWiki: LocalSettings.phpのDB接続先・CORS設定を修正。
  • WordPress: wp-config.php of DB接続情報を更新、AllowOverrideの設定。
  • MySQL: 認証方式を mysql_native_password に明示指定。

STEP 6: HTTPS化・セキュリティ

DNS切り替え後、Let’s Encryptで証明書を取得し、自動更新のcronも設定。SSHポートは22番を閉塞して1192番のみに。

ここまでの作業、約半日で完了しました。人間が手動でやっていたら何週間かかっていたかわかりません。

4. 結果:スペック向上と劇的な費用削減

移設の前後のスペックと費用の詳細をまとめます。サーバーをさくらのVPS 2台からConoHa VPS 1台に統合したことで、性能がアップしたにもかかわらず驚くほどのコスト削減になりました。

ハードウェアスペックの比較

旧環境は2台合わせてメモリ1.5GB、SSD 75GBでしたが、新環境のConoHa VPSでは1台でメモリ2GB、SSD 100GBと大幅にリソースが拡張されました。

構成要素 旧環境(さくらのVPS 2台) 新環境(ConoHa VPS 1台)
Webサーバー (typea.info) SSD 50GB / 仮想2Core / 1GB メモリー (990円/月) SSD 100GB / 3Core / 2GB メモリー
(3,315円 / 3ヶ月パック)
リポジトリサーバー  SSD 25GB / 仮想1Core / 512MB メモリー (698円/月)
OS / カーネル CentOS 7.7 (サポート終了) / Kernel 3.10 AlmaLinux 8.10 / Kernel 4.18
ミドルウェア Apache 2.4.6 / MySQL 8.0.19 / PHP 7.4.2 Apache 2.4.37 (HTTP/2対応) / MySQL 8.0.46 / PHP 7.4.33

費用削減(3ヶ月換算)

最も大きなメリットがこの月々の運用費用です。3ヶ月で換算すると、実に35%近くのコストカットを実現しました。

  • 旧環境(さくらのVPS 2台合計): 1,688円/月 × 3ヶ月 = 5,064円
  • 新環境(ConoHa VPS 1台): 3,315円 / 3ヶ月パック = 3,315円(月換算: 1,105円)
  • 削減効果: 3ヶ月で 1,749円の削減(月あたり 583円お得!)

体感速度は劇的に改善しました。ページの表示が明らかに速くなり、WordPress管理画面もサクサク動きます。スペック自体が向上しているため、1台に集約してもボトルネックは発生していません。

リポジトリへのアクセスはApacheのVirtualHostでとして設定してあるので、ローカルのGitやSVNクライアント側の設定変更は一切不要です。

まとめ

今回の移設で学んだことをまとめると、こうなります。

  • 老朽化したCentOS 7からAlmaLinux 8.10へ移行
  • さくらのVPS 2台 → ConoHa VPS 1台に統合
  • メモリを1.5GB→2GB、SSDを75GB→100GBにスペックアップ
  • 費用を3ヶ月あたり 5,064円 → 3,315円(-1,749円) に削減
  • AIに相談しながら手作業 → 面倒すぎて放置
  • Antigravityに丸投げ → 半日で完了

サーバー移設のような「やらなきゃいけないけど面倒な作業」こそ、AIエージェントの本領発揮だなと実感しました。SSHの鍵を渡す勇気さえあれば、あとは全部やってくれます。

めでたし。

Follow me!