AWS・Google Cloud コラム

  • AWS入門
  • 仮想サーバー
  • AWS

AWS EBSとは?EC2ストレージの料金プランや使い方を解説

Amazon Web Service(AWS)の仮想サーバーとしては、Amazon EC2(Elastic Compute Cloud)が有名ですが、そのAmazon EC2のデータ格納・保存に利用できるストレージサービスのひとつがAmazon Elastic BlockStore(EBS)です。Amazon EC2利用時は、インスタンスの停止と関係なくデータ保存ができるAmazon EBSを併用するのが一般的です。Amazon EBSの特徴を紹介しましょう。

EC2向けストレージ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種類のタイプがあります。

AWS EBSの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)

上記の中でも利用機会の多い「gp3」と「プロビジョンドIOPS(io1/io2)」について概要を説明しましょう。

  • EBS汎用SSD(gp3)

様々な目的のために利用可能で、HDDより低い遅延でデータを読み書きできます。主な用途は、仮想デスクトップ環境や開発/テスト環境です。従来のgp2 ボリュームよりも、GBあたり最大20%という低い料金で利用できます。またgp3ボリュームは、3000 IOPSおよび125MiB/秒のベースラインパフォーマンスを持ち、さらに最大80,000 IOPSおよび2,000 MiB/秒までプロビジョニングできます(追加料金が発生します)。

参考として、gp2のIOPSは容量に応じており、1GiBあたり3IOPS(最小100、最大16,000)です。

  • EBS プロビジョンドIOPS SSD(io1)

汎用SSD(gp2/gp3)との違いは、必要なIOPSを指定(プロビジョニング)できる点です。料金は「ストレージ容量(GB)」に加えて「プロビジョンドIOPS」にも発生します。
なお、io1はボリュームあたり最大64,000 IOPSまで設定できます(実際に到達できる性能は、接続するインスタンス側の上限など条件により変わります)。

AWS EBSのHDD(2種類)

HDDはバックアップやストリーミングなど、I/Oのファイル容量が大きく、高いスループットのシステムに適しています。なおシステムブート用のボリュームとしては使用できません。

HDDは2種類あり、概要は以下の通りです。

  • スループット最適化HDD(st1)

Cold HDDよりは高速にデータを読み書きできます。主な用途は、バッチ処理やビッグデータ処理のためのボリュームです。IOPSの上限は500。st1/sc1はスループット重視のHDDボリュームで、主に大きなI/Oをシーケンシャルに読み書きする用途に向いています。性能モデルはスループット(MiB/秒)とI/Oクレジットに基づき、特に小さなランダムI/Oでは効率が落ちる点に注意が必要です。

  • 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インスタンスに同時にアタッチすることができます。

EBS内のデータを暗号化

Amazon EBS内のデータは暗号化が可能です。暗号化は、Amazon EC2インスタンスをホストするサーバーで行われるため、インスタンスとAmazon EBSデータボリュームおよびブートボリュームとの間を移動するデータも暗号化されます。

可用性を高めるスナップショットでEBSのデータ容量を抑えられる

Amazon EBS内のデータは、ボリュームのスナップショットを耐久性の高いAmazon S3に保存できます。スナップショットは、増分バックアップ方式なので、最後のスナップショットが保存された後に変更されたブロックだけが保存されます。このため容量を効率良く利用できます。

Amazon EBSの料金・無料枠

Amazon EBS各プランの料金

Amazon EBSの料金はリージョンとボリュームタイプにより異なります。基本は「ストレージ容量(GB/月)」が課金対象で、ボリュームタイプによっては追加のIOPSやスループット(ベースライン超過分)が課金されます。

  • gp3:3,000 IOPS / 125MiB/s のベースライン性能が含まれ、追加のIOPS・スループットは個別にプロビジョニングして課金
  • gp2:ストレージ容量(GB/月)のみ課金(I/Oは料金に含まれる)
  • io1/io2:ストレージ容量(GB/月)+プロビジョンドIOPSが課金対象

最新の単価はAWS公式の「Amazon EBS の料金」を参照してください。

Amazon EBSの無料利用枠

AWSには無料枠が用意されており、Amazon EBSも対象です(例:30GBのストレージ、200万I/O、1GBのスナップショットストレージなど)。ただし無料枠の条件はアカウント作成時期や選択したプラン(Free plan / Paid plan)によって異なる場合があります。最新条件はAWS公式の「Amazon EBS の料金(無料利用枠)」をご確認ください。

AWSのストレージサービス Amazon EBSとAmazon S3の比較

AWSのストレージサービスとしては、Amazon S3も有名です。データを保管するという点ではAmazon EBSと似ていますが、データへのアクセス方法が異なるため、適した用途が違います。Amazon S3は「オブジェクトストレージ」で、オブジェクト単位で保存・取得する仕組みです。

一方Amazon EBSは、Amazon EC2にアタッチして利用する「ブロックストレージ」です。OSディスクやデータベースなど、低レイテンシで頻繁に読み書きする用途に向いています(※詳しくは、AWSサイト「Amazon EBS の特徴」を参照)。

Amazon S3は、バックアップデータやログ、動画などの大容量データの保管に適しています。S3はストレージクラスによって特性(取り出し頻度・コストなど)を選べ、容量も用途に合わせて柔軟に扱えます。

料金は、S3はストレージクラスやリクエスト量、EBSはボリュームタイプ(gp3/io系など)や容量、追加のIOPS/スループット設定によって変わり、リージョンによっても異なります。単価を固定して比較するのではなく、用途に合うサービスを選びましょう。なお、Amazon S3の耐久性は、99.999999999% (イレブンナイン) という高い数値を誇っています。

AWSのストレージサービス Amazon EBSとAmazon EFSの違い

他にもストレージサービスとして、Amazon Elastic File System(EFS)があります。こちらは、フォルダなどの階層構造でファイルを整理する、フォルダ/ファイルパスを使ってアクセスする手法を使っています。ファイルには、作成日、変更日、ファイルサイズなどのメタデータを付与できます。一般的なファイル保管方法なので、Linux OSでマウント可能なファイルシステムとして利用できます。またAmazon EC2にアタッチも可能です。

基本的にAmazon EBSは、1つの EC2 インスタンスにアタッチして利用するので、先に記載したように外付けハードディスクと理解できます。対して、Amazon EFSは、最大数千のAmazon EC2インスタンスから同時アクセスが可能なストレージとして利用できるため、NAS に似たファイルストレージとしての利用が可能です。

EC2向けストレージ Amazon EBSの使い方

Amazon EBSは、同じアベイラビリティーゾーンに存在するAmazon EC2インスタンスに、ボリュームとしてアタッチできます。アタッチした後は、Amazon EC2インスタンスにボリュームとしてマウントすれば利用することができます。以下に、実際に使用する手順について、その概要を紹介します。

1. Amazon EBSボリュームの作成・削除

Amazon EBSによるボリュームの作成、アタッチ、マウント、削除操作の概要を紹介します。

手順1. Amazon EBSボリュームを作成する

  1. AWSマネジメントコンソールでボリュームを作成するリージョンを選択
  2. Amazon EC2 コンソールを開き、「ボリュームの作成」を選択
  3. 「ボリュームの作成」画面で「ボリュームタイプ」や「サイズ(GiB)」にボリュームのサイズ、アベイラビリティーゾーンなどを選択
  4. ボリュームを暗号化するなら「このボリュームを暗号化する」を選択。
  5. 「ボリュームの作成」を選択。

手順2. Amazon EC2のインスタンスに、Amazon EBSボリュームをアタッチする

  1. Amazon EC2 コンソールを開く。
  2. 「Elastic Block Store」の「ボリューム」を開き、「アクション」から「ボリュームのアタッチ」の順に選択。
  3. 「インスタンス」にインスタンスの名前もしくはIDを入力する。もしくはリストから選択する(「デバイス」でデバイス名を変更することが可能)。
  4. 「アタッチ」を選択。

手順3. Amazon EC2のインスタンスに、Amazon EBSボリュームをマウントする

※SSHを使用してAmazon EC2 インスタンスに接続する。

    1. 「lsblk」で使用可能なディスクデバイスを確認。

例)

$ lsblk

なお、Amazon EBSのボリュームを新しく作成したりアタッチした場合は、まだファイルシステムが無いので、マウント前にファイルシステムを作成する。デバイス情報は「file -s」で確認する。ファイルシステムの作成は「mkfs -t」を使う。

例)対象となるデバイスが /dev/ebs の場合
※デバイス名は環境により /dev/xvdf や /dev/nvme1n1 などになります。Nitro 世代では NVMe デバイス名が変わることがあるため、ボリュームIDやUUIDなど安定した識別子で確認するのがおすすめです。

$ sudo file -s /dev/ebs
$ sudo mkfs -t xfs /dev/ebs
    1. マウントするディレクトリを作成する。ディレクトリは「mkdir」で作成。

例)

$ sudo mkdir /data
    1. 「mount」でディレクトリにAmazon EBSのボリュームをマウントする。

例)

$ sudo mount /dev/ebs /data

手順4. ボリュームの削除(アンマウント)

ボリュームが不要になったら削除できます。削除すると、ボリュームに含まれるデータも削除され、そのボリュームはどのインスタンスにもアタッチできなくなります。ただ、削除前にボリュームのスナップショットを保存しておけば、後でそのショットを使ってボリュームを再度作成できます。

またインスタンスにアタッチされているボリュームは削除できません。削除するには、まずボリュームをデタッチする必要があります。

    1. ボリュームをアンマウントする
$ sudo umount /data

※/data はマウントポイントです(デバイス名は環境により /dev/xvdf や /dev/nvme1n1 など異なります)。

    1. ボリュームをインスタンスからデタッチする

2-1. Amazon EC2 コンソールを開く。
2-2.「Elastic Block Store」の「ボリューム」を開き、「アクション」から「ボリュームのデタッチ」の順に選択。
2-3 .次に「アクション」から「ボリュームの削除」を選択。

2. Amazon EBSスナップショットの作成

スナップショットを作成すれば、新規ボリュームやデータバックアップ用に使用できます。以下、スナップショットの作成について概要を紹介します。

  1. Amazon EC2 コンソールを開く。
  2. 「Elastic Block Store」の「スナップショット」を選択。
  3. 「スナップショットの作成」を選択。
  4. 「リソースタイプの選択」で「ボリューム」を選択し、「ボリューム」で、ボリュームを選択。
  5. (必要なら実施)スナップショットの説明を入力。
  6. (必要なら実施)「タグの追加」を選択し、タグをスナップショットに追加。タグごとに、タグキーとタグの値を指定可能。
  7. 「スナップショットの作成」を選択。

3. Amazon EBSボリュームのサイズ変更(Windows、Linuxファイルシステムの拡張)

Amazon EBSは、作成後でもボリュームのサイズを変更することができます。以下、その概要を紹介します。

  1. Amazon EC2 コンソールを開く。
  2. 「Elastic Block Store」の「ボリューム」を選択し、変更したいボリュームを選び、「アクション」の「ボリュームの変更」を選択。
  3. :ボリュームタイプやサイズを変更し、「変更」して設定を保存する。

上記で、ボリュームの値の変更した後、値をOSに認識させる必要があります。

Amazon Linuxの場合は、「growpart」コマンドでボリューム量を、「xfs_growfs」コマンドでファイルサイズを拡張します。
※詳しくは、AWS公式ドキュメントを参照

Windowsの場合は、Windowsディスク管理ユーティリティ(リモートデスクトップ)やPowerShellを使用して、ディスクサイズをボリュームの新しいサイズに拡張します。ボリュームがoptimizing状態になれば、ファイルシステムのサイズ変更を開始できます。
※詳しくは、AWS公式ドキュメントを参照

AWS・EBS活用は料金もお得なNHNテコラスの「C-Chorus」で

Amazon EBSは、Amazon EC2を活用する際に必須のサービスです。いろいろなタイプがありパフォーマンスも異なるので、システム全体の効率を考えて、必要なタイプを選択するようにしましょう。もちろん設定後でも、タイプを変更したり、容量を変えることもできるので、将来的なことよりも、今必要な内容で設定を進めても構いません。

設定はいろいろ細かく、パフォーマンスが出ているのか、足りないのかといった判断には、システム構築の経験が有用です。

NHN テコラスは、APN(Amazon partoner network)のプレミアティア サービスパートナーであり、経験豊富なエンジニアによるベストプラクティスの提案や実践、ソリューションの構築を依頼できます。
また、「請求代行 リセールサービス」では、AWSサービス利用料金 8% 割引プランや個別割引といったお得な支払いプランのご用意もあります。リセールサービスはAWSの技術サポートも無料でセットになっています。AWS運用のお悩みについてもお気軽にご相談ください。

おすすめのサービス

おすすめの記事

おすすめのカテゴリ