初めて精神安定剤みたいのを買いました。
今後外出するときは使用してみたいと思います。
TOC
背景
会社のHPなどサービスを提供する際に停止してもそこまでクリティカルでないものを
如何に安く運用するかと考えたときにVPSかEC2かで悩んだので色んな観点からまとめようと思った次第です。
EC2以外の選択肢
EC2は思ったほど性能が良くない(と耳にしたことがある)ので
クリティカルじゃないものなら敢えてEC2じゃなくて他社のVPSで良いのではと思う
国内のVPSだと
- さくらインターネット
- GMO
- カゴヤ
- ConoHa
国外だと
- Vultr.com
- cloudatcost
- AlphaRacks
とか色々あります。
この中でもVultr.comは安くて安定性も良かったので
今回は Vultr.com $5/m のVPS
とEC t2.micro
を比べてみます。
スペックはどちらも 1Core / 1G
です。
https://luispc.com/tiraura/2017/04/13/8978
スペック
EC2 t2.micro | Vultr $5 | |
CPU | Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz | Virtual CPU |
MEM | 1G | 1G |
SSD | 8GB (gp2 – EBS) | 25GB |
OS | CentOS 7.3.1611 | CentOS 7.3.1611 |
参考 | ap-northeast-1a | 東京リージョン |
どちらも CPU/MEM は 1Core/1G です
UnixBench
t2.micro – 1回目
Dhrystone 2 using register variables 32422296.8 lps (10.0 s, 7 samples) Double-Precision Whetstone 4080.8 MWIPS (9.9 s, 7 samples) Execl Throughput 4334.8 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 1108334.5 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 292360.9 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 3276961.9 KBps (30.0 s, 2 samples) Pipe Throughput 1596267.7 lps (10.0 s, 7 samples) Pipe-based Context Switching 343547.0 lps (10.0 s, 7 samples) Process Creation 15088.3 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 5922.1 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 799.7 lpm (60.1 s, 2 samples) System Call Overhead 2677176.3 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 32422296.8 2778.3 Double-Precision Whetstone 55.0 4080.8 742.0 Execl Throughput 43.0 4334.8 1008.1 File Copy 1024 bufsize 2000 maxblocks 3960.0 1108334.5 2798.8 File Copy 256 bufsize 500 maxblocks 1655.0 292360.9 1766.5 File Copy 4096 bufsize 8000 maxblocks 5800.0 3276961.9 5649.9 Pipe Throughput 12440.0 1596267.7 1283.2 Pipe-based Context Switching 4000.0 343547.0 858.9 Process Creation 126.0 15088.3 1197.5 Shell Scripts (1 concurrent) 42.4 5922.1 1396.7 Shell Scripts (8 concurrent) 6.0 799.7 1332.9 System Call Overhead 15000.0 2677176.3 1784.8 ======== System Benchmarks Index Score 1586.7
t2.micro – 2回目
Dhrystone 2 using register variables 32425134.7 lps (10.0 s, 7 samples) Double-Precision Whetstone 4071.8 MWIPS (9.9 s, 7 samples) Execl Throughput 4274.1 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 1106699.5 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 239764.3 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 2369007.2 KBps (30.0 s, 2 samples) Pipe Throughput 1079085.0 lps (10.0 s, 7 samples) Pipe-based Context Switching 210978.9 lps (10.0 s, 7 samples) Process Creation 9178.9 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 1249.4 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 89.2 lpm (60.5 s, 2 samples) System Call Overhead 583600.4 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 32425134.7 2778.5 Double-Precision Whetstone 55.0 4071.8 740.3 Execl Throughput 43.0 4274.1 994.0 File Copy 1024 bufsize 2000 maxblocks 3960.0 1106699.5 2794.7 File Copy 256 bufsize 500 maxblocks 1655.0 239764.3 1448.7 File Copy 4096 bufsize 8000 maxblocks 5800.0 2369007.2 4084.5 Pipe Throughput 12440.0 1079085.0 867.4 Pipe-based Context Switching 4000.0 210978.9 527.4 Process Creation 126.0 9178.9 728.5 Shell Scripts (1 concurrent) 42.4 1249.4 294.7 Shell Scripts (8 concurrent) 6.0 89.2 148.7 System Call Overhead 15000.0 583600.4 389.1 ======== System Benchmarks Index Score 871.6
Vultr $5 – 1回目
Dhrystone 2 using register variables 25355718.3 lps (10.0 s, 7 samples) Double-Precision Whetstone 4133.9 MWIPS (8.3 s, 7 samples) Execl Throughput 3518.7 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 880023.3 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 234688.1 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 1694912.1 KBps (30.0 s, 2 samples) Pipe Throughput 1446713.4 lps (10.0 s, 7 samples) Pipe-based Context Switching 283095.7 lps (10.0 s, 7 samples) Process Creation 11328.8 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 4704.9 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 645.3 lpm (60.1 s, 2 samples) System Call Overhead 3322644.4 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 25355718.3 2172.7 Double-Precision Whetstone 55.0 4133.9 751.6 Execl Throughput 43.0 3518.7 818.3 File Copy 1024 bufsize 2000 maxblocks 3960.0 880023.3 2222.3 File Copy 256 bufsize 500 maxblocks 1655.0 234688.1 1418.1 File Copy 4096 bufsize 8000 maxblocks 5800.0 1694912.1 2922.3 Pipe Throughput 12440.0 1446713.4 1163.0 Pipe-based Context Switching 4000.0 283095.7 707.7 Process Creation 126.0 11328.8 899.1 Shell Scripts (1 concurrent) 42.4 4704.9 1109.6 Shell Scripts (8 concurrent) 6.0 645.3 1075.5 System Call Overhead 15000.0 3322644.4 2215.1 ======== System Benchmarks Index Score 1303.6
Vultr $5 – 2回目
Dhrystone 2 using register variables 26428116.1 lps (10.0 s, 7 samples) Double-Precision Whetstone 4371.1 MWIPS (7.9 s, 7 samples) Execl Throughput 3696.3 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 886492.8 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 257728.5 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 1671145.9 KBps (30.0 s, 2 samples) Pipe Throughput 1551706.6 lps (10.0 s, 7 samples) Pipe-based Context Switching 292249.5 lps (10.0 s, 7 samples) Process Creation 10366.9 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 4758.3 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 636.8 lpm (60.1 s, 2 samples) System Call Overhead 3422980.3 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 26428116.1 2264.6 Double-Precision Whetstone 55.0 4371.1 794.7 Execl Throughput 43.0 3696.3 859.6 File Copy 1024 bufsize 2000 maxblocks 3960.0 886492.8 2238.6 File Copy 256 bufsize 500 maxblocks 1655.0 257728.5 1557.3 File Copy 4096 bufsize 8000 maxblocks 5800.0 1671145.9 2881.3 Pipe Throughput 12440.0 1551706.6 1247.4 Pipe-based Context Switching 4000.0 292249.5 730.6 Process Creation 126.0 10366.9 822.8 Shell Scripts (1 concurrent) 42.4 4758.3 1122.2 Shell Scripts (8 concurrent) 6.0 636.8 1061.3 System Call Overhead 15000.0 3422980.3 2282.0 ======== System Benchmarks Index Score 1333.7
結果 – UnixBench
EC2 t2.micro | Vultr $5 | |
1回目 | 1586.7 | 1303.6 |
2回目 | 871.6 | 1333.7 |
1回目は t2.micro が優勢だったけどこれはT2インスタンス特有のバースト
です。
クレジット残高が無くなったので2回目は本来の性能(言い方が難しい)になってます
UnixBenchって何だかんだCPU寄りの結果だと思ってる(個人的に)ので
fioもやってみたいと思います。
fio
$ fio -filename=/tmp/test2g -direct=1 -rw= -bs=4k -size=2G -numjobs=64 -runtime=10 -group_reporting -name=file1
non-bufferedです。IOPSだけ載せます。
t2.micro
Sequential Read | Sequential Write | Random Read | Random Write | |
1回目 | 6331 | 6645 | 3364 | 3182 |
2回目 | 5975 | 6225 | 3179 | 3177 |
3回目 | 5966 | 6257 | 3177 | 3363 |
Vultr $5
Sequential Read | Sequential Write | Random Read | Random Write | |
1回目 | 56636 | 6889 | 53056 | 6995 |
2回目 | 57217 | 5195 | 55076 | 7463 |
3回目 | 55391 | 7107 | 55148 | 6891 |
結果 – fio
t2.micro はバーストが効いていてこの値です。
圧倒的に Vultr の方がスコアがいいです。
ネットワーク
ここではHPやLPサイトを乗せるならと前提があるので
今回はレイテンシーに関しては触れないです。というのも面倒くさい。
t2.micro
実測: 62.8Mbps
t2.micro の実測値は詳細に書かれているQiitaがありますので
そちらを御覧ください。
http://qiita.com/saitara/items/882a3e70639637e24a4f
Vultr $5
848Mbpsくらい? pic.twitter.com/0t1ZWFNBVe
— くろさん (@kuro_m88) 2017年4月13日
実測: 848Mbps
たまに2kbpsとかに落ちるらしい。
家の回線は100Mbpsなのでうまいこと試せませんが
いきなり膨大なトラフィックを流すと1分ぐらい規制されちゃうのかな?
まとめ
EC2 t2.micro をオンデマンドで1ヶ月動かした場合: $0.016 * 720 = $11.5
Vultr.com $5のVPSを1ヶ月動かした場合: $5
EC2側はこれにネットワークトラフィック量も加算されます。
大体2分の1以上、Vultrが安い。
サービスクリティカルじゃないものでAWSの親和性が必要でないものなら
Vultr.com を始めとしたVPSに載せるのは大いにアリだなと思った。
ちなみに、Vultr.com SLA 100%
です。