【AWS】LightsailのPHPバージョン問題:EC2に移行するのか、Lightsailインスタンスを作り直すのか

Amazon Lightsail
このサイトおよび関連する各ツールはAmazonが提供するVPSサービス「Lightsail」上で動いています。価格の割にスペックが高く安定して動いてくれていて非常に満足しているのですが、唯一不満というか不安に思っている点があってそれは「PHPのバージョンを上げられない」ということです。もう長いことWordPressに怒られてるんですよね。PHPのバージョンが古いから何とかしろと






LightsailのPHPバージョンを上げるのは難しい

すでに同じようなことを考えていろいろ調べてくれた方がいるみたいですが、結論から言うとどうやら難しいとのこと。


Lightsail の PHP は bitnami と言われるもので構成されており、PHP をアップデートする場合は bitnami 全てをアップデートしなければならなさそうです。半年くらいかけて英語含めて時間をかけて検索魔となりググりまくったのですが(時間かけすぎだろといわれそうですが。。)、結局これと言った有効な情報はありませんでした。。残念無念!!

【WordPress】LightsailでPHPをアップデートする方法 – SEブログ


記事の中では新しくLightsailインスタンスを作って移行するということを提案されていて、まあ確かにコスト面考えればそれが一番良いのかなと思う一方で、毎回バージョンを上げるごとにそんなことしてられないし、それならこの際EC2も移行してしまうのもアリなんじゃないのかなと思ったり。



LightsailからEC2に移行することで増えるコスト

当然コストが上がりますがその分自由度も上がります。気持ち的にはEC2に移行してしまいたい、それでAWSの色んな機能を試したいという思いはあるのですが、そのコストの上がり幅が割とシャレにならなくてですね。今だとLightsailのコストは月$26ぐらい(インスタンスが$10、DBが$15)なんですけど、ほぼ同スペックのEC2とRDSに移行するとこんな感じになります。


  • Lightsailインスタンス: $10 → EC2 t4g.small: $13.67
  • Lightsailマネージドデータベース: $15 → Amazon Aurora MySQL db.t3.small/40GB: $25.87


CloudFrontやCloudWatchは既に支払いが発生しているので移行しても変化無いとすると、移行で増えるコストはインスタンスとDBの移行で増えるコストの合計「$25 → $39.54」で約$15。

月$15の増分って微妙なライン

$15かー。$15上がって出来ることは飛躍的に増えるけどそれを実際に使うのか?といわれると多分使わない。AWSの色んなサービスを使うことで仕事の単価が上がったり、広告収入が増えたり、なんらかの増収が見込めるなら良いんですけど、多分PHPを7系の最新バージョン(もしくは8系)にアップグレードして終わりのような気もしないでもないです。経験として消化して終わり。だとすると月$15は高すぎるなあ。

AWS Batchとか触ってみたいんですけどねえ。今、言うてそんなにバッチ処理動かしてないしなあ。



当面は新しくインスタンスを作って移行するしか

Lightsailが提供するインスタンスごとにスペックが決まってるということなので、早い話、新しいLightsailインスタンスに移行すればスペックも上がるってことでもあります。先の記事では新しくインスタンスを作ってWordPress単体を移行するってのをやってましたが、たぶんそんなことしなくても丸ごと移行出来ると思うんですよね。以前Lightsailインスタンスのスペックをあげたときにやったのと同じ手法で。


以下の手順で驚くほどあっさり移行出来ました。

  1. 旧インスタンスを停止する(3分)
  2. 旧インスタンスのスナップショットを作成(10分)
  3. スナップショットから新しいインスタンスを作成
  4. 静的IPから旧インスタンスをデタッチ
  5. 静的IPに新インスタンスをアタッチ

実質的なダウンタイムは15分ぐらい。ほとんどはスナップショット作成の時間です。

Amazon Lightsail インスタンスをアップグレードしました。 – NOBODY:PLACE


あ、でもこれはスナップショットなので中のミドルウェアもまったく同じようにコピーされるのか。それじゃダメだ。やっぱり新しいインスタンスを完全にゼロから立ち上げて中身をコピーしていかないと。うへえ。それは面倒くさい。データは環境設定ファイル以外全部github上にある、SSLはCloudFrontに設定済みとはいえ、何が起きるかわからないしサーバ設定が発生したら地味にめんどいぞ。ちょっと試してみるぐらいの作業量じゃなくなりそうだなあ……

まあでも新しいインスタンスを作ってバージョンをチェックしてみるぐらいはいいかな?いずれ「Amazon Linux」から「Amazon Linux 2」に移行したいとは思っているし……やってみますか。そのうち。年内目標ぐらいで。