(レポート) STG403: Amazon EBS: パフォーマンス設計 #reinvent

2015.10.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

日本にいます西澤です。引き続き、公開された資料を読んでみます。

EBSとは

  • Network block storage as service
  • 同一AZ内のEC2にアタッチして利用
  • 99.999%の可用性
  • 2,000,000ボリューム/日が作成されている

EBS volume types

  • Magnetic
    • 頻繁にアクセスされないデータ
  • General Purpose (SSD)
    • ほとんどの用途
  • Provisioned IOPS (SSD)
    • ミッションクリティカル

パフォーマンス

以下の要素でパフォーマンスを計測しましょう。

  • IOPS
  • Latency
  • Throughput

I/O

  • kernel 3.8.0以降では、grant poolを介して通信可能
    • Amazon Linux 13.09以降
    • Ubuntu 14.04以降
    • RHEL 7.0以降

下記記事でもご紹介した内容です。

負荷テスト

本番環境でテストをしましょう。また、最適なところまで処理を並列化しましょう。

貴重なサンプルデータも公開されていました。

EBS最適化インスタンス

  • 新しいインスタンスタイプで利用可能
  • 4GB/s
  • 32,000 16K IOPS or 500 MB/s
  • 8xlargeなら10Gb/sをサポート
  • 同スペックでは最新世代のインスタンスタイプの方が処理性能が高い

Pre-Warming

新規EBSボリュームのPre-Warmingは不要となったようです!EBSの最大サイズがもう16TBになっていますので、これは嬉しい仕様変更ですね。

公式ドキュメントの更新は追いついていないようです。

Amazon EBS ボリュームの事前ウォーミング

スループット

ブロックサイズが大きくなれば、総スループットは増えるけど、EBSボリュームの最大スループットを超えることはできません。

Striping

  • RAID0やLVM stripingを利用してパフォーマンス向上できますが、
  • RAID冗長化はやめましょう
  • Snapshotは必ず静止点を作ってから(sync, fsfreeze等)

Monitoring

  • Cloudwatch metricsを確認しましょう
    • IOPS and bandwidth
    • Latency
    • Queue depth
  • OSツールで確認しましょう
    • iostat
    • perfmon

まとめ

EBSパフォーマンスを最適化する為に必要な情報がばっちりまとまっていました。新規EBSボリュームのPre-warmingが不要となったところ以外では大きなアップデートはありませんが、主要サービスの一翼を担うサービスですので、しっかり理解して使いこなしたいところですね。