Amazon EBS ボリュームの 性能特性と構成方法を習得する!

Amazon EBS ボリュームの
性能特性と構成方法を習得する!
松本 大樹 (Matsumoto Hiroki)
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
自己紹介
松本 大樹(まつもと ひろき)
エコシステム ソリューション部 部長
パートナー ソリューション アーキテクト
• 十数年、某ハードウェアベンダーにてエンジ
ニアを経験
• インフラを含め、Oracle DB, Java EE, SAPな
どエンタープライズシステムを主に担当
Agenda
•
•
•
•
•
•
Amazon EBSとは?
各EBSの性能特性を見る
General Purpose (SSD)をきちんと理解する
Encrypt Optionについて
AWS上で、どう構成すべきか
まとめ
Amazon EBS
(Elastic Block Store)とは?
Amazon EBSとは?
Elastic Block Store
EC2
EBS
• EC2にアタッチして利用するブ
ロックデバイスのストレージ。
• OSやアプリケーション、データ
ベースなど、様々な用途で利用さ
れる。
• S3へのスナップショット機能など
も備えている。
• 99.999%の可用性を持つように設
計されている。
3種類のEBS
• EBS Magnetic Volumes (Standard EBS)
• EBS Provisioned IOPS (SSD) Volumes
• EBS General Purpose (SSD) Volumes
EBS Magnetic Volumes [standard]
•
•
•
•
今までStandard EBSと呼ばれていたディスク
最も古くからあるEBS
ベストエフォート型な性能のEBS
最も容量単価が安い
– $0.08 /GB/month
– $0.08 /100万IOリクエスト
EBS Provisioned IOPS (SSD) [io1]
• I/O性能を保証する
• 1年間の内、99.9%の期間は指定したI/O性能の
±10%以内の性能を保証
• 容量とプロビジョンするI/O性能に課金される
– $0.142 /GB/month
– $ 0.074 /IOPS/month
EBS General Purpose (SSD) [gp2]
•
•
•
•
新しいルールの新しいEBS
クレジット(Credit)という新しい考え方
負荷によって性能がバーストする
容量に応じて最低限のI/O性能が確保される
– 容量 x3のIOPS性能がベースパフォーマンス
• 容量のみに費用が必要
– $0.12 /GB/month
各EBSの性能特性を見る
注意事項
• セッションではAWSの仕様を公開している訳で
はなく、今回の為に実際に測定した検証結果を
説明しています。
• AWSの機能は、ものすごい速度で次々と更新さ
れていきますので、定期的に情報収集や性能測
定を実施頂く事が重要となります。
検証環境 - EBS性能特性
• c3.8xlarge
c3.8xlarge
FIO settings
rw=[randrw, write, read]
blocksize=[1k - 1m]
size=10g
directory=/EBSTEST
direct=1
loops=1
numjobs=2
runtime=600
group_reporting
EBS
• standard
• io1
• gp2
– I/O帯域が最大性能を持つイン
スタンスタイプを選ぶ。
– Amazon Linux 2014.03
– File System : xfs
• EBS
– 各種EBSタイプを利用
• Tools
– FIO : version 2.1.5
I/O性能とスループット
• I/O性能
– 単位はIOPS (I/O per Second)
– 1秒間当りに処理したI/O数。
– Read(読み取り)もWrite(書き込み)も含む
• スループット
– 単位はMB/secやKB/secなど
– 1行間当りに転送したデータ容量。
– Read(読み取り)もWrite(書き込み)も含む
EBSの基礎性能 - Magnetic Volume
Random Read/Writeの負荷
Random Read/Write
250
30
•
25
200
15
100
10
50
5
0
0
Block size
MB/sec
IOPS
MB/sec
IOPS
20
150
•
性能に凸凹があり、それほど安定
していないことがグラフから読み
取れる。
また数値でも最大で230 IOPS程
度もしくは25 MB/sec程度である
ことが確認できる。
EBSの基礎性能 - Magnetic Volume
Sequential Readの負荷
Sequential Read
6,000
100
90
5,000
80
IOPS
60
3,000
50
40
2,000
30
20
1,000
10
0
0
Block size
MB/sec
IOPS
MB/sec
70
4,000
• ブロックサイズが小さい時はI/O
性能は最大で4,000 IOPSを超
え、ブロックサイズが大きい時
はスループットが100MB/sec近
くまで出ていることが確認でき
る。
• 多少の凸凹はあるが、性能はそ
れなりに安定していることが分
かる。
EBSの基礎性能 - Provisioned IOPS
Random Read/Write
160
4,000
140
3,500
120
IOPS
3,000
100
2,500
80
2,000
60
1,500
1,000
40
500
20
0
0
Block size
MB/sec
IOPS
MB/sec
Random Read/Write
4,500
• 4kBなど小さいブロックサ
イズでは4,000 IOPSでリ
ミッターが掛かっている様
な形になっている。
• 128kBなど大きなブロック
サイズではスループット帯
域が130MB/sec程度で頭打
ちになっていることも確認
できる。
EBSの基礎性能 - Provisioned IOPS
Sequential Read
160
4,000
140
3,500
120
IOPS
3,000
100
2,500
80
2,000
60
1,500
1,000
40
500
20
0
0
Block size
MB/sec
IOPS
MB/sec
Sequential Read
4,500
• Sequential Readは非常に
特性が分かり易く出る。
• ブロックサイズ32KBまで
4,000 IOPSで頭打ちとなっ
ている。
• それ以降はスループットが
130MB/sec辺りで頭打ちに
なりIOPS性能が落ちている
のが確認できる。
EBSの基礎性能 - General Purpose
Random Read/Write
3,500
140
3,000
120
2,500
100
2,000
80
1,500
60
1,000
40
500
20
0
0
Block size
MB/sec
IOPS
MB/sec
IOPS
Random Read/Write
• General Purpose (gp2)の容
量を1,000GBとして
3,000IOPS性能を確保した状
態。
• 他のEBSと同様に特性が出て
おり、3,000 IOPSおよび130
MB/secがリミットとなってい
るのが確認できる。
EBSの基礎性能 - General Purpose
Sequential Read
Sequential Read
3,500
160
3,000
140
IOPS
100
2,000
80
1,500
60
1,000
40
500
20
0
0
Block size
MB/sec
IOPS
MB/sec
120
2,500
• 同じくGeneral Purpose (gp2)
の容量を1,000GBとして
3,000IOPS性能を確保した状
態。
• Random Read/Writeと同様に
特性が出ており、3,000 IOPS
および130 MB/secがリミット
となっているのが確認できる。
EBS性能特性のまとめ
• Magnetic Volume
– Randomアクセスでは数百IOPSまでで、性能安定性も弱い。
– Sequentialアクセスの場合は、条件によっては100MB/sec程度
の性能が確認できた。
• Provisioned IOPS/General Purpose
– Random, Sequentialのどちらも安定した性能が出る。
– 指定したIOPSか130MB/secの帯域のどちらかが頭打ちになる
まで性能が伸びる。
General Purpose (SSD)を
きちんと理解する
General Purposeをもう少し詳細に
•
SSDベースの新たなEBSボリュームタイプ
•
ベースパフォーマンスとして1GBあたり3 IOPSを保証
 100GBのボリュームの場合300 IOPS、500GBなら1,500 IOPSとなる、1,000 GB
なら3,000 IOPS固定となる。
•
1EBSで最大3,000 IOPSまでバースト可能
 システムの起動ボリュームや、短期的に読み書きが集中する場合に適する
 バースト可能時間はI/O Creditの残高とベースパフォーマンスに依存(後述)
•
シンプルな料金体系
 1GBあたり1ヶ月0.12ドル(東京リージョン)
 IOPSあたりの課金やI/Oリクエストへの課金が無く、容量ベースの課金のみ
参考資料:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
General Purposeの動きをきちんと理解する
• 容量500GBと100GBの
gp2ディスクを作成し負
荷を掛けてみた。
• 500GBは1,500 IOPS、
100GBは300 IOPSの
ベースラインまで性能が
落ちていることが確認で
きる。
General Purposeの動きをきちんと理解する
IOPS
初期状態で
I/O Credit残高は
5,400,000
再び高負荷が発生す
ると、I/O Creditの残
高に応じてバースト
I/O Creditが残って
いる間はバースト。
3000IOPS出る
残高が0になるとI/O
性能もベースパ
フォーマンスに戻る
ベースパフォーマンス
gp2 500GB時
バースト中はI/O
Creditの残高を
取り崩す形となる
I/O Credit
残高
残高が0になると
バーストは終了
I/O負荷がベースパ
フォーマンスを下回る
とCreditが貯金される
分
General Purpose VolumesでRAIDを組むと?
ベースパフォー
マンスを維持
ベースパフォーマ
ンスを維持
I/O負荷の
開始
Creditが
無くなる
I/O負荷を
停止
1EBSのみに若干の
負荷を掛け続ける
I/O負荷を
再開
1EBSのみ
Creditが無くなる
Provisioned IOPSとGeneral Purpose
のどちらが良いのか?
• Provisioned IOPS [PIOPS]
– 非常に高いI/O性能を求められた場合は最適。
– 1年間の99.9%が指定したIOPSの±10%を実現する設計となっている。
– 非常にI/O性能が重要な高性能、高信頼性の大型のデータベースなど
• General Purpose [gp2]
– 短期的に高負荷が集中するようなシステム
– 中小規模のデータベースや大規模システムの開発、検証環境など
– OSのブートボリューム
Encrypt Optionについて
Encrypt Optionとは?
EBSボリュームを暗号化する為のオプション。
現状、暗号化キーはAWSが管理。
全てのEBSタイプで利用可能。
Snapshotも暗号化される。
暗号化されたボリュームはアカウント間での共有は出来な
い。
• 現状ではルートボリューム(システムボリューム)への暗号
化は出来ない。
• 暗号化は物理ホスト側で実施する為、性能影響が少ない。
•
•
•
•
•
検証環境 for Encrypt Option
• c3.8xlarge
c3.8xlarge
FIO settings
rw=[randrw, write, read]
blocksize=[1k - 1m]
size=10g
directory=/EBSTEST
direct=1
loops=1
numjobs=2
runtime=600
group_reporting
EBS
• io1
• Encrypt = on
– Amazon Linux 2014.03
– File System : xfs
• EBS
– Provisioned IOPS
– Encrypt Optionを有効化
• Tools
– FIO : verion 2.1.5
Encrypt Option(暗号化)の影響
IOPS性能について
• Encrypt Optionを有効にしても、無効のボリュームと比較しても
性能差は全くないことが確認できる。
Encrypt Option(暗号化)の影響
CPU利用率について
• CPU利用率に関しては暗号化を有効にした方が若干ながらCPU利用率
が高く、内訳としてはWait IOであった。
• ただし僅かなのでそれほど慎重に考慮する必要は無いと思われる。
AWS上で、どう構成すべきか
EC2で考慮すべきポイント
No EBS-Optimized
EBS
EC2
normal
• EBS-Optimizedを有効にするこ
とで決まった帯域を確保可能。
• Instance Typeが大きいほど使え
る帯域が広い。
Network
EBS-Optimized
EBS
EC2
EBSOptimized
Network
Instance
Type
Dedicated EBS
Throughput
16K blocksize
IOPS
C3.xlarge
500 Mbps (62.5 MB/sec)
4,000
C3.2xlarge
1,000 Mbps (125 MB/sec)
8,000
C3.4xlarge
2,000 Mbps(250 MB/sec)
16,000
C3.8xlarge
10Gbps (1,250 MB/sec)
80,000
どの位まで性能が出るのか?
• 24本のEBSを利用して負荷を掛けてみました。
Provisioned IOPS:
4,000 IOPS x 24 EBS
c3.8xlarge
c3.8xlarge:
32vCPU, 60GB Mem,
10 Gbps network
Provisioned EBS
本セッションのまとめ
構成時にどこをチェックすべきか?
アクセス特性に適したEBS
の選択と構成をしているか。
EBS Optimizedを有効に
してネットワーク負荷と別
にEBS用の帯域をきちん
と確保しているか。
必要なスループットとIOPS
が満たせるディスク本数を構
成しているか。
EC2
EBS
必要な帯域を満たせるよ
うなインスタンスタイプを
選択しているか。
Encrypt Optionは必要か。
価格面において最適な
EBSを選択、そしてコスト
計算をしているか。
まとめ
• EBSの性能特性を実測結果を使って説明しました。アク
セスパターンやIOPS、スループット性能などを考慮し
て最適なEBSを選択します。
• EC2についても要件に応じて適切なインスタンスタイプ
の選択やEBS-Optimizedの利用などを選択します。
• 性能面、コスト面、システム・運用要件などお客様の求
める要件に最適な構成になるように、様々なAWSの機
能をご利用ください。
Special Thanks !
本セミナー用にEBS General Purpose周りの検証を手伝いしてもらった、
Enterprise Solution Architectです。
Enterprise SA
小林 正人
ご清聴ありがとうございました!