ログ保存に必要なストレージ容量を計算
1日のログ量と保存期間から、必要なストレージ容量が分かります。1日250GBを30日保存すると圧縮前は7,500GB、圧縮率0.4なら3,000GB、つまり3TBです。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 1日の平均ボリューム(GB)
- 250
- 保持日数
- 30
- 圧縮率
- 0.4
- 生のストレージ (GB)
- 7,500
- 推定ストレージ (GB)
- 3,000
- 推定ストレージ (TB)
- 3
- 節約したストレージ(GB)
- 4,500
ログ保存容量計算ツールは、1日当たりの平均取り込み量と保存方針から、実用的な容量の目安を算出します。毎日生成される未圧縮データの平均量、データを利用可能な状態で保つ日数、必要に応じて圧縮後の保存サイズ比率を入力してください。未圧縮容量、ギガバイトおよびテラバイト単位の推定保存容量、想定削減量が表示されるため、インフラ、セキュリティ、財務の各担当者が初期計画で共通の数値を使用できます。
実態を反映した1日平均量から始めます
通常運用を反映する期間に生成された未圧縮データの平均量を、10進表記のギガバイトで入力してください。たまたま静かな1日だけを使うと必要量を過小評価し、リリース日の急増だけを使うと恒常的な需要を過大評価します。そのため、通常は週次または月次の平均値が計画に適しています。
保存方針の対象となるアプリケーションイベント、インフラテレメトリ、監査記録、セキュリティフィード、別に保存する複製ストリームをすべて含めてください。本ツールはこの日量に保存日数を掛け、未圧縮の保存量を求めます。成長率、レプリカ、インデックス、ファイルシステムのオーバーヘッド、安全余裕は自動では加算しません。
これらはログ基盤ごとに異なるため、基準値を算出した後で追加してください。将来の増加が予想される場合は、その増加を圧縮率に含めず、予測した日量でもう一つのシナリオを計算します。取り込み量、保存期間、付加容量の前提を分けることで、容量や予算の検討時に見積もりを確認、更新、説明しやすくなります。
圧縮率の意味を統一して扱います
任意の圧縮率は保存サイズに掛ける係数であり、「3対1」のような表現ではありません。圧縮後のデータが未圧縮サイズの40パーセントになる見込みなら、0.4を入力してください。この場合、保存容量は60パーセント削減されます。
省略すると1が使われ、圧縮なしとして推定保存容量と未圧縮容量が同じになります。本ツールは圧縮を扱うため、値はゼロより大きく1以下でなければなりません。可能な限り、代表的なログの実測値に基づいて入力してください。
繰り返しの多いテキストは高い圧縮効果を得やすい一方、暗号化された値、スタックトレース、識別子、すでに圧縮済みの内容では効果が低い場合があります。また、利用する基盤がインデックス作成の前後どちらで圧縮率を示すかも確認してください。インデックスとメタデータによって物理使用量が大きく増えることがあります。
表示される削減量は、未圧縮容量から圧縮後容量を引いた値です。これにより、見積もりのどの部分が圧縮の前提に依存するかを明確に確認できます。
基準値を導入可能な容量計画にします
計算結果は、選択した保存期間に対するデータ保存量の基準値としてお使いください。ギガバイト表示は小規模環境や日次取り込み量との直接比較に便利で、10進表記のテラバイト表示は大規模な見積もりを検討しやすくします。
本番環境のサイジングでは通常、レプリカ、検索用インデックス、メタデータ、一時的なマージ領域、スナップショット、災害復旧用コピー、急増に備えた余裕を別途見込みます。前提を明確に保つため、これらの基盤固有の倍率は計算後に個別に適用してください。
たとえば複製された検索クラスターでは、論理的な保存データ量が同じでも、基準値の数倍の物理容量が必要になる場合があります。支出を決定する前に複数回計算し、保存期間の短縮、フィルタリングの改善、実測した圧縮効果を比較してください。保存期間には正の整数の日数が必要で、ゼロと負の値は受け付けません。
取り込み傾向や規則が変わったら再計算し、最終的な調達は基盤の実測指標で確認してください。
活用例
新しいログクラスターの規模を決める
レプリカ、インデックス、スナップショット、運用余裕を加える前に、論理保存量の基準を算出します。
保存方針を比較する
複数の保存日数を試し、方針変更が容量とインフラ予算に与える影響を確認します。
圧縮の前提を評価する
実測した保存サイズ比率を比較し、同じ未圧縮ログで節約できる容量を定量化します。
よくある質問
圧縮率0.4は何を意味しますか?
保存されたログが未圧縮サイズの40%を占め、推定で60%の容量を削減できることを意味します。
圧縮率を省略するとどうなりますか?
1が使用され、推定容量は1日当たりの未圧縮量に保存日数を掛けた値になります。
レプリカとインデックスも含まれますか?
いいえ。 レプリカ、インデックス、メタデータ、スナップショット、基盤固有の余裕は別に追加してください。
1日のログ量には何を入力すればよいですか?
通常期の平均的な圧縮前の量を、10進のGBで入力します。週や月の平均が適しています。静かな1日だと少なく、公開日の急増だと多く見積もりすぎます。監査やセキュリティなど、保存対象のすべての発生源を含めてください。
現実的な圧縮率はどう決めればよいですか?
できるだけ代表的なログで実測してください。繰り返しの多いテキストはよく縮みますが、暗号化された値やスタックトレース、識別子、圧縮済みのデータはあまり縮みません。他から借りた値では見積もりがずれることがあります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/log-retention-storage-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"average_daily_volume_gb":250,"retention_days":30}'const res = await fetch("https://api.kit.forhosting.com/dev/log-retention-storage-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"average_daily_volume_gb": 250,
"retention_days": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/log-retention-storage-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"average_daily_volume_gb": 250,
"retention_days": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/log-retention-storage-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"average_daily_volume_gb":250,"retention_days":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"average_daily_volume_gb":250,"retention_days":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/log-retention-storage-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"average_daily_volume_gb": 250,
"retention_days": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.log_retention_storage_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な質問
料金はいくらですか?
APIリクエスト1回当たり$0.002です。このページではブラウザー上で無料でも実行できます。
保存期間にゼロや負の値を指定できますか?
いいえ。正の整数の日数が必要です。無効な値の場合はinvalid_inputエラーを返します。