WordPressのPHPを5.4から7.0に更新してみた

wordpress-logo

はじめに

AWSチームのすずきです。

今回、ElasticBeanstalkのPHPプラットフォームで稼働していたWordpress環境、 PHPのバージョンを「5.4」から「7.0」へ更新を実施する機会がありました。

従来のPHP5と比較して大幅な性能改善が実現されたと謳われているPHP7.0。 移行作業中に、バージョン「5.4」、「7.0」を並行稼動中させ、 両者の性能比較を行う機会がありましたので紹介をさせて頂きます。

環境

ElasticBeanstalk プラットフォーム

  • 64bit Amazon Linux 2016.09 v2.3.3 running PHP 5.4
    • PHP 5.4.45
  • 64bit Amazon Linux 2016.09 v2.3.3 running PHP 7.0
    • PHP 7.0.16

共通

  • インスタンスタイプ: c3.large
  • AMI: aws-elasticbeanstalk-amzn-2016.09.1.x86_64-php70-hvm-201704040656 (ami-7e4d6b19)

構成

  • 同一のVPC内にPHP5.4、PHP7.0環境を配置し、共通のRDS(Aurora)をWordpressのDBとして利用しました。

eb-php7-6

  • ElasticBeanstalk PHP5.4プラットフォームで稼働中の環境をPHP7.0への変更は提供されていない為、既設のPHP5.4環境のVPC設定などを踏襲した、新しいPHP7.0環境を設置しました。

eb-php7-4

  • PHP5.4とPHP7.0環境の並行稼動、PHP7.0のElasticBeanstalk環境で起動したEC2を、PHP5.4環境のELBにアタッチして実現しました。

eb-php7-5

  • PHP7への完全切替は、ElasticBeanstalkのDNSスイッチにより実現しました。

比較

  • SaaSでアプリケーションパフォーマンス監視(APM)、サーバリソース監視を提供するNewRelicを利用して、並行稼動期間中(約1時間)の稼働状況の比較を行いました。

リソース監視

  • CPU使用率: 45% → 20%、ロードアベレージ: 1.0 → 0.2 とサーバ負荷の大幅な減少を確認できました。
  • メモリ、ディスクIO、ネットワークIOは同等でした。

PHP 5.4

php54-70-11-server-php54

PHP 7.0

php54-70-12-server-php70

APM(PHP)

  • トランザクション時間、平均値で 3000ms強 → 2000ms弱に短縮が確認されました。
  • スループットは、100rpm前後で同等、ほぼ均等な負荷分散が実施されていました。
  • PHP5.4で発生していた4500〜5500ms、長めの時間を必要としていたトランザクション、PHP7.0では確認されなくなり、これが平均所要時間の短縮に繋がった模様です。
  • パーセンタイル値、各種中間値の比較でも、PHP7.0環境の改善が確認できました

PHP 5.4

php54-70-01-webtransaction-php54

php54-70-05-web-histgram-php54

php54-70-07-web-percentile-php54

PHP 7.0

php54-70-02-webtransaction-php70

php54-70-06-web-histgram-php70

php54-70-08-web-percentile-php70

まとめ

ElasticBeanstalk のPHPプラットフォームで稼働していたWordpress、 実行環境のPHPを5.4→7.0に変更するだけで、1.5〜3倍程度の性能改善が確認でき、 アクセス集中時間帯の性能の安定化や、EC2インスタンス台数の抑制によるAWS費用節約の目処が付きました。

また、Amazon Linuxの公式リポジトリで配布されている古いphpのパッケージについては、 2016.09 AMIのリリース時、以下の提供停止の計画の案内がありました。

  • 2017年9月: php53、php54
  • 2018年3月: php55

Amazon Linux AMI 2016.09 Release Notes - Package Deprecation

2017年4月現在、Wordpressが推奨するPHPのバージョンは7以上とされており、公式サポートが終了した 古いバージョンの利用については、「サイトがセキュリティの脆弱性にさらされる危険があります。」との注意喚起も なされています。

AmazonLinuxでPHP5.xの利用されているシステムでは、アプリケーションサーバとしての性能に優れ、今後のメインストリームとなると予想されるPHP7.0、是非お試し頂ければと思います。

参考リンク