これまたメモったので、貼付けておきます。
間違い等あるかもしれませんが、その場合はごめんなさい。
Amazon EBS
- EC2インスタンスにアタッチして使用するブロックレベルのストレージサービス
- snapshotによりバックアップやディスクの暗号化機能を提供
- 99.999%の可用性を備えるよう設計されている
EBSの特徴
- 1GB単位で指定。最大16TB
- マグネティックは最大1GB
- AZ毎に独立、同一のAZからのみ利用可能
- Snapshotからは任意のAZに復元・移動可能
- EBSを複数のインスタンスから同時に使う(共有)ことはできない
アーキテクチャ
- データはAZ内の複数のHWにレプリケートされる
- 実態はネットワーク接続型のストレージ
- セキュリティグループによる通信制御の対象外
ボリュームタイプ
- ユースケースに応じて3種類から選択
- 汎用SSD、Provisioned IOPS(SSD)、マグネティック
- タイプに応じて性能特性や課金体系が変わってくる
- Snapshotを経由する事で、ボリュームタイプや容量を変更できる
汎用SSD
- デフォルトのボリュームタイプで費用対効果が高い
- 一時的に3000IOPSまで引き上げるバースト機能を備える
- 1GB〜16TB
- 1GBあたり3IOPSを常時確保
- 1TB以下の容量では、3000IOPSまでバースト、最大10000IOPS(3334GB以上のボリュームでは常時)
- スループットは、最大160MB/s(214GB以上利用時)
- 170GB以下では、128MB/s
- バーストの継続時間は、I/Oクレジットの残高によって決まる
- バーストが発生するとI/Oクレジットを消費、I/O負荷がベースパフォーマンスを下回ると、I/Oクレジットが蓄積
Provisioned IOPS(SSD) - PIOPS
- 最もパフォーマンスの高いタイプ。1年間のうち99.9%の時間について、指定したIOPSのプラスマイナス10%の範囲の性能を発揮する。
- 4GB〜16TB
- 100IOPS〜20000IOPSで指定可能
- 容量の30倍がIOPSの上限
- 20000IOPS指定しようとすると、667GBの割当が必要
- スループットは、320MB/s(1280IOPS以上)
- 1IOPSあたり256KB/sのスループットを発揮する
マグネティック
- 最もコストが安価な磁気ディスクタイプ。過去は、Standardという名称のデフォルトのボリュームタイプ
- 1GB〜1TB
- 平均100IOPS
- 最大、数百IOPSへバーストできる場合がある
- スループットは、40〜90MB/s
- 唯一I/Oリクエスト回数による課金がある
パフォーマンスを律速する要素
- EC2インスタンス側のスループット
- EBS自体のI/O処理性能
- 各EBSボリュームのスループットの上限
EC2インスタンス側のスループットを改善する
- EBS最適化を有効にする
- EBS最適化を有効にすることで、独立したEBS帯域を確保
- 大きいインスタンスタイプほど使える帯域が大きい
- インスタンスタイプによって決まるEBSスループットの上限値に到達していないか
- CloudWatch
- OSでiostatなど
- 上限に達している場合は、インスタンスタイプを大きくすることで改善する
EBS側のI/O処理性能を改善する
- EBS側の実績IOPSを確認する
- CloudWatchとか、OSからiostatとか
- 上限に達していればボリュームの変更を検討する
- タイプやスペックの変更
EBSボリュームのスループットを改善
- EBSボリュームにスループットを確認する
- 上限に達していればボリュームの変更を検討する
- PIOPS化する際は、平均ブロックサイズから必要値を算出
事前ウォーミング
- EBSの各ブロックへの初回アクセス時に限り、IOPSが5%〜50%低下する
- 事前ウォーミングを行う事で回避可能
- 実運用時は難しいケースもあるので、要件から判断して実行可能であえば取り込む
- Auto Scalingで起動したインスタンスなど
- Linuxであれば、ddコマンドとかで
- Windowsは完全フォーマットを使用
RAID構成
- 単体のEBSのIOPSやスループットでは不足な場合、RAID構成を使う
- RAID構成にすると、複数ボリュームのsnapshotの整合性に注意
パフォーマンス
- c3.8xlarge
- Amazon Linux 2015.3
- FS: xfs
- fio(2.15)を使用
- 対象
- 1.マグネティック
- 2. 汎用SSD 3000IOPS
- 3. 汎用SSD 10000IOPS
- 4. PIOPS 4000IOPS
- 5. PIOPS 20000IOPS
- 6. 汎用SSD x6 (RAID0)
IOPS
※単位はIOPS
パターン | 1. | 2. | 3. | 4. | 5. | 6. | |
---|---|---|---|---|---|---|---|
8KBランダム読込 | 211 | 3109 | 9980 | 4059 | 20274 | 54634 | |
16KBランダム読込 | 206 | 3066 | 9564 | 3985 | 18992 | 44688 | |
8KBランダム読書 | 329 | 3108 | 9975 | 4057 | 20274 | 54717 |
※4MBブロックの掲載は割愛。当然IOPSは伸びない。なぜならスループットの上限が先にあたってしまうから。
スループット
※単位はMB/s
パターン | 1. | 2. | 3. | 4. | 5. | 6. | |
---|---|---|---|---|---|---|---|
8KBランダム読込 | 1.7 | 24.3 | 78.0 | 31.7 | 158.4 | 426.8 | |
16KBランダム読込 | 3.2 | 47.9 | 149.4 | 62.3 | 296.8 | 698.3 | |
4MBランダム読込 | 73.2 | 162.2 | 163.0 | 317.5 | 313.7 | 842.2 | |
4MBランダム読書 | 52.5 | 162.2 | 163.3 | 317.6 | 314.4 | 846.4 |
インスタンスストア
- 追加コスト無しで、インスタンスストアが使える
- 実体はEC2の物理ホストのローカルディスク
- インスタンスを停止するとデータが消去される。再起動では消去しない
- 一時的なデータ置き場や、分散FSとか
インスタンスストアの性能特性
- 条件
- i2.8xlarge
- Amazon Linux 2015.3
- FS: xfs
- 800GB SSD x8 (RAID0)
- fio(2.15)を使用
- ランダム読み込みで、最大40万IOPSとEBSと比較して高いパフォーマンスを発揮
- スループットは最大3.5GB/s
- ランダム読み書きでも、最大35万IOPSを発揮
ボリュームの暗号化
- AES-256による暗号化処理
- AWS Key Management Serviceで鍵を管理
- ハードウェア機能を使って処理するので、暗号化有無はパフォーマンスに影響しない
- 汎用SSD(10000IOPS、20000IOPS)で、実際にパフォーマンスを計測しても、IOPS値もCPU使用率もほとんど変化無し
小さいデータへのアクセスが多い場合
- 必要IOPSが得られるようEBSを構成する
- ブロックサイズが小さければ、スループットがボトルネックになることは少ない
大きいデータへのアクセスが多い場合
- シーケンシャルアクセスが多い場合も、IOPSよりもスループットを重視する
- IOPSをおさえることで、費用削減が可能
低コストなストレージが必要な場合
- アクセス頻度が低いデータやハイパフォーマンスが必要ないデータは、マグネティックに保存
- 大容量が必要な場合は、RAID構成を取る
極めて高いI/O性能が要求される場合
- EBSでは処理しきれないパフォーマンスが必要な場合は、インスタンスストアを利用する
- 永続化が必要なものは可能な限り、EBSに保存する
- インスタンスストアはStop(停止)すると、データが失われてしまう
まとめ
クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)
- 作者: 並河祐貴,安達輝雄,ITpro/日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2009/11/05
- メディア: 単行本
- 購入: 4人 クリック: 372回
- この商品を含むブログ (18件) を見る