Cloud Planning for Early-Stage Teams
Early infrastructure decisions are mostly about preserving optionality cheaply. Most early-stage teams need far less than they expect.
Early-stage infrastructure advice tends towards two extremes: build for scale you do not have, or ignore infrastructure until it breaks. The useful position is between them, and it rests on one idea: decisions that are cheap to reverse can be made quickly, and decisions that are expensive to reverse deserve thought.
What is cheap to change later
- Instance size. A reboot.
- Provider, if you have avoided deep platform coupling.
- Region, if data volumes are still small.
- Adding a second server when you need one.
These do not deserve weeks of deliberation.
What is expensive to change later
- Your data model and where data lives. Migrating a large production database is a project.
- Deep coupling to proprietary services. Convenient early, costly to unwind.
- Anything holding customer data in a jurisdiction you later cannot use.
- Not having backups. The cost arrives all at once.
Spend your thinking here.
A reasonable starting architecture
For most early products: one adequately sized server running the application, a managed database or a well-backed-up database on its own machine, object storage for user uploads, and DNS pointed at a reserved address.
That runs a real business with real users. It is boring, it is cheap, and it can be understood by one person at two in the morning.
Containers make it reproducible without requiring an orchestrator, as described in running containers on a single cloud server.
Using credit sensibly
Promotional balances are genuinely useful early, and they distort judgement. Two habits help: know your burn rate and exhaustion date from the first month, and avoid building on an architecture you could not afford once the credit is gone. See planning for credit expiry.
Habits worth forming immediately
- Tag resources from the first one, as in tagging for cost allocation.
- Set budget alerts on day one.
- Enable audit logging before you need it.
- Keep credentials in a shared password manager, not in a founder’s notes.
- Write down how to rebuild the environment.
Each takes minutes now and hours later.
When to add complexity
Add it when a specific problem demands it, not in anticipation. A second server for availability once downtime actually costs something. A queue once work genuinely needs to happen outside a request. The signals are discussed in scaling vertically before horizontally.
Complexity added early stays forever. Complexity added in response to a real constraint tends to be the right shape.
Cloud accounts on OldCloudShop
Ten providers, every configuration and the starting price for each.
Continue in the library
Other entries covering account structure, billing, security and provider infrastructure.