NITRO世代のC5インスタンスの性能をWordPress環境で確認してみた

NITRO世代のEC2インスタンス性能が優れる事を確認するため、 4GB前後のメモリを搭載した「C5」「C4」「C3」「M3」「T3」「T2」のEC2インスタンスを利用して、Wordpress(PHP7)の実行性能を比較してみました。
2018.08.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

AWSチームのすずきです。

先日リリースされたNITRO世代の「T3」インスタンス、「T2」インスタンスと比較し Wordpress(PHP7)の実行性能が優れる事を紹介させていただきました。

T3インスタンスの性能をWordPress環境で確認してみた

今回、4GB前後のメモリを搭載した、「C5」「C4」「C3」「M3」「T3」「T2」のEC2インスタンスを Wordpress(PHP7)の実行環境とし、ELBで均等な負荷分散させて インスタンスファミリーの性能差の違いを確認する機会がありましたので、紹介させていただきます。

環境

  • リージョン: AWS東京リージョン
  • アベイラビリティーゾーン: ap-northeast-1a
  • OS: AmazonLinux 2018.03
    • Linux version 4.14.62-65.117.amzn1.x86_64
    • AMI: aws-elasticbeanstalk-amzn-2018.03.0.x86_64-php70-hvm-201808172110 (ami-07202bf6c4a45e244)

構成図

c5.large、c4.large、c3.large、t3.medium、t2.meduim、m3.medium、t2.small、t3.small の各インスタンスを1台づつ、同一AZに起動、ELB配下で均等な負荷分散環境を用意、DNSスイッチにより既存環境(c4.large、c5.large)を一時的に差し替えました。

Cloudwatch結果

ネットワーク

全EC2、ELBにより均等な負荷分散がされている事を確認できました。

CPU使用率

1分粒度

15分粒度

  • vCPU1コアの「m3.medium」、「t2.small」のCPU使用率が高い傾向にある事が確認できました。 ‐ vCPU2コアの環境、「c5.large」 ≒ 「t2.medium」 ≒ 「c4.large」 > 「t3.small」 ≒ 「t3.medium」 > 「c3.large」の傾向が確認できました。

EC2インスタンスのCPU使用詳細

Elasticbeanstalkの拡張ヘルスレポートを利用し、EC2インスタンスのCPU利用状況を確認してみました。

EC2インスタンス1台あたりの負荷を高めるため、ELB配下のEC2は4台に削減しました。

1台あたりの負荷を倍増させ「c3.large」インスタンスの平均CPU使用率が15〜20%となる状態で、「c5.large」、「c4.large」、「c3.large」の性能比較を試みました。

ロードアベレージ

ロードアベレージは、「c5.large」 は低い傾向にある事が確認できました。

レイテンシ

PHPページの生成所要時間、「c5.large」 は「c3.large」より2割ほど高速である事を確認できました。

CPU利用詳細

‐ 「CPU Idle」値、「c5.large」が高い状態である事を確認できました。 ‐ 「C5」インスタンス、「CPU User」、アプリケーションの実行処理が高速である事と、「CPU System」、OSカーネルが消費するCPUリソースが少ない事が寄与していると思われます。

コスト比較

最初に比較を行った8台のEC2インスタンス、東京リージョンで30日間稼働させた場合のオンデマンド費用は以下の通り。

インスタンスタイプ vCPU メモリ (GiB) 月額料金(USD)
c5.large 2 3.75 77.04
c4.large 2 3.75 90.72
c3.large 2 3.75 92.16
t3.medium 2 4 39.168
t2.medium 2 4 43.776
m3.medium 1 3.75 69.12
t3.small 2 2 19.584
t2.small 1 2 21.888

‐ NITRO世代(C5、T3)のコストパフォーマンスが優れます。

まとめ

「c5.large」、「T2」→「T3」同様、世代更新によるCPU性能の向上により、「c4」「c3」と比較して 2割程度の性能向上が期待できる結果が得られました。

オンデマンド料金も「C5」インスタンスは15%ほど廉価な価格で設定されており、 コストパフォーマンスとしては、「C3」「C4」採用時より、数割以上の改善が実現出来る可能性があります。 一定以上のスペックのEC2環境を用意する場合、NITRO世代に対応したマシンイメージ(AMI)が利用可能であれば、 コストパフォーマンスに優れた「T3」「C5」「M5」インスタンスの利用がおすすめです。

また、「C3」「M3」以前のより古いインスタンスファミリーを利用されている既存環境でも、 NITRO世代への切替による性能向上、利用改善が実現出来る可能性があります。

AMIの変更、OSの再構築が必要となる場合もありますが、 EC2のリザーブドインスタンス(RI)の更新やOSのメジャーアップデートの機会があれば、 EC2インスタンスの最新化についてもご検討頂ければと思います。