dataonaws
— Stack · Integrations

Snowflake on AWS

A managed warehouse that runs in Snowflake's own account inside an AWS region. Data reaches it from your AWS account in four ways, and agents on AWS can query it through MCP. You pay for compute in credits and for the storage Snowflake holds.

How it fits

Data comes in from your AWS account. Answers go out to your agents.

ON-PREMYOUR AWS ACCOUNTSNOWFLAKE ON AWSYOUR AWS ACCOUNTSTAYS IN YOUR S3optionalDatabase, DWHOracle, SQL ServerApps, exportsfilesAWS DMSfull load + CDCS3 landingParquet, CSV, JSONIceberg on S3your bucket or S3 TablesGlue Data CatalogIceberg RESTSnowpipeon each S3 eventCOPY INTObatch loadExternal tablesread-only, any fileIceberg tablesSnowflake as catalogIceberg tablesGlue as catalogWarehousesbilled in creditsCortex AgentAnalyst + SearchMCP serverSnowflake-managedAgentCoreGateway, MCP targetData agentyour agent platformS3 access through a storage integration (IAM role) · private connectivity through PrivateLink (Business Critical)

Snowpipe and COPY INTO copy the data into Snowflake storage. The three paths in the box leave it in your S3 and Snowflake keeps a pointer: external tables read files as they are; Iceberg tables keep their metadata either in Snowflake (full DML, Snowflake writes the files) or in Glue Data Catalog, reached through its Iceberg REST endpoint with SigV4 and Lake Formation permissions. AWS DMS has no Snowflake target, so it writes full loads and CDC changes to S3 first.

Four ways in

Load it, query it in place, or share the tables.

Continuous

Snowpipe

An S3 event notification goes to a Snowflake-managed SQS queue, and the pipe loads each file as it lands. Fits DMS change files and streaming drops.

Batch

COPY INTO

A command that loads files from an S3 stage into a table, run by a scheduled task or your orchestrator. Fits nightly exports and the initial migration load.

In place

External tables

Snowflake queries files in your bucket without copying them. Read-only and slower than loaded tables; for Parquet, Snowflake recommends Iceberg tables instead.

Shared

Iceberg tables

Data stays in your S3 as Iceberg. With Glue as catalog, Athena, EMR and Snowflake read the same tables. With Snowflake as catalog you get full DML, and other engines read through Open Catalog sync or the Snowflake Catalog SDK.

The three choices that matter

Most of the bill and the speed come from here.

01

What size warehouse

Credits per hour double at each size. Billing is per second with a 60-second minimum each time the warehouse starts, so auto-suspend matters.

02

Load into Snowflake or keep it in S3

Loading copies the data into Snowflake storage, with Time Travel and Fail-safe. Keeping it in S3 leaves one copy that Athena, EMR and Snowflake share, billed on your AWS account, without Fail-safe. External tables read slower than loaded tables.

03

Who owns the Iceberg catalog

Use Snowflake as the catalog, point a catalog integration at an external one like Glue, or sync through Snowflake Open Catalog so other engines read the same tables.

Bar lengths are to scale with credits per hour from the Snowflake warehouse sizes table. Dollar price per credit depends on edition and region.

What you pay

A Snowflake bill, in one line.

Compute
credits consumed
Warehouse credits per second; dollar price per credit varies by edition and region
+
Storage
per TB-month
Snowflake-managed tables and SNOWFLAKE_MANAGED Iceberg volumes
+
External S3
your AWS bill
Iceberg on an external volume is storage your account pays for
+
Data transfer
per GB egress
Billed when data leaves a region or cloud
+
Billing route
direct or Marketplace
Pay Snowflake directly, or through AWS Marketplace against your AWS agreement
What we see in production
Warehouses left running between queries.Set a short auto-suspend; the 60-second minimum is cheaper than idle minutes.
Oversized warehouses for small queries.Each size up doubles the credit rate; size to the query, not the peak.
Cross-region external volumes.Querying Iceberg across regions adds S3 egress on your own account.
Stored procedures migrated one to one.Use the migration to move transformation logic into versioned SQL, with dbt or Snowflake's own tooling.
Agents given raw SQL execution on a broad role.Expose a Cortex Agent through the MCP server and grant each tool to a least-privileged role.
Two copies of the same table, in S3 and in Snowflake.When other engines need the data, keep one Iceberg copy in S3 and point every engine at one catalog.
How we help

Platform selection & architecture

AWS native, Databricks or Snowflake. A costed decision, trade-offs written down.

Read the approach →
PDF · coming soon

The one-page Snowflake on AWS field guide.

Best practices, cost traps and performance checks, in the order you should run them. Printable, no fluff.

One email when the PDF is ready. Nothing else unless you tick the box.