All Articles

ブロックって何だか知ってた?

きっかけ

Amazon Elastic Block Store 略してEBSについて説明を受けることがあったのですが、 思うところがあり、まとめてみました。

EBSって何?1行でまとめて

ざっくり簡単に言うと、EC2用追加ディスクです。

ちょっとだけ細かいことをいうと、ブロックストレージ(ブロックデバイス)を提供するものです。1

Block ってなにさ

ブロックストレージとはブロックデバイスの1つです。ブロックデバイスというのはブロックという単位で読み書きをするデバイスのことです。 ブロックデバイスには他にもランダムアクセス可能、バッファの利用可能という特徴があって 極論を言うとファイルシステムを利用できるデバイスと考えて頂ければと思います。2

ここまで来れば、EBSって言葉は「EC2向けに用意された追加ディスク」を格好よく表現した感じだってわかってきます。恐れることはないです。

あれれ?なんで追加ディスクが必要なの?

(別にEBSは必須ではありません。というのは置くとして)EC2 は AMI から生成されます。OS が動作するために必要なブロックデバイスはこの段階で用意されています。

このブロックデバイスは EC2 のライフサイクルと同じで、EC2の終了/削除=ディスクの終了/削除となります。EC2上にデータを保存しないシステムであればよいのですが 既存のシステムはそんなこともないのでデータの保存場所に困るわけです。そこでEBSという話の筋書きになります。

EC2上にデータを残したいと考えているなら、Amazon EFS とどちらか、用途・性能・コストを考えてを選択するのがお手軽な解決方法になるみたいですね。

おまけ: ファイルシステムのブロックサイズ

Linuxで多く使用されているEXT4ファイルシステムの場合はブロックのサイズはデフォルトで4096KBになっています。 EXT系ファイルシステムでブロックサイズを確認する方法は以下の通りです。XFSの場合はxfs_infoを実行するとよいです。

tune2fs /dev/sda1 -l
tune2fs 1.46.2 (28-Feb-2021)
()
Block size:               4096

おまけ: EBSの謎

「Amazon」とついているサービスなので独立したサービスという位置付けですが、EBS は EC2 にしかアタッチできないですよね。 ベトベトに依存しているサービスにも見えます。なんでAWS EBSではないんだろう。謎。

記事を書く前でトラブル。

内容をまとめるために手を動かそうとして、gatsby develop したら唐突のエラー。大して js を理解していないので cache と node_modules 消して再インストールすれば何とかなると思ってましたが大苦戦。 同じタイミングで plugin の実装が変わってパラメータにnullが許されない制約がついたみたいで、 原因と対処がとっちらかった模様。


  1. というと、ブロックストレージ(ブロックデバイス)ってなんだよ?ってなるはず。
  2. ブロック単位ではなく1文字1文字を先頭から順番に扱っていくキャラクターデバイスというのもありますが、ここでは割愛。

Published Sep 7, 2023

わたしが作成したサイト・サービスをまとめています。最近は割と雑記も多いです。なお、当サイトに記載している情報などは組織・団体の公式見解とは無関係です。