🖊️

〇〇MBって大きい?小さい?エンジニアなら身に付けておくべきデータサイズの感覚とは

に公開
2

データの大きさ、イメージできますか?

「〇〇MBのファイル」って言われても、正直ピンとこなくないですか?

ある日、お客さんとの要件定義で「写真はどのくらいのサイズまで対応できます?」って聞かれて、固まったことがあります。(縦横の大きさではなく、容量)

「え、どのくらいって言われても...」みたいな。

「〇〇TBのストレージ」と聞くとなんとなく大きそうだと感じるし、「GB」はゲームとかで見るから馴染みある。「MBくらいのファイル」と言われてもピンとこない。私たちエンジニアでさえ、データサイズの「肌感覚」を持っている人は意外と少ないのではないでしょうか。

この記事の目標

この記事では、データサイズを身近なものに例えながら、「〇〇Bと聞いて、大きい・小さいを感覚的に判断できる」 ようになることを目指します(僕も完璧ではないので、この記事を書きながら身に付けたい)。


データサイズの基本単位をおさらい

まずは、データサイズの単位から確認していきましょう。

単位 読み方 バイト数 ざっくり言うと
B バイト 1 ちっちゃい
KB キロバイト 1,000 B(10³) まだ小さい
MB メガバイト 1,000 KB(10⁶) よくあるサイズ
GB ギガバイト 1,000 MB(10⁹) けっこう大きい
TB テラバイト 1,000 GB(10¹²) デカい
PB ペタバイト 1,000 TB(10¹⁵) ヤバい

データサイズを身近なものに例えてみる

よく広さの説明で「東京ドーム◯個分」って言うじゃないですか。あれ、わかりやすいですよね。

データサイズにも同じような基準があると便利だなと思って、考えてみました。
覚えなくて良いので、雰囲気だけ掴んでください。

文字数で考える

1バイト = 半角1文字

これを基準に考えると、イメージが湧きやすくなります(日本語とかだともうちょっと大きくなりますが、イメージとして活用ください)。

サイズ 例え イメージ
1 B 半角1文字 「A」という文字1つ
1 KB 半角1,000文字 原稿用紙2.5枚分のテキスト
1 MB 半角100万文字 文庫本1冊分のテキスト
1 GB 半角10億文字 文庫本1,000冊分のテキスト
1 TB 半角1兆文字 文庫本100万冊分(国会図書館の蔵書の約1/4)

1TBあれば国会図書館の1/4が入るって考えると、なんかすごくないですか。

時間で考える

みんな大好きNetflix。動画のストリーミングで考えるとわかりやすいです。

サイズ Netflix(標準画質)視聴時間
1 GB 約1時間
1 TB 約1,000時間(約42日間ノンストップ)
1 PB 約100万時間(約114年分)

1TBあれば42日間寝ずにNetflix見続けられます。(やばい)


身近なもののデータサイズ

僕たちの身の回りによくあるデータのサイズを調べてみました。
これも覚えなくて良いので、雰囲気だけ掴んでください。

テキスト系

対象 だいたいこのくらい
ツイート1個(140文字) 300Bくらい
メール1通 2〜5 KB
Word文書(10ページ) 50〜100 KB
電子書籍1冊 500KB〜2MB

テキストって軽いんですね。メール1通で5KBとか。100万通送っても5GBです。

画像系

対象 だいたいこのくらい
LINEスタンプ 10〜50 KB
Webサイトの画像 100〜300 KB
スマホで撮った写真 1〜5 MB ←よく使う
スマホで撮った写真(HEIC/RAW) 10〜25 MB
一眼レフのRAW 25〜80 MB

スマホ写真は1〜5MB これだけ覚えておけばOK。要件定義でよく使います。

動画系

対象 だいたいこのくらい
TikTok/リール(15秒) 5〜15 MB
YouTube 1分(1080p) 50〜150 MB
YouTube 1分(4K) 300〜500 MB
映画1本(フルHD) 3〜5 GB
映画1本(4K) 15〜30 GB

動画はさすがに重い。1分で100MBくらい見ておけば間違いなさそう。

アプリ・ゲーム系

これ だいたいこのくらい
軽いスマホアプリ 10〜50 MB
重いスマホアプリ 100MB〜2GB
macOS / Windows 10〜15 GB
最近のAAAゲーム 50〜150 GB

最近のゲームやばいですよね。100GB超えとか普通にある。


これだけ覚えよう

細かい数字は忘れていいので、これだけ覚えてください。

対象 サイズ感
📝 テキストファイル KB の世界
🖼️ 画像ファイル MB の世界(1〜10 MB)
🎬 動画ファイル GB の世界
💾 アプリケーション 数十 MB〜数 GB
🗄️ データベース(中規模) 数十 GB〜数 TB

要件定義で使える回答テンプレ

これまでの点を踏まえ、お客さんに聞かれたときの回答テンプレを置いておきます。

「写真のアップロード上限、どのくらいにします?」

「10MBでどうですか?スマホ写真なら余裕で収まります」

一眼レフのRAWも対応したいなら50〜100MBまで上げる。

「動画もアップロードしたいんですけど」

「1分くらいの動画なら100〜200MBですね。5分の動画も想定するなら500MB〜1GBくらい見ておきましょうか」

「1ユーザーあたり、どのくらいのストレージ容量必要ですか?」

  • テキスト中心 → 100MBで十分
  • 画像も保存 → 1〜5GB
  • 動画も保存 → 10〜50GB

AWSの各サービスのデータサイズ制限

実際のシステム設計では、利用するクラウドサービスの制限も把握しておく必要があります。AWSの主要サービスの制限を見てみましょう。(2026年1月時点)

ストレージ系

サービス 制限 備考
S3 1オブジェクト最大 5 TB 1回のPUTは5GBまで、それ以上はマルチパートアップロード
EBS 1ボリューム最大 64 TiB gp3/io2の場合
EFS 実質無制限(PB規模) ファイルシステム全体で制限なし

EBSとEFSはあまり使ったことがないので、間違っていればコメントください。

データベース系

サービス 制限 備考
RDS(MySQL/PostgreSQL) 最大 64 TiB インスタンスタイプによる
Aurora 最大 128 TiB 自動で容量拡張
DynamoDB 1アイテム最大 400 KB 1テーブルの容量制限なし

メッセージング・API系

サービス 制限 備考
API Gateway ペイロード最大 10 MB REST API の場合
Lambda ペイロード最大 6 MB(同期)/ 1 MB(非同期) レスポンスも同様
SQS メッセージ最大 1 MB 拡張クライアントライブラリでS3連携可能
SNS メッセージ最大 256 KB
Kinesis Data Streams 1レコード最大 1 MB

ハマりポイント(AWSの場合)

AWSサービスを使った実際の開発でハマりそうなパターンを紹介します。

その1 Lambda + API Gateway

API GatewayとLambdaを組み合わせると、Lambdaの6MB制限に引っかかるんですよね。

スマホ写真(1〜5MB)でギリギリ、ちょっと大きいとアウト。

対策: S3の署名付きURLを使って、フロントエンドからS3に直接アップロードさせる。Lambdaを経由しない。

その2 DynamoDB

DynamoDBは1レコード400KBまで。画像は基本入らないです。

「え、便利そうだからDynamoDBに画像も入れちゃお」→ オワリ

対策: 画像はS3に保存、DynamoDBにはS3のURLだけ保存する。

その3 SQS

メッセージ1個1MBまで。それでも大きいJSONや画像データを渡そうとすると「あれ、入らない」ってなるやつ。

対策: 大きいデータはS3に置いて、SQSにはS3のパス(URL)だけ渡す。Extended Client Libraryを使えば最大2GBまでいける。


ミニクイズ(考えてみてネ)

Q1. スマホ写真を1日100枚、1年間保存すると何GB必要?

答え

約150GB

  • 1枚4MBとして
  • 1日:4MB × 100 = 400MB
  • 1年:400MB × 365 = 146GB

余裕見て200GBくらいあれば安心。

Q2. DynamoDBにプロフィール画像を保存できる?

答え

(2026/1/25更新)

基本、できないと考えて良い

できない

DynamoDBは1レコード400KBまで。スマホ写真は1〜5MB。10倍以上オーバー。

分割すればなんとかなりそうですが、基本はS3に画像を置いて、URLをDynamoDBに保存しましょう。

Q3. Lambdaで画像のリサイズ処理、いける?

答え

「やり方次第」ですが、API経由は危険

Lambdaのペイロード上限は6MB。スマホ写真(1〜5MB)でギリギリ。

S3トリガーでLambdaを起動して、S3から直接読み書きするパターンなら問題なし。API Gateway経由で画像を受け取ろうとすると厳しい。


まとめ

これだけ覚えて帰ってください

  • テキスト = KB
  • 画像 = 数MB(スマホ写真で1〜5MB)
  • 動画 = 数百MB〜GB(1分で100MB)

AWSでハマるやつ

  • Lambda(同期)は6MB → 画像を直接受け取るのはキツい
  • DynamoDBは400KB → 画像は入らない
  • SQSは1MB → それでも大きいデータはS3経由で

要件定義で聞かれたら

まず「何を保存するんですか?」って聞き返しましょう。
テキストなのか、画像なのか、動画なのかで全然違うので。


データサイズの感覚は、一回身につけちゃえばずっと使えると思います。

次にお客さんから「どのくらいのサイズまでいけます?」って聞かれたら、ドヤ顔で答えてやりましょう。


参考リンク

データサイズの参考

AWSサービスの制限(公式ドキュメント)

最近のアップデート

NCDC テックブログ

Discussion

icezuki7878icezuki7878

本人確認書類アップロードするときに3MB以下にしてくださいって怒られるサイトあるけど普通に写真撮るだけでそれ超えるし、UXとしては最悪だよなーってのを思い出した。担当者のサイズ感覚の問題なのかな

fumifumi

ありますね、それ。

要件決めた当時の環境が古くて、昔はそれで足りた感覚のまま放置されてるとか、サーバー側の制限を見直すコストを嫌がってユーザーにしわ寄せがきてるとか、何かしら事情があるんでしょうね。

感覚は持つことは大事ですが、それを現代のシステムにどう落とすかは別問題として考えないといけませんね。