Concept 08. By Nicolas Dao · Last reviewed

Where may the data go?

Must the data, the prompts and the logs stay in Australia, and what does each service do with them by default?

What you'll be able to decide

Whether a system's data must stay in Australia; which of its services keep it there by default, which only when you ask (and at what price), and which can't at all; and how to prove where it went.

Residency is a property of every hop a request takes, not of the app: the database, the files, the email, the analytics, the logs and the model. Most global platforms send data wherever they like by default; some keep it in Australia if you choose a region or a profile, sometimes for a premium; some have only a best-effort hint, or nothing. List every hop, check each one, and the answer is the weakest hop. Where it must stay, keep it in the client's own AWS account in Sydney; where it needn't, the global tools are simpler.

In short

The options

  1. A. Global by default

    The platform runs the request and keeps the data wherever it likes: the nearest edge, the US, the EU. The simplest option, and the full product.

  2. B. In Australia, if you ask

    The service can keep it in Sydney or Melbourne, but only once you choose the region, the profile or the setting, sometimes at a premium. A location hint isn't one of these.

  3. C. In the client's own AWS account in Sydney

    Every hop in ap-southeast-2, inside an account the client owns: residency you can prove, at AWS prices and with more to build.

  4. D. Nowhere at all

    The work runs on the user's device and nothing is sent, so there is nothing to keep anywhere.

The rule of thumb

The default and the global endpoint route anywhere in the world. Australian residency only happens if you ask for it.

From Amazon Bedrock

How the answer changes with scale

  1. No personal or client data: a marketing site, public docs, a prototype on made-up data

    Global by default. Residency would cost something and protect nothing.

  2. Personal data, or a client or privacy policy that names Australia

    Every hop that carries the personal data in Sydney; keep that data out of the global tools rather than replacing them all.

  3. Government or health work

    Everything in the client's own AWS account in Sydney, on services in scope for IRAP PROTECTED, checked service by service.

The problem, in plain words

When a client says "the data must stay in Australia", they mean all of it. The database, yes, but also the uploaded files, the emails, the analytics events, the logs, and the prompts sent to a model, which often hold the same customer record word for word. Each of those goes to a different service, and each service has its own default.

So residency isn't a property of the app. It's a property of every hop a request takes, and the answer is the weakest hop. A database in Sydney doesn't help when the support assistant sends the same record to a model in the US.

Most global platforms are built the other way round: they run each request wherever it's fastest or cheapest. Keeping it in one country is an option you have to find, choose, sometimes pay for, and sometimes can't get at all.

The picture

The same patient question, three ways. The database is the hop everybody checks; the ones after it are where the data leaves.

  1. Only the database in Sydney

    1. Patient in Sydney
    2. Database: Sydney
      • Email: stored in the US
      • Analytics: the US or the EU
      • Model: the US or global

    The hop everyone checks. The answer is the weakest hop.

  2. Every hop in Sydney

    1. Patient in Sydney
    2. API: Lambda, Sydney
      • Database: Sydney
      • Email: SES, Sydney
      • Model: Bedrock, AU profile

    The client's own AWS account: residency you can prove.

  3. On the device

    1. User's browser
    2. File processed in the tab
    3. Nothing sent

    Nothing to keep in Australia: nothing is sent.

One patient's question through a booking app, three ways: with only the database in Sydney, while the email, the analytics and the model still send it abroad; with every hop in the client's AWS account in Sydney; and on the device, where nothing is sent.

The options

Global by default. Cloudflare Workers run wherever the request lands. OpenRouter routes globally: in-region routing exists only for the EU and the US, on the Business plan. Anthropic's API processes requests in the US or globally. Resend and Postmark store data in the US, and PostHog Cloud runs only in the US or the EU. None of that is a flaw. For data that may go anywhere, they're simpler and complete, and I use them.

In Australia, if you ask. Some services keep the data onshore, but only once you choose it. Neon is available in Sydney: you pick the region when you create the project. Claude on Amazon Bedrock stays in Sydney or Melbourne with the AU inference profile, for 10% more than global routing. Two things come with it: Bedrock lacks some of Anthropic's features (no batches, no Files API, no Managed Agents), and residency is per model. Fable 5.1's regional endpoint is US-only today, so it can't stay in Australia at all.

A hint isn't a guarantee. Cloudflare's storage offers jurisdictions for the EU, the US and FedRAMP only. For Oceania, R2, D1 and Durable Objects take a location hint, which is best effort, and a Cloudflare Sandbox container can't be pinned to Australia. A hint says where the data will probably go. S3's region says where it goes: the bucket's region is a guarantee, not a hint.

In the client's own AWS account in Sydney. The strictest answer: every hop in ap-southeast-2, inside an account the client owns. S3 for files, SES for email, Lambda for the API, Lambda MicroVMs for code nobody reviewed (in Sydney since 19 August 2026; I'm still watching it), SageMaker or EC2 for GPUs. You can prove it: the Region of every resource, a service control policy that blocks the others, CloudTrail for every call. The price is building more yourself. SES is a sending engine, not an email product.

Nowhere at all. Data that never leaves the user's device needs no residency answer. BobNinja, my own product, compresses PDFs and extracts their images in the browser, with no application server: users' files never leave their device. It only works for what a device can do, but when it fits, it's the strongest answer there is.

A concrete scenario

A clinic in Sydney runs a booking app, and its privacy policy says health information stays in Australia. Here's each hop, as first built and as I'd fix it:

Hop As built Where the data goes The fix
The database Neon, Sydney Sydney None: already right
The API Workers Wherever the request lands Lambda in Sydney, for every route that touches patient data
Confirmation emails Resend Stored in the US SES in Sydney
Analytics PostHog Cloud The US or the EU Keep personal data out of the events, or self-host
The assistant Claude on Anthropic's API The US or global Claude on Bedrock, AU profile: 10% more
The assistant's logs Cloudflare AI Gateway Can't be pinned to a jurisdiction Log in the API, in Sydney

Five of the six hops could send patient data abroad, and the database, the one everybody checked, was the only one that was certainly right. The model's fix is cheap: on a support assistant answering 2,000 chats a day, Bedrock's Australian routing adds about $66 a month.

The trade-offs

Global by default In Australia, if you ask In the client's account in Sydney Nowhere at all
Where the data goes Wherever the platform sends it Sydney or Melbourne, once you choose it ap-southeast-2, in an account the client owns It stays on the device
What it costs Usually the least Sometimes a premium (10% on Bedrock) AWS prices, and more to build The engineering to fit a browser's limits
What you give up Nothing Some features, and some models The ready-made product around the service Anything a device can't do
How you prove it You can't The setting, checked from every Region you call Resource Regions, a service control policy, CloudTrail Nothing is sent

The rule of thumb

Residency only happens if you ask for it, one hop at a time. List every service a request touches, the logs, analytics, email and model included. Check where each one keeps the data, not where its company is. Where the data must stay, keep it in the client's own AWS account in Sydney. Where it needn't, don't pay for residency: the global tools are simpler.

When the answer changes with scale

  • No personal or client data: global by default.
  • Personal data, or a policy that names Australia: every hop that carries it in Sydney. Keeping personal data out of a global tool (analytics events without names or emails) is often cheaper than replacing the tool.
  • Government or health work: everything in the client's account in Sydney, on services in scope for IRAP PROTECTED. SageMaker is, in Sydney and Melbourne. Check each service with the client: new AWS services take time to join the assessed list.
  • GPUs: the strictest case costs the most. In Sydney, SageMaker has T4, A10G and L4 instances, and A100 and H100 machines. Runpod's Australian data center has L40S only, without network volumes, and Google Cloud has no L4 in Australia. Runpod or AWS for a GPU? has the prices.

Before you promise it

  • Check per model and per feature, then pin them. A model ID set to "latest" can move you to a model that routes overseas.
  • Block the other Regions with a service control policy, so nobody creates a resource outside Australia by mistake.
  • Keep the evidence. On Bedrock, run get-inference-profile from every source Region you use and keep the list of destination Regions for the client's compliance file.
  • Decide at creation. Many of these settings can't change later: an R2 bucket's jurisdiction can never be changed afterwards, PostHog's region is chosen at sign-up, and a Neon project's region is chosen when it's created.
  • Check the list of locations, not the label. OpenAI's regional processing covers only the US and Europe, not Australia. Hostinger has no VPS location in Australia. The closest are Malaysia, Indonesia and India.

Questions that change the answer

  • Does any of it identify a person, or belong to a client? If not, residency rarely matters.

  • Does a contract or the privacy policy name a country? That decides, not anyone's preference.

  • Where do the logs, the analytics, the emails and the model calls go? They carry the same data as the database, and they're the hops nobody checks.

  • Must you prove it? Then keep the evidence: the Region of every resource, and where each inference profile sends requests.

Doesn't cover

  • What the law requires (the Privacy Act, health records rules, a client's contract): this page is about where the data goes. Ask a lawyer what applies.

  • Sovereignty, which government can compel a provider to hand data over, is a different question from where the data sits.

Check your call

Decide before you open each answer.

  1. A marketing site with a contact form. Nothing is kept but the messages, which go straight to the owner's inbox.

    Global by default: Workers, Turnstile and Resend. Residency would cost something and protect nothing.

  2. An HR app for Australian employers: Neon in Sydney, emails by Postmark, PostHog for analytics, and a Claude assistant through OpenRouter. Its contracts say employee data stays in Australia.

    Three hops leave: Postmark stores data in the US, PostHog Cloud runs in the US or the EU, and OpenRouter routes globally. Email through SES in Sydney, keep personal data out of PostHog (or self-host it), and call Claude through Bedrock's AU profile.

  3. A government agency wants an open model fine-tuned on its documents, on GPUs.

    SageMaker in the agency's own AWS account in Sydney, in scope for IRAP PROTECTED. Not Runpod: the work must stay inside the client's account, and Runpod's Australian data center has L40S cards only.

The technology on this site

Read next

  1. 03 Ask an LLM, or call a decision API? When my app needs a yes, a no, a label or a score, should it prompt a general model or call a model built to decide? Most AI calls in business apps are decisions: urgent or not, which team, how severe. A decision model (Jev, Cloudflare's Clef, OpenAI's Decisions API) takes your data and typed questions and returns probabilities with a confidence, in milliseconds, for cents per million tokens, and never writes text. Your code acts above a threshold and sends the rest to a bigger model or a person. The category is weeks old, so I'm watching it, with an adapter in front.
  2. 09 Where should code nobody reviewed run? Where does code written by a model or a customer run, so it can't reach your credentials, your network or the next user's files? A sandbox is for code nobody on your team reviewed: code a model writes at runtime, or code a customer uploads. Reviewed code, even an agent's, runs in a normal Lambda, Worker or Fargate task. Unreviewed code must never run where your credentials live: a Lambda carries its role and environment variables, and its /tmp survives into the next invocation. Give each session its own walls (a container on Cloudflare Sandbox by default; a microVM on Lambda MicroVMs when the code must stay in Australia, reach a private VPC, use a bigger machine or keep its processes for hours) and put nothing secret inside: its traffic leaves through a proxy that adds the credentials, to the destinations it needs and no others.

Want this stack in your AWS account?

Cloudless Labs is a Sydney consultancy. We migrate on-premises systems to AWS, build serverless apps on this stack, and coach teams to ship with Claude Code and Codex.

Talk to us

Contact Us

For general inquiries, please contact us at:

For e-learning capabilities, please contact: