この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、菊池です。
本日、Amazon Lightsailのアップデートにより、Lightsailインスタンスに追加ストレージを作成、アタッチ可能になりました。
- Introducing additional block storage for Amazon Lightsail
- Lightsail block storage | Amaozn Lightsail
これまで、Lightsailで利用可能なストレージは、インスタンスプランで決定されるデフォルトのストレージのみでした。そのため、ストレージが不足した場合にはインスタンスをスケールアップするしかなく、余計にコストが発生してしまいました。今回のアップデートにより、ストレージを柔軟に追加することが可能になります。
Lightsail ブロックストレージ
追加可能なストレージは以下のような仕様となっています。
- Availability Zone内で複製することで障害から保護、99.99%の可用性を目標に設計
- 低遅延のSSDストレージ
- 最大16TBのストレージをインスタンスあたり15までアタッチ可能
- ディスクおよびスナップショットは自動で暗号化
- 月額 $ 0.10/GB
EBSの汎用SSD(GP2)に近い印象ですね。
作成してみる
実際にストレージを作成してみました。
コンソールから
Lighsailのコンソールから試してみます。
コンソールを開いたところ、言語選択が可能になっていました!せっかくなので、日本語表示で作業します。
ホーム画面から[ストレージ]を選択します。
[ディスクの作成]を選択します。
新しいディスクの作成画面になります。ディスクの場所(リージョン/AZ)と容量の選択です。
容量は、画面の選択肢から選ぶ他、[カスタム]から任意のサイズを指定可能です。サイズによってかかるコストも表示してくれます。
名前を指定して、[作成]します。
この段階では、まだ作成されただけでインスタンスにアタッチされていません。起動中のインスタンスを指定してアタッチします。
インスタンスとパスを指定可能です。
アタッチできました。
OSから利用するためには、ファイルシステムの作成とマウントが必要です。インスタンスに接続して作業します。今回はAmazon Linuxのイメージで作業します。
デバイスが認識されているか確認します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 20G 0 disk
└─xvda1 202:1 0 20G 0 part /
xvdf 202:80 0 16G 0 disk
ファイルシステムを作成しましょう。ext4を指定しています。
$ sudo mkfs -t ext4 /dev/xvdf
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 4194304 4k blocks and 1048576 inodes
Filesystem UUID: 966eace7-9938-46ad-be08-5228cfca8935
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inde tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
マウントポイントを作成します。
$ sudo mkdir /data
マウントして、ストレージが利用可能になりました。
$ sudo mount /dev/xvdf /data
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 236M 60K 236M 1% /dev
tmpfs 245M 0 245M 0% /dev/shm
/dev/xvda1 20G 1019M 19G 6% /
/dev/xvdf 16G 44M 15G 1% /data
このままでは、再起動時にマウントが外れてしまいますので、/etc/fstab
に追記します。
$ cat /etc/fstab
#
LABEL=/ / ext4 defaults,noatime 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/xvdf /data ext4 defaults,nofail 0 2
なお、作成したストレージはスナップショットの作成も可能です。
AWS CLIで実行する
続いて、AWS CLIでもやってみます。AWS CLIを最新バージョンにアップデートして試しましょう。
create-diskでストレージを作成します。オプションで名前とAZ、容量を指定します。
$ aws lightsail create-disk --disk-name Disk-Test-100 --availability-zone ap-northeast-1a --size-in-gb 100
{
"operations": [
{
"status": "Started",
"resourceType": "Disk",
"isTerminal": false,
"statusChangedAt": 1510730670.932,
"location": {
"availabilityZone": "ap-northeast-1a",
"regionName": "ap-northeast-1"
},
"operationType": "CreateDisk",
"resourceName": "Disk-Test-100",
"id": "994a82c6-9755-47be-8c58-xxxxxxxxxxxx",
"createdAt": 1510730670.582
}
]
}
get-disk
で作成したディスクを確認できます。今回は100GBで作成しましたが、"iops": 300
というパラメータが見えますね。
$ aws lightsail get-disk --disk-name Disk-Test-100
{
"disk": {
"name": "Disk-Test-100",
"sizeInGb": 100,
"resourceType": "Disk",
"supportCode": "xxxxxxxxxxxx/vol-xxxxxxxxxxxxxxxx",
"attachmentState": "detached",
"state": "available",
"iops": 300,
"arn": "arn:aws:lightsail:ap-northeast-1:xxxxxxxxxxxx:Disk/392d041d-50e5-448b-ada7-51b2f4b2f89a",
"isAttached": false,
"isSystemDisk": false,
"createdAt": 1510730670.582,
"location": {
"availabilityZone": "ap-northeast-1a",
"regionName": "ap-northeast-1"
}
}
}
インスタンスにattach-disk
でアタッチします。
$ aws lightsail attach-disk --disk-name Disk-Test-100 --instance-name Amazon_Linux-512MB-Tokyo-1 --disk-path /dev/xvdg
{
"operations": [
{
"status": "Started",
"resourceType": "Disk",
"isTerminal": false,
"operationDetails": "Amazon_Linux-512MB-Tokyo-1",
"statusChangedAt": 1510732770.554,
"location": {
"availabilityZone": "ap-northeast-1a",
"regionName": "ap-northeast-1"
},
"operationType": "AttachDisk",
"resourceName": "Disk-Test-100",
"id": "7279beb0-4f1a-4d45-8e2d-xxxxxxxxxxxx",
"createdAt": 1510732770.554
},
{
"status": "Started",
"resourceType": "Instance",
"isTerminal": false,
"operationDetails": "Disk-Test-100",
"statusChangedAt": 1510732770.559,
"location": {
"availabilityZone": "ap-northeast-1a",
"regionName": "ap-northeast-1"
},
"operationType": "AttachDisk",
"resourceName": "Amazon_Linux-512MB-Tokyo-1",
"id": "934bc8ec-1887-4c7f-b9ea-xxxxxxxxxxxx",
"createdAt": 1510732770.559
}
]
}
再度、get-disk
をみると、アタッチできていることが確認できます。
$ aws lightsail get-disk --disk-name Disk-Test-100
{
"disk": {
"name": "Disk-Test-100",
"sizeInGb": 100,
"resourceType": "Disk",
"supportCode": "xxxxxxxxxxxx/vol-xxxxxxxxxxxxxxxx",
"attachmentState": "attached",
"attachedTo": "Amazon_Linux-512MB-Tokyo-1",
"state": "in-use",
"iops": 300,
"arn": "arn:aws:lightsail:ap-northeast-1:xxxxxxxxxxxx:Disk/392d041d-50e5-448b-ada7-xxxxxxxxxxxx",
"isAttached": true,
"path": "/dev/xvdg",
"isSystemDisk": false,
"createdAt": 1510730670.582,
"location": {
"availabilityZone": "ap-northeast-1a",
"regionName": "ap-northeast-1"
}
}
}
まとめ
以上です。
シンプルさが最大の特徴であるAmazon Lightsailですが、ストレージに対しては柔軟な拡張が可能になりました。CPU/メモリは低スペックで問題ないけども大きなデータを扱いたい、というケースではうれしいアップデートではないでしょうか。