IT社員3人組によるリレーブログ

某IT企業に勤める同期3人が、日常で思ったことを記録していきます (twitter: @go_mount_blog)

AWSストレージまとめ

どうも、Keiです。

今日から完全に秋って感じの寒さですねー。

 

今回も前回、前々回に引き続きAWSについてスポットを当てています。

AWSのサービスにはストレージがたくさん登場しますが、カスタマーや業界の技術進化に合わせて本当にたくさんの種類のストレージが存在しています。

 

f:id:go-mount:20181017211453p:plain

 

正直、自分が実現したいサービスはどのストレージを使えば良いのやら?って方も多いのではないかと思います。

特にAWSのサービスの中でもストレージの種類が多いので、今回ここでまとめたいと思います。

 

ストレージの種類

まずはざっとストレージの種類を見てみましょう。

(データベースもストレージとして列挙しています。)

 

  • EBS
  • インスタントストア
  • S3
  • Gracier
  • EFS
  • RDS
  • Dynamo DB
  • Redshift
  • Neptune

 

一番有名なのは、オブジェクトストレージであるS3でしょうか?

簡単に説明を加えたいと思います。

 

  • EBS
    AWSが提供するブロックストレージ。主にEC2のブートボリュームに使用されます。

  • インスタントストア
    EC2のRAMで、揮発性のストレージです。EC2の再起動、削除によって内容が消えるため、計算の一時ファイルなど、EC2が故障やメンテナンスで再起動しても問題ないデータを格納します。

  • S3
    AWSが提供するオブジェクトストレージ。ボリュームの上限はありません。結果整合性によりリアルタイムの書き込みが即時反映されないので、主にアーカイブ用のデータや静的なwebホスティングストレージとして使用されます。

  • Gracier
    S3同様アーカイブとして使われることが多いですが、さらにアクセス頻度が低いデータを格納します。この理由として、GracierはS3と比較して料金が安いことと、その代償としてデータの要求をしてからデータにアクセスするまでに時間がかかることが挙げられます。データアクセスには3タイプあり、一番早い迅速(expedited)モードでは5分でアクセスできますが、大容量(Bulk)モードでは最大12時間程度かかってしまいます。

  • EFS
    AWSが提供するファイルストレージ。一般に私たちが使っているファイルストレージのクラウド版です。特徴として、数千という非常に多くのインスタンスからアクセスが可能であり、データも即時反映されるため、リアルタイムにファイルを読み書きしたい要望に最適です。

  • RDS
    ÅWSが提供するリレーショナルデータベースです。AWSが独自に開発したデータベースであるAmazon Auroraを始め、MySQLSQL serverPostgreSQLなど有名なSQLを利用することができます。

  • Dynamo DB
    こちらではNoSQLを利用することができます。基本は結果整合性なためデータの即時反映はされませんが、「強い整合性」オプションを有効にすることにより、データの即時反映が可能となります。一方で、この代償としてスループットが半減してしまいます。AWSがおすすめしている使用方法は、「強い整合性」を有効しなくても要件を満たせる場合に使用することです。

  • Redshift
    データウェアハウスデータベースとして利用されます。ペタバイトの大容量のデータを格納できる。EFSのように同時アクセスは少ないが、一回のアクセスで複雑なSQL処理を行うような要望に適しています。

  • Neptune
    グラフデータベースサービスです。NoSQLに分類され、高速かつ6つのAZにリードレプリカ(複製)が保存される非常に高信頼なグラフデータベースです。

 

さらに詳しい分類があるストレージたち

さて、もう既にお腹がいっぱい感があるのですが、上記ストレージの中でもさらにオプションが複数分かれています。

今回はその中でも、よく使うということと、分類の多いS3とEBSについて紹介したいと思います。

 

S3の分類学

まず、ストレージのオプションが何故このように種類が多いかと言いますと、なるべく料金を安くするためです。

ストレージで重要となってくるのは、「最大容量」、「スループット(IOPS/ポート速度)」です。ここで、AWSはスケールアウト/インが自在なので「最大容量」は無限である場合が多いですが(事実S3は無制限にスケールアウト可能)、「スループット」は需要によって変動します。

そして、この「スループット」が料金にダイレクトに跳ね返ってくる部分なのです。

 

そのため、高い料金で高いスループットのストレージを契約しても、全然需要がなければ、オーバースペックとなり無駄となってしまいます。

この料金を最適化するために様々なパターンのストレージが存在するわけです。

 

さて、それではS3のオプションを見てみましょう。

 

  • 標準
  • Standard IA
  • RRS
  • Gracier

 

さっきGracierはS3と同列に紹介しましたが、GracierはS3の低価格サービスのようなものです。

標準S3は一般的なS3なので上で既に紹介しました、標準とGracier以外の説明をしますと

 

  • Standard IA
    標準S3は1G単位で月額の料金を支払う方式ですが、Standard IA(Infrequent Access)ではデータへのアクセスが低い場合に料金が安くなる可能性があります。データへのアクセスによって課が発生するため、アクセス数があまりない場合に最適な体系となります。

  • RRS(Reduced Redundant Storage)
    S3はSLA99.999999999と非常に高い耐久性を示しますが、そこまで耐久性が必要ない場合はRRSを利用すると料金が安く済みます。RRSのSLA99.99です。

 

EBSの分類学

次に、主にルートボリュームに使用されるEBSですが、こちらはスループットによって5つの分類に分かれます。

 

 

なんか本当に試験勉強みたいですよね笑

汎用SSDからMagneticへの順でIOPSが高い順に並んでいます。

 

また、料金もほぼほぼ高い順に並んでいます。

上2つはSSDで下3つはHDDをストレージデバイスとして使用します。

 

簡単にそれぞれのオプションのパラメータをまとめてみました。

 

  • 汎用SSD
    IOPS:最大32000IOPS
    スループット:128Mbps~160Mbps
    用途:大規模データベースや10000IOPS以上の書きこみを要するアプリケーション
  • Provisioned IOPS SSD
    IOPS:100~10000IOPS
    スループット:最大500Mbps
    用途:OSのブートボリュームや、小中規模のデータベース、検証環境
  • スループット最適化HDD
    IOPS:500IOPS
    スループット:ベース40Mbps、バースト250Mbps、最大500Mbps
    用途:EMR、DWH、ETL処理、ログ分析など
  • コールドHDD
    IOPS:250IOPS
    スループット:ベース12Mbps、バースト80Mbps、最大250Mbps
    用途:ログデータ保管、アーカイブ
  • Magnetic
    IOPS:平均100IOPS
    スループット:40~90Mbps
    用途:アクセス頻度の低いデータ、コストを最重要視する場合

IOPSが下がるほど、アーカイブ系のユースケースが多くなっていますね。

スループットのバーストというのは、例えば、需要トラヒックが契約速度以下でランニングしていたときに、余った帯域をクレジットとしてプールしておき、瞬間的に多くのトラヒックが来た際に契約帯域以上の速度を出せるという仕組みです。これをバースト時の速度として、上にまとめています。

 

当然、バーストでも対応できないトラヒックに関しては最大スループット以内で速度を指定する必要がありますが、料金は当然高くなります。

 

さて、いかがでしたでしょうか?

AWSの資格であるSolution Architectを受ける方にとっては、いい感じにまとめることができたかと思います。

是非、種類の多さに圧倒されずユースケースと一緒に理解するようにしてください。

(という僕も絶賛勉強中です。。)

 

それではまた!