LoginSignup
2
3

More than 1 year has passed since last update.

ブロック・ボリュームの新機能Elastic Performanceを調べてみたよ

Last updated at Posted at 2019-11-15

1. はじめに

ブロック・ボリュームの新機能としてElastic Performanceが追加された(2019/11/14)。ブロック・ボリュームは、Computeのコア・コンポーネントなので、どのようなものなのか調べてみた。

2. Elastic Performanceとは

Elastic Performanceとは、ブロック・ボリュームの性能にLower CostBalanced(デフォルト)、Higher Performanceという三つの性能レベルを導入することで、コスト最適化を図る機能だ。

性能数値の違いは表を見てもらうとして、おもな違いは以下のとおり。

Balanced
従来と同じデフォルト設定で、ほとんどのワークロードに適している。
Higher Performance
大規模データベースなど、高いIOPS性能を求められるときに適している。
Lower Cost
ログやストリーミング、DHWなど、IOPSよりもスループットを重視する用途に適している。

下表はマニュアルから引用
blockperf03.PNG
2021/06/10追記
上記に加え、現在はUltra High Performanceが追加されています。

3. Elastic Performanceの使いこなし

スペックだけ見せられても「フーン」で終わってしまうかもしれない。使いこなしを考えるには、ストレージの性能特性や価格も合わせて考える必要がある。

3-1. ストレージ性能に関する基礎知識

基礎知識として、以下のことを理解する必要がある。

  • ストレージの性能指標には、IOPS(ランダム・アクセス指向)と帯域幅/スループット(シーケンシャル・アクセス指向)がある
  • VMシェイプでは、シェイプごとにネットワークの帯域幅が制限されている。例えば、VM.Standard2.1(1 Gbps)、VM.Standard2.2(2 Gbps)。Compute Shapes→
  • StandardIOシェイプは外部ストレージを利用しているので、ストレージの最大スループットはシェイプに依存する。例えば、高いスループットが必要なときは、CPUが低使用率でも大きなシェイプに変更する必要がある
  • IOPS性能はストレージ・サイズに依存する。デフォルトは1GBytesあたり60 IOPS

3-2. ストレージ価格も合わせて考える

次に価格も合わせて考えてみよう。比率列は、Block Volume(Balanced)を100としたときの割合である。

ストレージの種類 1GB単価/月 比率
Block Volume (Balanced) $ 0.0425 100
Block Volume (Higher Performance) $ 0.0595 140
Block Volume (Lower Cost) $ 0.0255 60
Object Storage $ 0.0255 60
Archived Storage $ 0.0026 6

Archived Storageは直接アクセスできないので、そもそも用途が異なる(事前にリストアが必要)。したがって比較対象から除外する。

注目すべきはLower Costだ。Object Storageと同じ価格になっている。Balancedと比べてIOPSは開きがあるが、スループットの差は少ない。ログやDHWなどのシーケンシャル・アクセス・データや、安価なので、あまり使用しないデータに適している。

Level IOPS/GB MAX Throughput/GB
Lower Cost 2 240
Balanced 60 480

次にHigher Performanceだ。スペックは以下のとおり。Balancedと比べて、性能は1.25倍になり、価格は1.4倍になる。スループットはシェイプに依存するので、高いIOPSが必要なときに適している。

Level IOPS/GB MAX IOPS MAX Throughput/GB
Higher Performance 75 35,000 600
Balanced 60 25,000 480

最後にObject StorageLower Costの使い分けだ。価格は同じだが、特性は大きく異なる。

Object Storageの特徴は「容量制限が無い」「可用性が高い」「比較的安価」「REST APIでアクセス」などがある。これらのメリットがある反面、一般的なアプリケーションからはアクセスできない、もしくはアクセスしづらいことが課題だ。

一般的なアプリケーションからオブジェクト・ストレージ上のデータに直接アクセスするには以下の方法がある。前者は安定性に課題があり、後者は追加のサーバーが必要になる。

  • goofysやs3fs-fuseのような、S3互換マウントツールを使用する
  • Storage Gatewayを利用し、NFSサーバーのようにアクセスする

バックアップやログ、画像など、アクセス頻度が低いものや、高可用性が必要なデータが適している。

3.3. コストの計算方法

Elastic Performanceによって、Block Volume Performance Units(VPUs)という価格が導入された。先ほどは説明しないで単価を紹介したが、実際の計算式は次のとおり。

一カ月のコスト
=ストレージサイズ[GB]×ストレージ単価+ストレージサイズ[GB]×VPUs値×VPUs単価[GB]
=ストレージサイズ[GB]×(ストレージ単価+(VPUs値×VPUs単価[GB]))

Balancedの場合、VPUs値が10なので、1000GBのときは以下のように計算できる。

1000 * ($0.0255 + (10 * $0.0017))
 = 1000 * ($0.0255 + $0.017)
 = 1000 * ($0.0425)
 = $42.5

Cost Estimatorでは、次のように入力する。
block_cost01.PNG

3-4. ストレージの使い分けまとめ

これまでの検討内容をまとめると、次のようになるだろうか。

  • 通常 → Block Volume (Balanced)
  • アクセス頻度が少ない、シーケンシャル中心 → Block Volume (Lower Cost)
  • 高いIOPSが必要 → Block Volume (Higher Performance)
  • 高可用性・低価格 → Object Storage
  • 高いスループット/帯域幅 → シェイプのアップグレード

4. 管理コンソールで確かめる

ボリュームのパフォーマンスは「新規作成時に指定」もしくは「既存のボリュームを変更」が可能だ。管理コンソールでブート・ボリュームもしくはブロック・ボリュームを選択し、[Edit Size or Performance]をクリックすると変更画面を表示できる。

blockvol_resize02.PNG
ブロック・ボリュームでは、Lower Cost、Balanced、Higher Performanceが選択できる。
blockvol_resize04.PNG
ブート・ボリュームではBalanced、Higher Performanceが選択できる。
blockvol_resize05.PNG
それぞれの画面で[Save Changes]をクリックすると動的に設定を変更できる。インスタンスの再起動は不要だ。

6. Auto Tuneについて

2020年7月からAuto Tune機能が付いた。これを有効にすると、ボリュームをデタッチすると自動でパフォーマンスがLower Costに変更されコスト削減できる。デタッチしたブロックボリュームを長期間保持するユースケースは少ないと思うが、そのようなときに便利だ。
blockvolume-tune01.JPG

7. まとめ

  • ブロック・ボリュームの新機能Elastic Performanceはコスト最適化に役立つ
  • 新たにLower Cost、Balanced(デフォルト)、Higher Performanceという三種類の性能レベルが導入
  • 新規作成ボリュームだけで無く、既存のボリュームも動的に変更できる
  • Lower Costは、Object Storageと同じ価格で、シーケンシャル・アクセス・データに適している
  • Higher Performanceは、IOPS性能が必要なときに適している。性能は1.25倍、価格は1.4倍
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3