EC-CUBE2からの乗り換えを考える

EC-CUBE使ってる方、多いですよね。

しかも、バージョンが2.xの方。

物自体は長年稼働してきたので悪くはないですが、現時点だとかなりのカスタマイズをしないとPHP7環境では動かなかったり、パフォーマンス的にもあまりよくないです。

急なアクセス数増加の場合など、サーバのスペックを上げる、または台数を増やすことで乗り切れることもありますが、EC-CUBE自体のパフォーマンスが良ければ、サーバの増強や増設は不要になるかもしれません。

そこで、今回はEC-CUBE2を使ってる皆さんのために、乗り換えを考えてもらうための内容をまとめてみました。

乗り換えの候補として、今回はEC-CUBE4を選んでみたいと思います。

最初にパフォーマンスについて比較してみたいと思います。

パフォーマンスについて

EC-CUBE2に決済プラグインだけをいれたものと、同じEC-CUBE2のデータをプラグインを使ってインポートしたEC-CUBE4での比較となります。

環境にも差異がありますので、下記に記載しておきます。

EC-CUBE2の環境

  • Apache2.4
  • PHP5.6
  • MySQL5.5

EC-CUBE4の環境

  • Nginx1.16
  • PHP7.3(php-fpm)
  • MySQL5.7

リクエストベースで簡単に見たいので、Apache Bench(ab)を使って比較していきます。

Apache Benchについては、こちらで取り上げてます。

実行する内容としては以下の内容となります。

ab -c 50 -n 50 http://localhost

EC-CUBE2の結果

  • Requests per second:4.46
  • Failed requests:8

EC-CUBE4の結果

  • Requests per second:20.72
  • Failed requests:0

EC-CUBE2では、たった同時50件のリクエストで8件の接続エラーが発生していますが、EC-CUBE4では全く問題がありません。
※ApacheとNginxの違いも大きいかもしれませんが。

もう少し、数値を大きくして結果を見ていきましょう。

ab -c 100 -n 100 http://localhost

こちらの内容で実行した結果は、以下の通りです。

EC-CUBE2の結果

  • Requests per second:6.70
  • Failed requests:31

EC-CUBE4の結果

  • Requests per second:22.01
  • Failed requests:0

31件も繋がらないと、売り上げにもかなり影響しそうですよね・・・

Requests per secondを見ても、秒間で捌ける数がかなり違います。
※ApacheとNginxの違いも大きいかもしれませんが。

秒間で捌ける数を増やすには、サーバを増強/増設することで数値を上げることが出来るかもしれませんが、それなりのランニングコストは発生するでしょう。

売り上げが上がってもランニングコストも増えてしまうのは、あまり喜ばしいことではないですよね。

そのためには、根本(EC-CUBE2)から変えていく必要があります。

移設先はEC-CUBE4?

EC-CUBE4では、EC-CUBE2とはまったく違う作りになっています。

EC-CUBE2が木を切ってくるところから、削って繋いで・・・で建てた家だとすると、EC-CUBE4は工場で作られた家の部品を組み合わせて建てられる家くらいの違いがあります。

システム的な内容となりますが、EC-CUBEはEC-CUBE4の前身であるEC-CUBE3から、「symfony」と言うPHPのフレームワークを利用して作られています。

フレームワークとは、プログラムを作る際の基本となる仕組みが用意されたものです。

PHPでのフレームワークとしては、「CakePHP」や「Laravel」などいろいろなものがあります。

フレームワークで作られているからパフォーマンスが良いか?と言われると、そうでもないのですが、速度アップのための方法も用意されていたりします。

本題のEC-CUBE4については、EC-CUBE2のときよりもパフォーマンスは向上しています。

PHP5からPHP7に変わるだけでも速度が大幅に向上しており、商品データや売り上げデータなどを保持するためのデータベースへの接続処理についても、大きく改善され速度アップに繋がっています。

本当にEC-CUBE4でいいのかな

EC-CUBE4について、開発者目線の内容となってしまいますが、いろいろと問題点もあります。

実際に使おうと思った際に、以下の点には困りました。

  • 公式ドキュメントの内容が薄い
  • プラグインがEC-CUBE2よりも少ない、そして有料が多い
  • Google先生の情報量も少ない

この辺りは、使用率がまだそんなに上がっていないと言うところでしょうか。

情報量がないと、どうしても作業工数が増えてしまい、それに伴いコストも大きくなってしまいます。

結局、移設先はどうすれば?

EC-CUBE2でプラグインもほとんど使っておらず、データも少なければEC-CUBE4のデータ移行プラグインで簡単に出来るかもしれません。

PHP7になるだけでも、パフォーマンスだけでなくセキュリティ面でも改善されるので移設先の1つとしてEC-CUBE4を検討するのは良いかもしれません。

ただ、記載した通りプラグインを色々使っている場合などは、EC-CUBE4で同じようなプラグインがあるのか?ない場合に作れるのか、そして作った場合にどのくらいの費用がかかるのかは、よく確認してから進めないと危険です。

場合によっては、簡易なものをスクラッチ(1から独自システムを開発)するのも良いかもしれません。
スクラッチで作ることにより、先の展開も伝えておけば外部の配送業者とのデータの連動や、倉庫のデータとの連動など様々なことが可能となるはずです。

最終的には、移設した場合にサーバ増強/増設に掛ける金額の3年分(作る側からすると、3年はそのまま使って欲しい)の費用についての差額の合算が移設コストより安いか高いかで、判断しても良いのではないでしょうか。

関連する記事