Amazon EBS を使用する

はじめに

AWS より提供されているサービスの中でも特に主要なサービスの一つが Amazon EC2 でしょう。これはいわゆるレンタルサーバーサービスとなるわけですが、このサービスを利用して EC2 インスタンスを構築する際に使用するストレージサービスがあります。今回は EC2 インスタンスに必要不可欠なストレージサービス Amazon Elastic Block Store (EBS) について、使用方法を含めてまとめていきます。

Amazon EBS とは

Amazon EBS は、AWS より提供されている Amazon Elastic Compute Cloud (EC2) と共に使用するために設計されたブロックレベルのストレージサービスです。AWS 上で操作できる仮想ディスクとして、EC2 インスタンスにアタッチして使用することが可能です。

EBS の主な特徴としては以下の通りです。

  • 高い可用性
    EBS ボリュームは 99.999% の可用性を持つよう設計されています。EBS ボリュームを作成することで、そのボリュームは同じアベイラビリティーゾーン内で自動的にレプリケートされるため、冗長化を行う必要はありません。
  • データの永続性
    EBS ボリュームに保存されるデータは、EC2 インスタンスの運用状況に左右されずに永続的なデータ保存が可能です。ただし、デフォルトの設定ではインスタンスの起動時に作成およびアタッチされたルート EBS ボリュームに関してはインスタンスの終了時に削除されてしまうため、インスタンス終了後も EBS ボリュームのデータを残す場合には設定を変更するか、後述するスナップショットを利用してバックアップを行います。
  • 信頼できるセキュリティ
    AWS が管理するキー、もしくはユーザーが AWS Key Management Service (KMS) を使用して作成と管理を行っているキーを使用することで、EBS ボリューム、およびスナップショットをシームレスに暗号化することができます。さらに、EC2 インスタンスと EBS ボリューム間を移動するデータも暗号化されます。また、Amazon EBS ボリュームへのアクセスは AWS Identity and Access Management (IAM) によりアクセス制御を行うことができます。
  • 運用に合わせた4種類のボリュームタイプ
    アプリケーションの特性に応じて、パフォーマンスと料金の異なる4つのボリュームタイプから最適なものを選択することができます。タイプは大きく分けて、HDD(ハードディスクドライブ) と SSD(ソリッドステートドライブ) の2つから選択することができ、さらにその中でも汎用的なパフォーマンスを持つものと、高いスループットに適したものの2つが用意されています。選択できるボリュームタイプは以下の通りです。
    – 汎用 SSD (gp2) ボリューム
    – プロビジョンド IOPS SSD (io1) ボリューム
    – スループット最適化 HDD (st1) ボリューム
    – Cold HDD (sc1) ボリューム
    基本的に EBS ボリュームは1つの EC2 インスタンスにアタッチして使用するため複数のインスタンスで同時に共有することはできませんが、io1 EBS ボリュームでは最大16個の Nitro ベースのインスタンスにアタッチすることができます。
  • スナップショット機能
    設定により任意のタイミングで EBS ボリュームのスナップショットを作成することが可能です。スナップショットのデータは Amazon S3 に保存され、バックアップやリストアに使用することができます。基本的に EC2 インスタンスは他のアベイラビリティーゾーン内の EBS ボリュームにアクセスできませんが、スナップショットから復元する際には別のアベイラビリティーゾーンにも可能なため、スナップショットを利用することでアベイラビリティーゾーンを跨いで同じ内容の EBS ボリュームを使用することができます。また、スナップショットをコピーすることにより、異なるリージョン間を跨いで EBS ボリュームを利用するといったことも可能です。

Amazon EBS を使用するまでの手順

Amazon EBS は同じアベイラビリティーゾーンに存在する EC2 インスタンスにボリュームとしてアタッチすることができます。EBS ボリュームのアタッチから EC2 インスタンスでマウントして実際に使用するまでの手順についてまとめます。

EBS ボリュームの作成

AWS マネジメントコンソールから EBS ボリュームを作成することができます。

  1. AWS マネジメントコンソールから Amazon EC2 コンソールを開きます。
  2. ナビゲーションバーからボリュームを作成するリージョンを選択します。
  3. ナビゲーションペインから、[Elastic Block Store] の中にある [ボリューム] を選択します。
  4. [ボリュームの作成] を選択します。
  5. [ボリュームタイプ] でボリュームタイプを選択します。
  6. [サイズ (GiB)] に作成するボリュームのサイズを入力します。(1GiB~16TiB)
  7. プロビジョンド IOPS SSD ボリュームの場合、[IOPS] に IOPS (1 秒あたりの入力/出力オペレーションの数) の最大数を入力します。
  8. [Availability Zone] でボリュームを作成するアベイラビリティーゾーンを選択します。
  9. ボリュームを暗号化する場合は [このボリュームを暗号化する] を選択します。
  10. 最後に [ボリュームの作成] を選択します。上記設定の他にタグを追加することもできます。

EBS ボリュームを EC2 インスタンスにアタッチする

  1. AWS マネジメントコンソールから Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインから、[Elastic Block Store] の中にある [ボリューム] を選択します。
  3. アタッチする EBS ボリュームにチェックを入れて、[アクション] から [ボリュームのアタッチ] の順に選択します。
  4. [インスタンス] にインスタンスの名前または ID を入力、もしくはリストから選択します。
  5. [デバイス] でデバイス名を変更することができます。
  6. [アタッチ] を選択します。

EC2 インスタンスで EBS ボリュームをマウントする

  1. SSH を使用して EC2 インスタンスに接続します。
  2. lsblk コマンドを使用して使用可能なディスクデバイスを確認します。
    例)
    $ lsblk
  3. EBS ボリュームを新しく作成、アタッチした場合にはまだファイルシステムが無いため、マウントを行う前にファイルシステムを作成します。デバイスに関する情報は file -s コマンドを使用して確認します。ファイルシステムの作成には mkfs -t コマンドを使います。
    例)対象となるデバイスが /dev/xvdf の場合
    $ sudo file -s /dev/xvdf
    $ sudo mkfs -t xfs /dev/xvdf
  4. マウントポイントとなるディレクトリを作成します。ディレクトリの作成は mkdir コマンドを使用します。
    例)
    $ sudo mkdir /data
  5. mount コマンドでマウントポイントディレクトリに EBS ボリュームをマウントします。
    例)
    $ sudo mount /dev/xvdf /data
    マウントコマンドが正常終了したら、df コマンドや mount コマンド等を使用して期待通りのマウント状況となっているか確認しましょう。

上記までの手順で新しく作成した EBS ボリュームの使用することは可能ですが、この手順のみだとインスタンスを再起動した際には再度マウントしなおす必要が出てきてしまいます。もしシステム起動時に自動的にマウントされるよう設定する場合には、/etc/fstab ファイルにエントリを追加して対応します。

まとめ

AWS のサービスの一つ、Amazon EBS に関する特徴やマウント手順をまとめました。はじめにも書きましたが、Amazon EBS は Amazon EC2 を利用する際に必要なサービスとなります。そのため、もし Amazon EC2 の利用を検討する場合には、Amazon EBS についても確認しておいた方が良いでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です