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 小林 正人 ご清聴ありがとうございました!
© Copyright 2024 Paperzz