AWS vs Azure vs GCP

Data Lake Storage Compared: S3 vs ADLS vs Google Cloud Storage

Selecting the right foundation for your enterprise data lakehouse is one of the most consequential cloud architecture decisions you will make. While compute engines like Databricks, Snowflake, Apache

Published 10/24/2026 · Izan Technologies

Want this built for your team?

Senior engineers, your cloud, your IP.

Selecting the right foundation for your enterprise data lakehouse is one of the most consequential cloud architecture decisions you will make. While compute engines like Databricks, Snowflake, Apache Spark, and Trino often dominate architectural discussions, the underlying object storage layer dictates your ingest latency, metadata scalability, query performance, and total cost of ownership.

When evaluating aws vs azure vs gcp for analytics workloads, the competition centers on three dominant services: Amazon Simple Storage Service (Amazon S3), Azure Data Lake Storage Gen2 (ADLS Gen2), and Google Cloud Storage (GCS). Having these options for lake storage compared side-by-side reveals significant differences in metadata management, filesystem hierarchies, cross-region replication, and engine interoperability.

Here is an architectural comparison of modern data lake storage across AWS, Azure, and Google Cloud, detailing how each platform performs under enterprise production conditions.


Namespace Architecture: Hierarchical vs. Flat Object Stores

The structural design of an object store dramatically influences how query engines execute table operations, partition pruning, and file writes.

Amazon S3: Flat Namespace with Prefix Scaling

Amazon S3 is fundamentally an immutable, key-value object store with a flat architecture. Directory paths (e.g., s3://bucket/year=2024/month=05/data.parquet) are string prefixes, not genuine operating system folders.

Historically, flat namespaces struggled with directory renames and atomic file moves. However, because modern open table formats like Apache Iceberg and Delta Lake rely on explicit file manifests rather than directory structures, S3’s flat architecture is no longer a major bottleneck for atomic commits.

S3 scales performance horizontally by prefix. Each unique prefix automatically scales to handle:

  • 3,500 PUT/COPY/POST/DELETE requests per second
  • 5,500 GET/HEAD requests per second

By distributing analytical partitions across randomized or distinct prefixes, S3 provides virtually limitless aggregate read and write throughput without manual pre-warming.

ADLS Gen2: Native Hierarchical Namespace (HNS)

ADLS Gen2 diverges from pure object storage by layering a Hierarchical Namespace (HNS) over Azure Blob storage. HNS organizes files into a true directory hierarchy with directory entries maintained in metadata.

This provides substantial advantages for specific operations:

  • Atomic Directory Renames: Renaming a directory with 100,000 files in ADLS is a fast metadata operation ($O(1)$ complexity). On S3 or GCS, this requires copying every object and deleting the source ($O(N)$ operations).
  • POSIX-Compliant Access Control Lists: ADLS maps access down to individual directory subtrees, simplifying role-based access control (RBAC) across distinct data domains.

While open formats like Delta Lake and Iceberg mitigate the need for filesystem renames during normal commits, large batch jobs, landing-zone partition reorganization, and temporary file cleanup run substantially faster on ADLS Gen2 because of native HNS.

Google Cloud Storage: Unified Flat Store with Managed Folders

GCS operates as a flat object store, similar to S3. While it offers "Managed Folders" for fine-grained IAM bindings, it treats directories as virtual prefixes.

GCS excels in raw operational scaling without the need to manage explicit prefixes. It provides automatic baseline performance of 1,000 write requests per second and 5,000 read requests per second, which automatically scales up as load increases, provided the access key pattern does not hit sequential key anti-patterns.


Lake Storage Compared: Architectural Metrics

FeatureAmazon S3Azure Data Lake Storage Gen2Google Cloud Storage
Namespace ModelFlat (Prefix-based)Hierarchical Namespace (HNS)Flat (Virtual Prefixes)
Read ConsistencyStrong (Read-after-write)Strong (Read-after-write)Strong (Read-after-write)
Atomic OperationsSingle object onlyNative atomic directory opsSingle object only
Max Object Size5 TB4.77 TB (Standard Block Blob)5 TB
Default Throughput Limit3,500 PUT / 5,500 GET per prefix20,000 IOPS per account (soft)1,000 writes / 5,000 reads (auto-scaling)
Fastest Compute Engine FitAWS EMR, Athena, Snowflake, DatabricksAzure Synapse, Fabric, DatabricksBigQuery, Dataproc, Snowflake
Security / Granular RBACIAM + Bucket Policies + Lake FormationPOSIX ACLs + Azure RBAC + Microsoft PurviewCloud IAM + Uniform Bucket Access

Security, Access Governance, and Lake Formation

Managing petabyte-scale data lakes across multi-tenant architectures requires isolation boundaries that balance operational security with query performance.

S3 Access Governance

AWS uses a layered security model:

  • IAM and Bucket Policies: Evaluate request source, IP ranges, KMS encryption contexts, and VPC endpoints.
  • AWS Lake Formation: Introduces a centralized governance layer that provides table-level, column-level, and row-level access control over S3 storage locations, allowing organizations to bypass complex S3 bucket policies for analytics users.

ADLS Gen2 Access Governance

ADLS Gen2 merges cloud-native identity with legacy filesystem semantics:

  • Azure RBAC: Assigns coarse-grained access (e.g., Storage Blob Data Contributor) at the account or container level.
  • POSIX ACLs: Governs directory-level and file-level permissions mapped directly to Microsoft Entra ID (formerly Azure AD) users and security groups. This makes ADLS Gen2 the best native fit for teams migrating on-premises Hadoop/HDFS clusters without re-architecting their entire security model.

GCS Security and IAM

Google Cloud relies primarily on Cloud IAM, favoring Uniform Bucket-Level Access:

  • By disabling legacy Object ACLs, GCS enforces uniform IAM policies across an entire bucket, simplifying audits and hardening data lakes against unauthorized exposure.
  • For row- and column-level security, GCS relies on upstream integration with BigQuery and Google Cloud Dataplex, serving as a unified metadata and governance fabric.

Cost Architecture and Lifecycle Management

At cloud scale, network egress and storage tiers represent the majority of operational expenses.

Storage Tiers and Lifecycle Transitions

Each cloud provider implements cold storage to lower archival costs:

  • Amazon S3: Features S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 One Zone-IA, S3 Glacier Instant Retrieval, Flexible Retrieval, and Deep Archive. S3 Intelligent-Tiering automatically monitors access patterns and moves data without operational intervention or retrieval fees.
  • Azure Data Lake Gen2: Provides Hot, Cool, Cold, and Archive tiers. Lifecycle management policies apply across the hierarchical tree, allowing engineers to transition or delete files based on prefix, modification date, or access tier.
  • Google Cloud Storage: Offers Standard, Nearline (30-day min), Coldline (90-day min), and Archive (365-day min). GCS excels in retrieval latency: even its Archive tier provides sub-second time-to-first-byte, whereas legacy glacier tiers on AWS and Azure may require hours unless expedited retrieval charges are incurred.

Operational API Costs

A common pitfall when processing millions of micro-files via Spark streaming or ingest pipelines is operational API charges:

  • S3 charges for PUT/COPY/POST/LIST (Class A) and GET/SELECT (Class B) operations.
  • Azure charges for Write, Read, and Iterative Read operations (List transactions inside HNS are billed on directory traversal depth).
  • GCS charges across Class A and Class B API requests.

Architectures utilizing parquet compaction jobs significantly lower long-term storage spend by minimizing API call volume across all three providers.


Open Table Formats and Compute Engine Integration

Modern data lake storage is rarely accessed via raw API calls; it is queried through execution engines accessing Delta Lake, Apache Iceberg, or Apache Hudi.

  1. Databricks Integration: Databricks runs natively on both AWS and Azure, with growing support on GCP. On Azure, Databricks integrates deeply with ADLS Gen2 using credential passthrough and optimized ABFS drivers. On AWS, it leverages high-throughput multi-prefix parallel reads against S3.
  2. Snowflake External Tables: Snowflake handles data across all three clouds with feature parity, though its cross-cloud ingest pipelines run most cost-effectively when the external stage is colocated in the same region and cloud provider as your Snowflake deployment.
  3. Apache Iceberg Metadata Commits: Because Iceberg maintains its commit log inside hierarchical manifest files, it decouples the database engine from the underlying storage’s directory structures. This makes S3 and GCS behave with the same performance characteristics as ADLS Gen2 during write operations.

At Izan Technologies, we help enterprises evaluate these low-level tradeoffs to design resilient, multi-engine lakehouses. Whether building on AWS, Azure, or GCP, we ensure our clients retain complete strategic flexibility: customers own 100% of the IP we deliver, preventing vendor lock-in at both the compute and storage layers.


How Izan Technologies Helps

Designing a production-ready data lake requires balancing ingestion throughput, metadata governance, encryption keys, and query performance across open table formats. Izan Technologies engineers custom enterprise data platforms, ML systems, and lakehouses tailored to your cloud ecosystem. We deliver production-grade architectures on AWS, Azure, Databricks, and Snowflake, backed by complete transparency and full IP ownership for our clients.

Ready to build or optimize your enterprise data infrastructure?

Want this built for your team?

Senior engineers, your cloud, your IP.