XSERVER X10 と AWS EC2 t2.micro の処理速度を比較してみた

エックスサーバーのX10プランとAWSのEC2インスタンスのt2.microの処理スピードを検証してみました。

経緯

あるWebアプリをエックスサーバーのX10プランで運用していたんですが、AWSに移し替えようとした時に、インスタンスの選択でどれを選んだらいいんだ?ってなった。とは言ってもまあ無料枠を使いたいのでt2.microにするんだけども。。。これってどれぐらいの処理能力があるんだろうと素朴に思ったので、同様に悩んでいる方の目安になればと思い記事を書きました。

比較方法

まず大前提として、自分はインフラ関係に詳しくないのでサーバーの処理能力の計測方法など正しいやり方はわかりません。なので、今回エックスサーバーからAWSに移したWebアプリ(画像アップロード&リサイズ)の処理実行時間を計測して処理能力の比較とします。使用言語はPHPです。

余談

自分の認識では、エックスサーバーもAWSもサーバーのスペック自体はものすごく高いけど、1ユーザーに割り当てるCPUやメモリの量をおさえている。特にエックスサーバーの方は他のユーザーと共用しているため、他のユーザーとリソースの取り合いみたいな事が起こる可能性もある。なので、今回はそれぞれのプランで自分に割り当てられたリソース内での処理性能という事で比較してみる。

処理内容

  1. ローカルからサーバへ複数画像をアップロード
  2. アップロードされた画像をAWSのS3へ一旦保存
  3. 保存した画像をリサイズして保存し直す(画像数分)

以上の処理にかかった時間を計測します。

結果

  XSERVER X10 AWS EC2 t2.micro
画像アップロード 20s 15s
画像リサイズ処理 25s 46s
合計 45s 61s

同様の内容で何度かテストしましたが、多少ばらつきがあるもののほぼ同じでした。他の結果も含めて計算してみると、

アップロード速度はAWSの方が1.3倍ぐらい速く、画像処理はXSERVERの方が1.3~1.5倍速い

という結果になりました。

アップロード時間はS3への保存までを含んでいるので、単純にアップロードスピードではなくS3への保存速度がXSERVERよりもAWSの方が速いのかもしれません。

まとめ

今回の検証はド素人が単純な比較をしているだけという点をご了承ください。なお、t2.microはCPUバーストという割り当てられた以上のリソースを一時的に利用できる機能を使っています。検証方法によっては結果が変わって来るかもしれないので一つの例としてお考えください。

ちなみにですが、ターミナル接続でサーバにいろいろインストールする時のスピードは圧倒的にAWSの方が速いです。この場合はインスタンスの制限がかからないからなんでしょうか、サーバーの性能自体はAWSの方が上のようです。予算が許せばt2.microよりも上のインスタンスを使ってみたいものです。

追記

t3.microを使う機会があったので、同様のテストをしてみたので追記しておきます。

結果:アップロードスピード、画像処理速度、共にt2.microよりも1.3倍ほど良いパフォーマンスでした。t2.microよりも料金も安いですし、通常はこちらを選択した方が良さそうですね。