Instance Store(Ephemeral Disk)を後から使用する
はじめに
インスタンスストアについてです。 インスタンスストアを使用していなかったけど後から使いたいと思う方もいるかと思います。
今回はインスタンスストアの概要と後から使用する方法をご紹介します。
概要
インスタンスストアは、インスタンスで使用するためのブロックレベルの一時ストレージを提供します。
インスタンスストアは無料で使用でき、任意のファイルシステムが利用可能、 ローカルディスクのためネットワークの影響も受けにくいという利点があります。
注意点としてインスタンスストアのデータはインスタンスを停止(stop)した際にデータは消えてしまいます。 スナップショット機能やEBSのように別のインスタンスに付け替えはできません。
インスタンスストアを使うべきなのは?([AWSマイスターシリーズ] Instance Store & Elastic Block Storeより)
インスタンスストアをSWAP領域として使う過去のエントリーがありますので合わせてご紹介します。
Amazon EC2(Linux)のswap領域ベストプラクティス | Developers.IO Amazon EC2(Linux)のswap自動作成を行うRPMパッケージ ec2-swap を作ってみた | Developers.IO
以下が現時点でのインスタンスタイプと、各インスタンスタイプで使用可能な instance store-backed ボリュームのサイズおよび数量です。
インスタンスタイプで使用可能なインスタンスストア
インスタンスタイプ | インスタンスストアボリューム |
c1.medium | 1 x 350 GB |
c1.xlarge | 4 x 420 GB(1680 GB) |
c3.large | 2 x 16 GB SSD(32 GB) |
c3.xlarge | 2 x 40 GB SSD(80 GB) |
c3.2xlarge | 2 x 80 GB SSD(160 GB) |
c3.4xlarge | 2 x 160 GB SSD(320 GB) |
c3.8xlarge | 2 x 320 GB SSD(640 GB) |
c4.large | なし(Amazon EBS ボリュームを使用) |
c4.xlarge | なし(Amazon EBS ボリュームを使用) |
c4.2xlarge | なし(Amazon EBS ボリュームを使用) |
c4.4xlarge | なし(Amazon EBS ボリュームを使用) |
c4.8xlarge | なし(Amazon EBS ボリュームを使用) |
cc2.8xlarge | 4 x 840 GB(3360 GB) |
cg1.4xlarge | 2 x 840 GB(1680 GB) |
cr1.8xlarge | 2 x 120 GB SSD(240 GB) |
d2.xlarge | 3 x 2000 GB(6 TB) |
d2.2xlarge | 6 x 2000 GB(12 TB) |
d2.4xlarge | 12 x 2000 GB(24 TB) |
d2.8xlarge | 24 x 2000 GB(48 TB) |
g2.2xlarge | 1 x 60 GB SSD |
g2.8xlarge | 2 x 120 GB SSD |
hi1.4xlarge | 2 x 1024 GB SSD(2048 GB) |
hs1.8xlarge | 24 x 2000 GB(48 TB) |
i2.xlarge | 1 x 800 GB SSD、TRIM をサポート |
i2.2xlarge | 2 x 800 GB SSD(1600 GB)、TRIM をサポート |
i2.4xlarge | 4 x 800 GB SSD(3200 GB)、TRIM をサポート |
i2.8xlarge | 8 x 800 GB SSD(6400 GB)、TRIM をサポート |
m1.small | 1 x 160 GB |
m1.medium | 1 x 410 GB |
m1.large | 2 x 420 GB(840 GB) |
m1.xlarge | 4 x 420 GB(1680 GB) |
m2.xlarge | 1 x 420 GB |
m2.2xlarge | 1 x 850 GB |
m2.4xlarge | 2 x 840 GB(1680 GB) |
m3.medium | 1 x 4 GB SSD |
m3.large | 1 x 32 GB SSD |
m3.xlarge | 2 x 40 GB SSD(80 GB) |
m3.2xlarge | 2 x 80 GB SSD(160 GB) |
r3.large | 1 x 32 GB SSD、TRIM をサポート |
r3.xlarge | 1 x 80 GB SSD、TRIM をサポート |
r3.2xlarge | 1 x 160 GB SSD、TRIM をサポート |
r3.4xlarge | 1 x 320 GB SSD、TRIM をサポート |
r3.8xlarge | 2 x 320 GB SSD(640 GB)、TRIM をサポート |
t1.micro | なし(Amazon EBS ボリュームを使用) |
t2.micro | なし(Amazon EBS ボリュームを使用) |
t2.small | なし(Amazon EBS ボリュームを使用) |
t2.medium | なし(Amazon EBS ボリュームを使用) |
※c4、t1、t2インスタンスタイプではインスタンスストアは使用不可
インスタンスストア追加方法
インスタンスストアの追加方法ですが、下記注意点がありますので インスタンス起動の際は使用の有無を判断してから起動する必要があります。
- インスタンス起動後にインスタンスストアを追加できない
- Change Instance Typeでは変更(追加)ができない
- Instance Storeのサイズはインスタンスタイプによって決まっているので変更はできない
- 容量が足りない場合は複数のインスタンスストアをOSからストライプする
インスタンス起動時に通常に追加する場合は「Step 4: Add Storage」にて追加します。
しかし、EC2インスタンスはAMIをとり、AMIから起動することが可能です。 そのため、後からインスタンスストアを使用したいと思った場合でも追加が可能です。
AMIからインスタンス作成時に「Add Storage」画面にてインスタンスストアを追加すればいいのです。
インスタンスストアを後から追加
ここにインスタンスストアを使用していないEC2インスタンスがあります。
起動中のEC2インスタンスはインスタンスストアをマネジメントコンソールから確認することはできませんので インスタンスにログインして確認します。
$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ ami root
※ephemeral*が表示されてないことがわかります。
AMIを作成する
対象インスタンスを選択してImage→Create Image
作成したAMIからインスタンスを起動
AMIを選択してLaunchします。Step 4: Add Storageにてインスタンスストアを追加します。
あとは通常どおりLaunchしてEIPを使用していた場合はEIPの付け替えを実施すれば完了です。
インスタンスストアがマッピングされているか確認
$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ ami ephemeral0 ★ root
マッピングされていますね。
以上で後からインスタンスストアを追加する手順は完了です。
おまけ
起動中のEC2インスタンスはインスタンスストアをマネジメントコンソールから確認することができませんが AMIからは確認することが可能です。
先ほど起動したEC2インスタンスのAMIを作成してAMIsから確認してみましょう。
Create ImageからAMIを作成
※この時インスタンスストアをAMIにマッピングできますが、データは保持されません。
AMIsから対象のAMIを確認する
- インスタンスストアがマッピングされていないAMI
- インスタンスストアがマッピングされているAMI
まとめ
無料で使用できるインスタンスストアについて紹介しました。 使用せず、起動してしまった場合にもAMIからLaunchすることで使用可能となりますので 是非、使用してみてください。
参考資料
[AWSマイスターシリーズ] Instance Store & Elastic Block Store Amazon EC2 インスタンスストア