この記事で検証したこと
- OSレベルでの起動速度の比較
- インスタンスタイプでの起動速度の比較
- インスタンス作成とインスタンス起動で速度に違いはでるか
結果から報告
調査した範囲内ではあるが、EC2のインスタンス起動は最短50秒前後
- AmazonLinuxの起動が早かった
- インスタンスタイプは起動速度に影響しない
- stop → startの方が起動速度が早い
- 起動速度は運任せ
※ 裏側の処理を見たわけではないので理屈ではなく体感ベース
検証
インスタンスタイプで起動速度は変わるか
-
インスタンスタイプ
- t2.micro
- c3.xlarge
- c4.x8large
-
使用AMI
- ami-aa57adaa (CoreOS-alpha-653.0.0-hvm) ← CoreOSは起動早そうなので
計測方法
user-dataに以下のスクリプトを設置して検証
起動はAWS CLIからの起動
user-data
#!/bin/bash
date >> /tmp/start_time
検証
- t2.micro
- 133秒
- 126秒
- 121秒
- c3.xlarge
- 132秒
- 92秒
- 114秒
- c4.x8large
- 123秒
- 112秒
- 142秒
結果
- インスタンスタイプで起動速度は変わらない
- また運要素が大きい
OSレベルで起動速度は変わるか
-
検証AMI
- ami-aa57adaa (CoreOS-alpha-653.0.0-hvm) ←もちろんSSD使ってる
- ami-cbf90ecb (Amazon Linux AMI 2015.03 (HVM), SSD Volume Type)
-
インスタンスタイプ
- c3.xlarge
検証
-
CoreOS
- 先ほど検証したので省略
- だいたい120秒前後
-
AmazonLinux
- 75秒
- 75秒
- 83秒
結果
CoreOSよりAmazonLinuxの方が早い
AmazonLinuxの場合リソース調達方法とか違うのかな
インスタンス作成とインスタンススタートで比較
インスタンスを作成するのとインスタンス起動するので違いは出るのか
検証方法
run instance と start instanceで比較
検証
-
CoreOS (run instanceの時は先ほどの結果より120秒前後)
- 95秒
- 99秒
- 98秒
- 95秒
-
AmazonLinux (run instanceの時は先ほどの結果より80秒前後)
- 50秒
- 47秒
- 47秒
- 49秒
結果
インスタンススタートの方が早い
まとめ
現時点での起動高速化する方法
- インスタンスはSTOPの状態で放置して、必要な時にインスタンス起動する
- AmazonLinuxは起動が早い、だがパフォーマンスを考えるとCoreOSの方が良い(ことが多い)
- インスタンスタイプによる起動速度の違いはほぼない、それよりも運要素が大きい