NITRO世代のC5インスタンスの性能をWordPress環境で確認してみた
はじめに
AWSチームのすずきです。
先日リリースされたNITRO世代の「T3」インスタンス、「T2」インスタンスと比較し Wordpress(PHP7)の実行性能が優れる事を紹介させていただきました。
今回、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インスタンスの最新化についてもご検討頂ければと思います。