AWS 認定インストラクターと学ぶストレージの基本
Author : 田中 勇希 (NTT データ先端技術株式会社)
こんにちは ! NTTデータ先端技術株式会社にて AWS 認定インストラクターをしています田中勇希です。
この記事では私が普段、AWS のトレーニングを提供する中でよく聞かれる「ストレージの違い」について、ストレージにあまり馴染みがない方向けに、データを保存する仕組みから説明してみました。
1. はじめに
AWS を学習すると、様々なストレージサービスの機能や特徴について知ることになります。しかしストレージの前提知識が少ないと、これらの理解が難しいと感じる方も多いのではないでしょうか ?
ストレージは、私たちが普段情報処理を行う上であまり意識せずとも使えますが、仕組みについて理解しておくことは重要です。
この記事ではストレージとは何なのか、どのような仕組みでデータを保存するのかという前提知識となる内容について掘り下げていきます。
対象者
- ストレージの基本について知りたい人
目的
- ストレージを身近なものとしてイメージできるようになること
- 3 つのストレージタイプについて知ること
各種ストレージサービスの詳細については言及しませんので、参考情報で紹介しているリンク先を用いて理解を深めてください!
2. ストレージの概要
ストレージとは
ストレージ (Storage) とは、データの保管庫を表します。
直訳すると「貯蔵」という意味があります。IT におけるストレージは補助記憶装置として、電気的な信号や磁気を使用してデータを保管します。
身近な例で例えると、冷蔵庫や倉庫などが該当します。残った食材や、使わない家電を収納するために使います。
昨今のノートパソコンには、Solid State Drive (SSD) と呼ばれる記憶装置が搭載されていることが多いのではないかと思います。
※ 画像引用:https://shop.sandisk.com/ja-jp/products/ssd/internal-ssd/wd-black-sn770-nvme-ssd
もっと皆さんにとって身近な例では、スマートフォンもコンピュータ装置の一つですから、ストレージ装置が備わっています。最近だと NAND 型フラッシュメモリという小型の部品が搭載されていることが多いです。
※ 画像引用:https://www.kioxia.com/ja-jp/business/memory/slc-nand/slc.html
物理デバイスのストレージについて
実際にデータを保存するためには物理デバイスが必要となりますが、どのようなものがあるか列挙してみます。
- Hard Disk Drive (HDD)
- Solid State Drive (SSD)
- USB フラッシュドライブ
- CD/DVD/Blu-ray
- 磁気テープ
- SD カード
それぞれ画像検索してみていただくと、どのような物理デバイスか確認できます。これらの物理デバイスにデータを保存します。
パーソナルコンピュータがデータを保存するまでの流れ
ここでは、画像のファイルをパーソナルコンピュータ (PC) にて保存している操作シナリオを図示しています。Web ブラウザ (アプリケーション) が動作するオペレーティングシステム (OS) において、ファイルシステム (その OS に搭載されているもの) が、そのコンピュータに搭載されているストレージデバイスに保存しています。
次の処理が行われています。
- 画像を右クリックして、「画像を保存」をクリック
- アプリケーションが OS に対して、画像を保存するよう依頼
- OS がファイルシステムに対して、保存するよう依頼
- ファイルシステムが、メタデータとファイルデータを保存
ファイルシステムの保存処理をもう少し細かく図に書くと、次のような処理が行われています。
- 物理デバイス上の空き領域を検索
- 画像データを決められたブロック (例:4 KB) に分割
- ファイル位置情報とメタデータの記録 (I ノードや MFT など)
- 非同期でのデータの書き込み
※ ファイルシステムによって分割するブロックの大きさが異なります。
※ メモリの動作や整合性確認・キャッシュへの書き込み・ジャーナリング処理などは割愛しています。
知らず知らずのうちに使っているコンピュータですが、画像一つの保存についても上記のような複雑な処理が行われています。
おまけ:データの最小単位と保存について
さらに細かい話をすると、データは最終的に「0」と「1」で表現されます。単位を ビット と言います。フラッシュメモリでは電子の有無でデータが記録されます。電子を持つ状態は「0」と、持たない状態は「1」となります。
例えば 256KB の画像データは最終的には 2,048,000 ビット、つまり約 200 万もの「0」「1」で構成されていることになります。4 KB ずつのブロックに分割すると 64 ブロックに分かれて保存されることになり、1 ブロックにつき 32,768 ビットとして保存されます。
ここまでで用語がいくつか出てきたので補足しておきます。それぞれ意味を理解してからもう一度流れを読んでみてください。
用語 |
意味 |
メタデータ |
関連情報のこと。ファイル名や作成日時、サイズ、アクセス権限などのデータが含まれる。 |
ファイルシステム |
データを管理するためのソフトウェアのこと。 |
MFT |
Master File Table の略。Windows ファイルシステム (NTFS)がメタデータやファイルの保存位置を管理するための仕組み。 |
iノード |
UNIX 系ファイルシステムにおいて、ファイルのメタデータや実際のデータの位置情報を保持する。 |
ジャーナリング |
システム故障や電源障害発生した際に、データ損失を防ぐ仕組み。データの変更履歴を記録して、ファイルシステムの整合性を保つ。 |
データが保存されるまでの流れについてイメージをつかめましたでしょうか ?
ファイルシステムについて
ファイルシステムはコンピュータのデータ管理と保存を行うソフトウェアです。
Windows だと NT File System (NTFS) が、Ubuntu 22.04 だと Fourth Extended File System (Ext4) が標準のファイルシステムとして搭載されています。
主な機能としては次の通りです。
- ファイルの保存
- 階層構造でのデータ管理
- メタデータ管理
- アクセス制御
- フォーマット
一般的な OS にはファイルシステムが含まれており、データ保存の際には先ほど説明した処理が行われています。
ファイルシステムにもたくさんの種類があります。興味のある方は調べてみてください。
3. ストレージの種別と関係性
AWS を学習する際には、次の 3 つのストレージが紹介されます。
- ブロックストレージ
- ファイルストレージ
- オブジェクトストレージ
どのストレージを使用しても、最終的には物理デバイスに保存されます。ただし、私たち利用者から見た時のデータの持ち方が異なります。
重要なポイントなので、改めて記載しますと、「利用者から見た際のデータの保管技術が異なる」ということです。
クラウドでは、それぞれが「サービス」として提供されているので、それぞれのストレージモデルに親和性の高い接続方法を利用して、そのストレージサービスを使用することになります。
早見表をまずは掲載します。
|
ブロックストレージ |
ファイルストレージ |
オブジェクトストレージ |
構造 |
固定長のブロック単位に分割する |
ファイルとディレクトリの階層構造を持つ |
フラットな領域を持つ |
プロトコル |
iSCSI, FC, FCoE などといった接続技術 |
NFS, SMB に代表されるネットワークプロトコル |
HTTP, HTTPS を用いたWeb技術 |
AWSサービス |
- Amazon EBS - インスタンスストア |
- Amazon EFS - Amazon FSx |
- Amazon S3 |
各種ストレージについてはこの後、順を追って見ていきます
AWS による、比較のページは以下です。
https://aws.amazon.com/jp/compare/the-difference-between-block-file-object-storage/
AWS において、上述の 3 つのストレージモデルのうち、具体例として Amazon Elastic Block Store (Amazon EBS), Amazon Elastic File System (Amazon EFS), Amazon Simple Storage Service (Amazon S3) を使用した場合を並べた概念図は次のとおりです。
4. ブロックストレージ
ブロックストレージとは、データを固定長 (ある決められた大きさ) のブロック単位に分割したうえでデバイスに保存するストレージモデルのことです。ブロックというデータ単位は、人間にとって直感的に理解しづらいですが、コンピュータにとっては効率的に処理しやすい形式です。単位あたりのサイズはブロックサイズなどと呼ばれ、「512 バイト」「4 キロバイト」などとそのデバイス特性に応じてあらかじめ決められているのが一般的です。
ブロックストレージは物理デバイス (HDD や SSD) をはじめ、仮想化環境やクラウドサービスで提供されます。他のストレージ方式と比較してデータアクセスの効率が良いため、高性能・低レイテンシーという特徴があり、データベースやトランザクション処理に適しています。
手元のパーソナルコンピュータ (PC) では、マザーボードなどと呼ばれる基盤に SSD などの物理デバイスを接続して利用できるようになっており、これもブロックストレージの一つです。業務用コンピュータなどにおいては、利用者が個人で利用するコンピュータに比べて相対的に役割が多くなりますので、ストレージ装置自体が大きくなることは自然です。そのため、次のようなブロックストレージ接続技術が用いられることがあります。
- Storage Area Network (SAN)
- 複数のサーバーとストレージ装置を高速なネットワークで接続するモデル
- Direct Attached Storage (DAS)
- サーバーに直接ストレージを接続するモデル
AWSでのブロックストレージ
AWS では 2 つのサービスでブロックストレージを提供しています。
- Amazon EBS
- インスタンスストア
Amazon EBS
Amazon EBS は、1 つの Amazon EC2 インスタンスにアタッチ (接続する概念に相当)できる、耐久性に優れたブロックレベルのストレージボリュームです。EC2 インスタンスを起動する際に指定するブートデバイスのブロックデバイスも EBS ボリュームですし、データ格納用のデバイスとして追加の EBS ボリュームをアタッチすることもあります。
特徴は次の通りです。
- EC2 インスタンスにアタッチして利用できますので、さまざまなワークロードで使用可能です。
- 異なる EC2 インスタンスへの付け外しが可能です。
インスタンスストア
インスタンスストアとは、EC2 インスタンスのための一時的なブロックレベルのストレージです。このストレージは、EC2 インスタンスのホストコンピュータに物理的にアタッチされているディスクによって提供されています。
特徴は次の通りです。
- 揮発性のあるストレージなので、データの永続化には使用できません。
- バッファ、キャッシュ、その他の一時コンテンツなど一時的なデータを格納するストレージとして使用できます。
- レイテンシーは小さいので性能重視した一時領域として利用可能です。
すべてのインスタンスタイプでサポートされているわけではありません。
詳細は「Amazon EC2 インスタンスタイプ」に記述されています。以下赤枠で囲った箇所で対応の有無が確認できます。NVMe SSD がインスタンスストアとして使用可能です。
5. ファイルストレージ
データをファイルとフォルダ (ディレクトリ) の階層構造で管理するストレージ方式です。私たちが普段ファイルを管理する際は、Windowsだと「エクスプローラー」、Mac だと「Finder」というアプリケーションを使用し、ファイル単位でデータの読み書きを行います。このデータ形式はファイルストレージと同様です。
実際に私たちの PC にはファイルシステム (Windows の NTFS や Linux の Ext4 など) が搭載されています。ファイルストレージにもファイルシステムが搭載されています。
次の図のように接続をして使用することになります。
ファイルストレージには次の特徴があります。
- ファイルとフォルダによる直感的な構造
- メタデータ(ファイル名、作成日時、所有者など)の管理
- アクセス権限の設定が容易
- ネットワーク共有が容易
ファイルストレージの代表的な例として、NAS (Network Attached Storage) があります。NASもファイルシステムが搭載されたネットワーク接続型のストレージデバイスです。
※ 画像引用: https://www.buffalo.jp/product/detail/ls720d1602.html
ファイルサーバーはファイルストレージの一種です。主な用途としては以下があります。
- 共有ファイルサーバー
- ドキュメント管理システム
- メディアファイル(写真、動画)の保存
- バックアップストレージ
- コンテナ用ストレージ
AWSのファイルストレージ
AWSにおけるマネージドサービスとしてのファイルストレージには、Amazon Elastic File System (Amazon EFS) と Amazon FSx の二種類があります。
Amazon EFS は、必要な容量について伸縮自在な NFS のファイルストレージです。ストレージ容量とパフォーマンスをプロビジョニングまたは管理しなくても従量課金の考え方でファイルデータを共有して使うことができます。Amazon EFS 自体が、ファイルストレージインフラストラクチャを管理するため、複雑なデプロイ、パッチ適用、および複雑なファイルシステム設定の保守を利用者が行う必要がありません。
一方の、Amazon FSx は、機能豊富で高性能なファイルシステム技術について、クラウド上での起動、実行およびスケーリングを簡単かつコスト効率の高いものにするマネージドサービスです。NetApp ONTAP, OpenZFS, Windows File Server および Lustre の 4 つから選んで利用します。ハードウェアのプロビジョニング、パッチ適用、バックアップがマネージドサービスとして提供されますので、利用者は、アプリケーション、エンドユーザー、ビジネスに専念することができます。Amazon EFS との違いは、パフォーマンスのプロビジョニングを意識してコンフィグレーションするところ、および、データ保護やプロトコルなど選択したファイルシステム技術固有の機能を活用できることです。
以下は Amazon EFS の利用イメージです。共有ファイルシステムとして使用できます。
Amazon EFS については、AWS Black Belt の動画 がわかりやすいので視聴してみてください。
ファイルストレージの選び方については AWS ファイルストレージサービスの選び方 をご参照ください。
6. オブジェクトストレージ
オブジェクトストレージは、データとそれに関連するメタデータを一つの「オブジェクト」として管理するストレージ方式です。ストレージ領域は従来のファイルシステムとは異なり、フラットな構造を持ちます。実装として分散ストレージとなっており、拡張性に優れています。データ更新はオブジェクト単位で、部分的な更新はできません。
ユースケースとしては以下です。
- 大容量の非構造化データ (画像、動画、ログファイルなど) の保存
- バックアップとアーカイブ
- クラウドネイティブアプリケーションのデータストア
AWS のオブジェクトストレージ
AWS では Amazon S3 というサービスでオブジェクトストレージが提供されています。
Amazon S3 は、スケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するフルマネージドサービスです。
あらゆる規模や業界のお客様が、データレイク、ウェブサイト、モバイルアプリケーション、バックアップおよび復元、アーカイブ、エンタープライズアプリケーション、IoT デバイス、ビッグデータ分析など、広範なユースケースで利用し、データの容量にかかわらず、保存し、そして保護することができます。
サーバーレスのため、容量管理などは一切不要でストレージを使用可能です。
インターフェース上、階層構造を持っているように見えますが、Prefix というものです。実際のデータは階層構造で保存されません。
利用イメージは以下の通りです。
Amazon S3 の入門動画については、AWS Black Belt がわかりやすいので、是非視聴してみてください。
また AWS Summit 2024 にて Dive deep という、裏側の仕組みなど詳しく解説したセッションがあります。 記事公開時点では 動画 も 資料 も公開されているので興味のある方は見てみてください!
7. おわりに
今回はあまり AWS の各ストレージサービスには取り扱いしていませんでした。まずはストレージについて理解を深めていただければ嬉しいです。
再度 AWS における 3 つのストレージサービスモデルのうち、Amazon EBS, Amazon EFS, Amazon S3 を使用した概念図を掲載しておきます。
この次のステップとしては、それぞれのストレージについて理解を深め、さらに状況に応じて、適切にストレージを使い分けできるようになっていくことを目標にしていただければと思います。
筆者プロフィール
田中 勇希
NTTデータ先端技術株式会社
AWS認定インストラクター
Web アプリケーションの開発や社内SEなどを経て、現在は AWS 認定インストラクターとして活動している。
AWS Authorized Instructor Award 2023 にて Best Instructor CSAT 3 位を受賞。
AWS を無料でお試しいただけます