EC2のストレージの勉強
今回はEC2ストレージの勉強をしたいと思います。
教材は以下を利用。
ストレージ - Amazon Elastic Compute Cloud
ストレージのオプション
次の3つのオプションを利用可能。
- Amazon Elastic Block Store(Amazon EBS)
- Amazon EC2 インスタンスストア
- Amazon Simple Storage Service(Amazon S3)
図でまとまっています。
Amazon EBSとは
ブロックレベルのストレージで、同一のアベイラビリティゾーンであればどのインスタンスにもアタッチできます。同時に複数のインスタンスからはアタッチできませんが、デタッチしたEBSストレージを別のインスタンスにアタッチすることができます。頻繁な更新データを保持するのに最適です。
EBSの可用性は?
以下のURLの情報によると、データは同一アベイラビリティゾーン内に自動でレプリケーションされ99.999% の可用性を維持する設計となっているようです。
製品の詳細 - Amazon Elastic Block Store(EBS) | AWS
EBSはスナップショットをS3に保持する機能があります。またS3に保存したスナップショットからEBSボリュームを作成して別のインスタンスにアタッチすることもできるようです。データをもっとかっちりと守りたい場合は、定期的にスナップショットを取得してS3に保存しておいた方が良いと思います。ちなみにS3の耐久性と可用性の情報は以下のURLに記載があります。
1 年でオブジェクトの 99.999999999% の耐久性と最大 99.99% の可用性を提供するよう設計されています。
S3だとデータの耐久性は非常に高くデータがロストすることはほぼないけど、可用性はEBSより低いので、データにアクセスできない時間が長いということでしょうね。
インスタンスストアとは
これは単純にホストコンピュータ上の物理的なディスクのことです。これをインスタンスストアと呼んでいます。重要なのはインスタンス用のブロックレベルの"一時ストレージ"を提供するということです。つまり、インスタンスを停止または終了すると消えてしまいます。
じゃあ、リブートはどうなんだろうと思ったら、リブートではインスタンスストアボリューム上のデータはすべて保持されるようです。
インスタンスの再起動 - Amazon Elastic Compute Cloud
インスタンスを再起動すると、インスタンスは同じホスト上で保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およびインスタンスストアボリューム上のすべてのデータは保持されます。
EC2ルートデバイスボリューム
EC2インスタンスは、ルートデバイスボリュームに格納されているイメージを利用してインスタンスがブートされます。ルートデバイスボリュームとして利用できるのが、インスタンスストアかEBSとなります。
この2つの違いにより、AMIのタイプとして2つあります。
- 「Amazon EC2 インスタンスストア backed」のAMI
- Amazon EBS backed」の AMI
- Amazon EBS ボリュームがアタッチされます
起動が高速で永続的ストレージを利用しているため、推奨されるのはAmazon EBS Backedなインスタンスです。以下のURLに違いがまとまっています。
AMI タイプ - Amazon Elastic Compute Cloud
ルートデバイスボリュームの詳細は、以下のURLを参照しましょう。
永続的ルートデバイスボリュームへの変更
EBS Backedでもデフォルトではインスタンス終了時に削除されてしまうようです。これを永続的ルートデバイスボリュームに変更できます。
Amazon EC2 ルートデバイスボリューム - Amazon Elastic Compute Cloud
デフォルトでは、Amazon EBS-backed AMI のルートデバイスボリュームは、インスタンスを終了すると削除されます。デフォルトの動作を変更するには、ブロックデバイスマッピングを使用して、DeleteOnTermination 属性を false に設定します。
スポットインスタンス作成ウィザードでは、EBSボリュームの設定の"削除"チェックボックスをオフにすると永続的ルートボリュームに変更できるようです。