Umfassender Vergleich von Upload-Limits, Preisen und Merkmalen von 10 Cloud-Storage-Diensten | S3/GCS/Azure/R2
Bei der Auswahl eines Cloud-Speicherdienstes sind die Obergrenze für einzelne Uploads, Unterstützung für mehrteilige Uploads, kostenlose Stufe, Preis und Egress-Kosten (Übertragung) wichtige Vergleichspunkte. Obwohl AWS S3 der De-facto-Industriestandard ist, gibt es je nach Kosten, Edge-Lieferung und spezifischen Anwendungsfällen besser geeignete Optionen. Dieser Artikel fasst die Spezifikationen der 10 wichtigsten Dienste und Empfehlungen nach Anwendungsfall zusammen.
Vergleichstabelle: Limit für einzelnen Upload, Limit für mehrteilige Uploads, kostenlose Stufe
| Dienst | Einzelnes Limit | Multipart-Grenzwert | Kostenloser Plan | Monatliche Schätzung (100GB) |
|---|---|---|---|---|
| AWS S3 | 5 GB | 5 TB | 5GB · 2.000 Anfragen/Monat (12 Monate) | $2.30〜 |
| Google Cloud Storage | 5 TB (einzelnes Objekt) | 5 TB | 5GB (Standard, US-Osten) | $2.00〜 |
| Azure Blob Storage | Block: 4.75TB, Seite: 8TB | 195GB/Block × 50.000 Blöcke | 5GB für 12 Monate (LRS) | $1.84〜 |
| Cloudflare R2 | 5 GB | 5 TB | 10GB/Monat · 1 Million Operationen/Monat (dauerhaft) | $1,50 (kostenloses Egress) |
| Backblaze B2 | 5 GB | 10 TB | 10GB (dauerhaft) | $0.60〜 |
| DigitalOcean Spaces | 5 GB | 5 TB | 250GB + 1TB Übertragung/Monat ($5~) | $5 (bis 250GB enthalten) |
| Wasabi | 1 TB | 1 TB | Keine (nur Testversion) | $0,68 (kostenloses Egress) |
| MinIO | 5 TB (implementierungsabhängig) | 5 TB | Selbst-gehostet (unbegrenzt) | Nur Infrastrukturkosten |
| Firebase Storage | Praktisch unbegrenzt (mit GCS) | GCS-Konformität | 5GB (Spark-Plan) | $0.026/GB〜 |
| Supabase Storage | 50MB(Free)/ 50GB(Pro) | Unterstützt in Pro oder höher | 1GB (kostenloses Abonnement) | $0.021/GB(Pro) |
※Die Preise sind ein Richtwert ab April 2026. Sie variieren je nach Region, Speicherklasse und Nutzungsvolumen. Die meisten Ausgangskosten (Datentransfer) sind nicht in der obigen Tabelle enthalten.
Merkmale der einzelnen Dienste und Auswahlkriterien
AWS S3
De-facto-Standard für Cloud-Speicher. Viele Dienste implementieren die S3-kompatible API, und das Ökosystem von Bibliotheken und Tools ist am umfassendsten. Multipart-Upload kann mit <code>aws-sdk</code> automatisiert werden, und Sie können Objekte von bis zu 5 TB mit einer minimalen Chunk-Größe von 5 MB und maximal 10.000 Teilen hochladen. Die Integration mit CloudFront ermöglicht auch einfaches Edge-Delivery. Die Egress-Kosten sind jedoch hoch ($0,09/GB aufwärts), und für Services mit großen Datenübertragungen ist der Kostenaufwand ein Problem.
Google Cloud Storage(GCS)
Mit einem Limit von 5TB pro Objekt ist es für Anwendungsfälle geeignet, bei denen Sie große Dateien als ein einzelnes Objekt verwalten möchten. Seine Stärke liegt in der nahtlosen Integration mit GCP-Diensten wie BigQuery und Vertex AI, und es ist die erste Wahl beim Aufbau von Datenanalyse-Pipelines. Die Transferkosten sind tendenziell etwas geringer als S3.
Azure Blob Storage
Hohe Kompatibilität mit dem Microsoft-Ökosystem (Office 365, Active Directory, Azure Functions usw.) mit umfassenden Enterprise-Authentifizierungs- und Compliance-Funktionen. Block BLOB unterstützt Objekte bis zu 4.75TB, und Page BLOB (für virtuelle Festplatten) unterstützt bis zu 8TB. Optimieren Sie die Kosten mit Hot-, Cool- und Archive-Tiers.
Cloudflare R2
Das Hauptmerkmal ist, dass die Egress-Kosten kostenlos sind. Da die S3-kompatible API unterstützt wird, können Sie bestehende S3-Clients praktisch unverändert verwenden. Die Integration mit Workers (Edge Computing) ist leistungsstark und ermöglicht eine Architektur, die Storage direkt am Edge manipuliert. Mit einer dauerhaften kostenlosen Stufe von 10GB/Monat ist es ideal als Ausgangspunkt für persönliche Entwicklung und kleine Services.
Backblaze B2
Mit Preisen in der Klasse der günstigsten der Branche ($0,006/GB/Monat) ist es für kostenbewusste Backup- und Mediaarchivanwendungen geeignet. Die Kombination mit der 「Bandwidth Alliance」 von Cloudflare, die den Egress von B2 zu Cloudflare kostenlos macht, ist beliebt. Es bietet eine S3-kompatible API, was die Migration erleichtert.
DigitalOcean Spaces
Ab $5/Monat bietet es einen Pauschalplan mit 250GB Speicher + 1TB Bandbreite. Der Vorteil ist die einfachere Budgetvorhersage für kleine Dienste. CDN ist standardmäßig enthalten und leicht zu konfigurieren. Transfers sind kostenlos, wenn sie in der gleichen Region wie DigitalOcean Droplets (virtuelle Maschinen) verwendet werden.
Wasabi
S3-kompatibel mit kostenlosem Egress (bei direktem Download von Wasabi), wirtschaftliche Speichergebühren ($0.0068/GB/Monat). Beachten Sie jedoch die Mindestaufbewahrungsregel, die 90 Tage Gebühren auch für Daten berechnet, die innerhalb von 90 Tagen nach Speicherung gelöscht werden. Geeignet für Backup und Langzeitspeicherung von Cold Data.
MinIO
Open-Source-S3-kompatible Objektspeicherung, die lokal gehostet oder in einer privaten Cloud selbst gehostet werden kann. Bietet hohe Kompatibilität mit Kubernetes und offizielle Helm-Charts. Wird für Entwicklungs- und Testzwecke in regulierten Branchen und On-Premises-Umgebungen verwendet, in denen Daten nicht in die Cloud ausgelagert werden sollen.
Firebase Storage
Es verwendet intern GCS, und direkte Uploads von mobilen/Web-Apps mit Firebase SDK können leicht implementiert werden. Seine Stärke ist die granulare Zugriffskontrolle (Security Rules) in Kombination mit Firebase Authentication. Im kostenlosen Spark-Plan kann die Obergrenze für einzelne Dateien in einigen Fällen praktisch niedrig eingestellt sein.
Supabase Storage
Speicherfunktion von Supabase, einem BaaS (Backend as a Service) basierend auf PostgreSQL. Seine besondere Stärke ist die RLS-basierte (Row Level Security) Zugriffskontrolle in Integration mit Supabase Auth. Der kostenlose Plan hat eine niedrige Dateigrößenbeschränkung (50MB), daher ist der Pro-Plan (50GB/Datei) oder höher für große Dateien erforderlich.
Empfehlungen nach Verwendung
| Verwendung | Erste Wahl | Grund |
|---|---|---|
| Ausgangspunkt für kleine SaaS | Cloudflare R2 | Kostenloses Egress, permanentes kostenlose Tier, S3-kompatibel |
| Großes Medienarchiv | Backblaze B2 + Cloudflare | Kombination aus günstigstem Speicher + kostenlosem Egress |
| Edge-Bereitstellung und globale Bereitstellung | Cloudflare R2 / AWS S3 + CloudFront | CDN-Integration・Bereitstellung mit niedriger Latenz |
| Kostenpriorisierung | Wasabi / Backblaze B2 | Speichergebühren in der Klasse der günstigsten der Branche |
| Enterprise-Compliance | AWS S3 / Azure Blob | Umfangreiche Authentifizierungs-, Verschlüsselungs- und Audit-Funktionen |
| Direkter Upload von Mobile Apps | Firebase Storage / Supabase Storage | Einfache Integration von SDK und Authentifizierung |
| On-Premise Private Cloud | MinIO | S3-kompatibel, selbstgehostet, OSS |
| Integration mit GCP-Services | Google Cloud Storage | Nahtlose Integration mit BigQuery und Vertex AI |
Was ist Multipart-Upload
Multipart Upload ist der Mechanismus, der große Dateien in kleine Teile aufteilt und sie parallel hochlädt. Bei S3 wird es für Dateien über 100MB empfohlen und ist für Dateien über 5GB erforderlich. Die wichtigsten Vorteile sind wie folgt.
- Durchsatzverbesserung durch parallele Uploads
- Bei Netzwerkunterbrechung können nur fehlgeschlagene Teile erneut gesendet werden (wiederaufnehmbar)
- Umgehen Sie das 5GB-Limit einer einzelnen Anfrage und senden Sie bis zu 5TB
// AWS SDK v3 でのマルチパートアップロード例
import { S3Client, CreateMultipartUploadCommand,
UploadPartCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3';
const s3 = new S3Client({ region: 'ap-northeast-1' });
async function multipartUpload(bucket, key, file) {
// アップロードの開始
const { UploadId } = await s3.send(new CreateMultipartUploadCommand({
Bucket: bucket, Key: key,
}));
const chunkSize = 10 * 1024 * 1024; // 10MB
const parts = [];
for (let i = 0; i * chunkSize < file.size; i++) {
const chunk = file.slice(i * chunkSize, (i + 1) * chunkSize);
const { ETag } = await s3.send(new UploadPartCommand({
Bucket: bucket, Key: key,
UploadId, PartNumber: i + 1,
Body: chunk,
}));
parts.push({ ETag, PartNumber: i + 1 });
}
// パーツの結合(完了)
await s3.send(new CompleteMultipartUploadCommand({
Bucket: bucket, Key: key,
UploadId, MultipartUpload: { Parts: parts },
}));
}
Testdatei zur Verwendung in diesem Artikel (kostenlos)
- → <a href="/ja/files/threshold/" class="text-primary-600 dark:text-primary-400 hover:underline">Liste von Grenzwert-Testdateien</a> — Uploads nahe den Grenzen verschiedener Cloud-Speicher testen
- → <a href="/ja/files/images/png/" class="text-primary-600 dark:text-primary-400 hover:underline">Liste der PNG-Testbilder</a> — Überprüfen des Speicherverhaltens mit Bildern verschiedener Größen
Verwandte Artikel
- → <a href="/ja/blog/s3-upload-limit/" class="text-primary-600 dark:text-primary-400 hover:underline">Zusammenfassung der Datei-Upload-Limits von AWS S3 und CloudFront</a>
- → <a href="/ja/blog/how-to-test-upload-limit/" class="text-primary-600 dark:text-primary-400 hover:underline">So testen Sie das Datei-Upload-Limit korrekt</a>
- → <a href="/ja/blog/mb-vs-mib-file-size/" class="text-primary-600 dark:text-primary-400 hover:underline">Unterschied zwischen MB und MiB | Korrektes Verständnis von Dateigröße-Einheiten</a>