Amazon Web Service(AWS)の仮想サーバーとしては、Amazon EC2(Elastic Compute Cloud)が有名ですが、そのAmazon EC2のデータ格納・保存に利用できるストレージサービスのひとつがAmazon Elastic BlockStore(EBS)です。Amazon EC2利用時は、インスタンスの停止と関係なくデータ保存ができるAmazon EBSを併用するのが一般的です。Amazon EBSの特徴を紹介しましょう。
Amazon EBS(Elastic Block Store)の概要と用途
Amazon EBSはAmazon EC2向けに設計されたブロックストレージサービスで、Amazon EC2で扱うデータはAmazon EBSに保存する構成が基本です。データ保存のサービスとしてはAmazon S3(Simple Storage Service)なども有名ですが、データにすばやくアクセスする必要があるなら、Amazon EBSを推奨します。なおAmazon EBSはパフォーマンスによっていくつか種類があり、高速データベース向け、一般的なファイル保存など用途によって選べます。
Amazon EBSとは、Amazon EC2にアタッチして使うブロックストレージ
Amazon EBSを利用するときは、Amazon EC2のインスタンスに接続します。このように接続することを「アタッチ」と呼び、接続を解除することを「デタッチ」と呼びます。デタッチしてしまえば、インスタンスが停止してもデータは保存されます。
またAmazon EBSは、ブロック(Block)という方式のストレージで、データに素早くアクセスできるという大きな特徴を持ちます。そのためSAP、Oracle、Microsoft製品などのミッションクリティカルなアプリケーションの厳しい要求にも対応できるのが特徴です。
またEBSのスナップショットは自動的にストレージサービスであるAmazon S3に保存されます。S3は耐障害性が高く、スナップショットはAPIでよびだして迅速に復元できるため可用性を高めることができます。可用性とは、システムが停止することなく継続して稼働し続けられる性能のことです。
Amazon EBSのタイプとIOPS、スループット
Amazon EBSは、ディスクタイプにSSDとHDDの2種があり、SSDで5種類、HDDで2種類のタイプがあります。
SSD(5種類)
SSDはI/Oサイズが小さく、読み書きの頻度が高いシステムに適しています。システムブート用のボリュームとして使用できます。
SSDは以下5種類となります。
※上から性能の高い順となります。
- EBSプロビジョンドIOPS SSD(io2 Block Express)
- EBSプロビジョンドIOPS SSD(io2)
- EBSプロビジョンドIOPS SSD(io1)*
- EBS汎用SSD(gp3)*
- EBS汎用SSD(gp2)
上記の中でも有名な2種について概要を説明しましょう。
- EBSプロビジョンドIOPS SSD(io1)
汎用SSD(gp2)との違いは、IOPSを設定できる点です。インスタンスによってはIOPS上限を、64,000に設定できます。
- EBS汎用SSD(gp3)(io1)
様々な目的のために利用可能で、HDDより低い遅延でデータを読み書きできます。主な用途は、仮想デスクトップ環境や開発/テスト環境です。従来のgp2 ボリュームよりも、GBあたり最大20%という低い料金で利用できます。またgp3ボリュームは、3000 IOPSおよび125MB/秒のベースラインパフォーマンスを持ち、さらに最大16,000 IOPSおよび1,000 MB/秒までスケールアップすることができます(追加料金必要)。
なお、gp2のIOPSはデータ容量に応じていて、1GBあたり3IOPSで、100GBならIOPSは300になります。ただし下限は100、上限は16,000に規定されています。
HDD(2種類)
HDDはバックアップやストリーミングなど、I/Oのファイル容量が大きく、高いスループットのシステムに適しています。なおシステムブート用のボリュームとしては使用できません。
HDDは2種類あり、概要は以下の通りです。
- スループット最適化HDD(st1)
Cold HDDよりは高速にデータを読み書きできます。主な用途は、バッチ処理やビッグデータ処理のためのボリュームです。IOPSの上限は500。SSDのIOPSと比較すると桁が2つほど下がりますが、SSDの1IOPSあたりのデータ量は16KB、HDDは1MBとデータ量は桁違いに多いので、IOPSだけでデータ処理性能の優劣を比較できないのは要注意です。
- Cold HDD(sc1)
ストレージ1GBあたりの料金が最も低いタイプです。主な用途は、アクセス頻度の低いアーカイブデータ用などです。
AWS でもシステム障害が起こり得ることを考慮した運用設計をする必要があります。当社NHNテコラスでは、AWS運用のベストプラクティスについてご紹介した資料をご用意しておりダウンロードいただけます。AWSをどのように運用していくのがのぞましいのかを解説しています。
Amazon EBSの機能・性能(容量、共有、スナップショット、暗号化)
Amazon EBSには可用性や耐障害性を高める色々な機能があります。
Amazon EBSエラスティックボリューム
利用状況に応じてストレージのボリューム設定を調整できます。後からでも変更できるので、最初から将来の変更を意識する必要はなく、作成時点で必要なボリューム容量を設定すれば構いません。さらに障害が発生したときにデータが保護できるよう、自動的にレプリケートされます。
Amazon EBSマルチアタッチ
複数のインスタンスに1つのAmazon EBSをアタッチできます。これによってデータの共有化が可能になります。EBSプロビジョンドIOPS io2またはio1のボリュームを、同じアベイラビリティーゾーン内にある最大16個のNitroベースのEC2インスタンスに同時にアタッチすることができます。
暗号化
Amazon EBS内のデータは暗号化が可能です。暗号化は、Amazon EC2インスタンスをホストするサーバーで行われるため、インスタンスとAmazon EBSデータボリュームおよびブートボリュームとの間を移動するデータも暗号化されます。
可用性を高めるスナップショット
Amazon EBS内のデータは、ボリュームのスナップショットを耐久性の高いAmazon S3に保存できます。スナップショットは、増分バックアップ方式なので、最後のスナップショットが保存された後に変更されたブロックだけが保存されます。このため容量を効率良く利用できます。
AWSを利用するうえで重要なクラウドアーキテクチャの基本について、具体的な例を用いながらベストプラクティスを紹介したセミナーの講演資料です。
Amazon EBSの料金・無料枠
各プランの料金
ディスク | SSD | HDD | |||||
タイプ | EBS プロビジョンド IOPS SSD | EBS 汎用 SSD | スループット最適化 HDD (st1) | Cold HDD (sc1) | |||
詳細 | (io2 Block Express) | (io2) | (io1) | (gp3) | (gp2) | ||
料金/GB | 0.125 USD/GB | 0.08 USD/GB | 0.10 USD/GB | 0.045 USD/GB | 0.015 USD/GB | ||
IOPS | 32,000 IOPS までは、0.065 USD/プロビジョンド IOPS。
32,001~64,000は、0.046 USD/プロビジョンド IOPS。 64,000 IOPS を超、0.032 USD/プロビジョンド IOPS |
0.065 USD/プロビジョンド IOPS | 3,000 IOPSまでは無料で、それ以降は0.005 USD/プロビジョンド IOPS。
125 MB/秒までは無料で、それ以降は0.04 USD/プロビジョンド MB/秒。 |
無料利用枠
AWSには、いろいろなサービスを試せる無料枠が用意されています。Amazon EBSの場合は、30GBのAmazon EBS(汎用SSDストレージまたはHDDストレージの任意の組み合わせ)、200万I/O(EBS HDDの場合)、1GBのスナップショットストレージが、最初にサインアップした日から12ヶ月間、無料で利用できます。
Amazon EBSとAmazon S3の比較
AWSのストレージサービスとしては、Amazon S3も有名です。データを保管するという意味では、Amazon EBSと同じですが、データへのアクセス方法が異なるので適した用途が違います。Amazon S3は「オブジェクトストレージ」と呼ばれるストレージです。フォルダを用意してそこに関連したファイルを収めるという一般的な階層的保管方法とは異なり、ファイルを個別に分割してオブジェクトとし、ハードウェア間に分散させてフラットに保管する方法を採用しています。
またAmazon EBSはAmazon EC2にアタッチして利用できます。Amazon S3とAmazon EC2はネットワーク経由で接続します。ですからAmazon EBSのほうがデータ速度は圧倒的に速く、レスポンスを求められるデータベースや、開発やテスト環境での利用がオススメです。
※詳しくは、AWSサイト 「Amazon EBS の特徴」を参照
Amazon S3は、バックアップデータや大量の動画データの保存に適しています。価格だけでなく利用方法利用法の合ったサービスを選ぶようにしましょう。
Amazon S3の特長は容量が無制限なことです。Amazon EBSは容量に制限があるので、大きな容量が欲しければAmazon S3がお勧めです。また一般的に、Amazon S3の方が、Amazon EBSより安くなっています。Amazon S3は、$0.025/1GBです(最初の50TB、スタンダードストレージの場合)。Amazon EBSは一般的なSSDの場合、$0.125USD/1GBと、5倍もの価格差があります。加えて高い耐久性も特徴です。Amazon S3の耐久性は、99.999999999% (イレブンナイン) という高い数値を誇っています。
Amazon EBSとAmazon EFSの違い
他にもストレージサービスとして、Amazon Elastic File System(EFS)があります。こちらは、フォルダなどの階層構造でファイルを整理する、フォルダ/ファイルパスを使ってアクセスする手法を使っています。ファイルには、作成日、変更日、ファイルサイズなどのメタデータを付与できます。一般的なファイル保管方法なので、Linux OSでマウント可能なファイルシステムとして利用できます。またAmazon EC2にアタッチも可能です。
基本的にAmazon EBSは、1つの EC2 インスタンスにアタッチして利用するので、先に記載したように外付けハードディスクと理解できます。対して、Amazon EFSは、最大数千のAmazon EC2インスタンスから同時アクセスが可能なストレージとして利用できるため、NAS に似たファイルストレージとしての利用が可能です。
Amazon EBSの使い方
Amazon EBSは、同じアベイラビリティーゾーンに存在するAmazon EC2インスタンスに、ボリュームとしてアタッチできます。アタッチした後は、Amazon EC2インスタンスにボリュームとしてマウントすれば利用することができます。以下に、実際に使用する手順について、その概要を紹介します。
1.Amazon EBSボリュームの作成・削除
Amazon EBSによるボリュームの作成、アタッチ、マウント、削除操作の概要を紹介します。
手順1.Amazon EBSボリュームを作成する
- AWSマネジメントコンソールでボリュームを作成するリージョンを選択
- Amazon EC2 コンソールを開き、「ボリュームの作成」を選択
- 「ボリュームの作成」画面で「ボリュームタイプ」や「サイズ(GiB)」にボリュームのサイズ、アベイラビリティーゾーンなどを選択
- ボリュームを暗号化するなら「このボリュームを暗号化する」を選択。
- 「ボリュームの作成」を選択。
手順2.Amazon EC2のインスタンスに、Amazon EBSボリュームをアタッチする
- Amazon EC2 コンソールを開く。
- 「Elastic Block Store」の「ボリューム」を開き、「アクション」から「ボリュームのアタッチ」の順に選択。
- 「インスタンス」にインスタンスの名前もしくはIDを入力する。もしくはリストから選択する(「デバイス」でデバイス名を変更することが可能)。
- 「アタッチ」を選択。
手順3.Amazon EC2のインスタンスに、Amazon EBSボリュームをマウントする
※SSHを使用してAmazon EC2 インスタンスに接続する。
-
- 「lsblk」で使用可能なディスクデバイスを確認。
例)
なお、Amazon EBSのボリュームを新しく作成したりアタッチした場合は、まだファイルシステムが無いので、マウント前にファイルシステムを作成する。デバイス情報は「file -s」で確認する。ファイルシステムの作成は「mkfs -t」を使う。
例)対象となるデバイスが /dev/ebs の場合
$ sudo mkfs -t xfs /dev/ebs
-
- マウントするディレクトリを作成する。ディレクトリは「mkdir」で作成。
例)
-
- 「mount」でディレクトリにAmazon EBSのボリュームをマウントする。
例)
手順4.ボリュームの削除
ボリュームが不要になったら削除できます。削除すると、ボリュームに含まれるデータも削除され、そのボリュームはどのインスタンスにもアタッチできなくなります。ただ、削除前にボリュームのスナップショットを保存しておけば、後でそのショットを使ってボリュームを再度作成できます。
またインスタンスにアタッチされているボリュームは削除できません。削除するには、まずボリュームをデタッチする必要があります。
-
- ボリュームをアンマウントする
※/dev/ebs は、ボリュームのあるパス。
-
- ボリュームをインスタンスからデタッチする
2-1. Amazon EC2 コンソールを開く。
2-2.「Elastic Block Store」の「ボリューム」を開き、「アクション」から「ボリュームのデタッチ」の順に選択。
2-3 .次に「アクション」から「ボリュームの削除」を選択。
2.Amazon EBSスナップショットの作成
スナップショットを作成すれば、新規ボリュームやデータバックアップ用に使用できます。以下、スナップショットの作成について概要を紹介します。
- Amazon EC2 コンソールを開く。
- 「Elastic Block Store」の「スナップショット」を選択。
- 「スナップショットの作成」を選択。
- 「リソースタイプの選択」で「ボリューム」を選択し、「ボリューム」で、ボリュームを選択。
- (必要なら実施)スナップショットの説明を入力。
- (必要なら実施)「タグの追加」を選択し、タグをスナップショットに追加。タグごとに、タグキーとタグの値を指定可能。
- 「スナップショットの作成」を選択。
3.Amazon EBSボリュームのサイズ変更(Windows、Linuxファイルシステムの拡張)
Amazon EBSは、作成後でもボリュームのサイズを変更することができます。以下、その概要を紹介します。
- Amazon EC2 コンソールを開く。
- 「Elastic Block Store」の「ボリューム」を選択し、変更したいボリュームを選び、「アクション」の「ボリュームの変更」を選択。
- :ボリュームタイプやサイズを変更し、「変更」して設定を保存する。
上記で、ボリュームの値の変更した後、値をOSに認識させる必要があります。
Amazon Linuxの場合は、「growpart」コマンドでボリューム量を、「xfs_growfs」コマンドでファイルサイズを拡張します。
※詳しくは、AWS公式ドキュメントを参照
Windowsの場合は、Windowsディスク管理ユーティリティ(リモートデスクトップ)やPowerShellを使用して、ディスクサイズをボリュームの新しいサイズに拡張します。ボリュームがoptimizing状態になれば、ファイルシステムのサイズ変更を開始できます。
※詳しくは、AWS公式ドキュメントを参照
AWS活用はNHNテコラスの「C-Chorus」で
Amazon EBSは、Amazon EC2を活用する際に必須のサービスです。いろいろなタイプがありパフォーマンスも異なるので、システム全体の効率を考えて、必要なタイプを選択するようにしましょう。もちろん設定後でも、タイプを変更したり、容量を変えることもできるので、将来的なことよりも、今必要な内容で設定を進めても構いません。
設定はいろいろ細かく、パフォーマンスが出ているのか、足りないのかといった判断には、システム構築の経験が有用です。
NHN テコラスは、APN(Amazon partoner network)のプレミアティア サービスパートナーであり、経験豊富なエンジニアによるベストプラクティスの提案や実践、ソリューションの構築を依頼できます。
また、「請求代行 リセールサービス」では、AWSサービス利用料金 8% 割引プランや個別割引といったお得な支払いプランのご用意もあります。リセールサービスはAWSの技術サポートも無料でセットになっています。AWS運用のお悩みについてもお気軽にご相談ください。
▼ AWS運用負荷を軽減する運用代行サービス!運用だけではなくシステム構成のアドバイスも行います。