Machines
Geos, machine names, adding and removing machines, and choosing which machine each service runs on.
A project's services run on its machines. You add machines on the project's Resources page and choose which machine each service runs on. A new project has no machines. You add its first one on the project's Resources page, and can add more later, in one geo or many.
Geos
A geo is the data centre location a machine runs in.
| Geo | Location | Zone |
|---|---|---|
| EU-1 | Germany | EU |
| EU-2 | Germany | EU |
| EU-3 | Finland | EU |
| US-1 | US East | US East |
| US-2 | US West | US West |
| APAC-1 | Singapore | Asia Pacific |
Pick the geo closest to your users. The machines on offer, and their prices, differ from geo to geo. A geo that isn't open yet is listed but can't be chosen.
Buckets and backups are kept in EU-1
Storage buckets and database backups are kept in EU-1, wherever the project's machines are. For a project outside the EU, the Storage create page and the database's backup setting say so. Your services reach a bucket over the internet.
Geos are grouped into zones. The three EU geos form one zone, and US-1, US-2 and APAC-1 are a zone each. One project can have machines in several geos and zones. See Machines in several zones.
Machine names
Every machine is named after its specification. For example, APP-S-2-4-40-20 reads as:
| Part | Meaning |
|---|---|
APP | Appentic machine |
S | CPU type: S for shared CPU, D for dedicated CPU |
2 | CPU cores |
4 | Memory (RAM), in GB |
40 | Disk, in GB |
20 | Transfer, in TB |
- Shared CPU (
APP-S-…) machines cost the least and suit most web apps. - Dedicated CPU (
APP-D-…) machines keep their cores to themselves. Choose one when your app needs steady CPU performance.
The Machine dropdown lists shared CPU machines first, then dedicated CPU machines, each group from cheapest to most expensive, with the full specification and monthly price.
Inside your project, machines are called machine-1, machine-2 and so on, in the order you added them. Pages that let you pick a machine show it with its geo, for example machine-2 · US-1.
Add a machine
- Open the project's Resources page.
- For your first machine, the Choose a machine form is already on the page. For another, open any machine's Actions menu and choose Add machine.
- Choose a Geo and a Machine.
- Click Choose machine (or Add machine) and confirm.
Your balance must cover the machine before you can add it. See Running out of credits.
Each machine gets a card on the Resources page. During setup the card shows Setting up machine-1…, which usually takes a minute or two. You can add services to it while it's being set up, and they start once it's ready. If setup fails, the card shows Needs attention and a Retry button.
Billing starts when the machine is ready and continues until you remove it.
Stock
Machines are sold from the stock available in each geo, and stock changes through the day. A machine that's sold out is still listed, marked not available right now, and can't be chosen.
If a machine sells out or its price changes between loading the page and confirming, Appentic shows you before anything is billed:
- Price changed. You see the new monthly price and can take the machine at that price or cancel.
- Sold out. Appentic offers the cheapest machine in stock in the same geo with at least the same cores, memory and disk. You can take it or cancel. If nothing comparable is in stock, try again in a few minutes.
If a machine can't be created at all, its card on the Resources page shows Not available with the reason, and you can choose again.
A machine keeps the monthly price it had when you added it. Later price changes don't affect your existing machines; a machine's price changes only when you change it to another size.
Choose where a service runs
Every web service, worker, cron job, database and key value store runs on one of the project's machines. Its create page has a Machine field:
- With one machine, the field names it.
- With several, it's a dropdown listing each machine with how much memory it has free. The memory slider below follows the machine you pick.
A service's Settings show which machine it runs on.
Storage services don't use a machine. A volume is attached to its database's machine. A load balancer runs on the machines you choose for it.
Move a service to another machine
Web services, workers and cron jobs can move. When the project has more than one machine, their Settings have a Machine section:
- Under Move to, pick a machine.
- Click Move and confirm.
The service redeploys on the other machine with its current code, which takes a minute or two. It needs room for its memory there. A web service's address follows it, and visitors reach it on the new machine within a minute or two.
Databases and key value stores keep their data on their machine's disk and stay on it. To keep one serving when its machine goes down, give it a standby on a second machine.
Remove a machine
You can remove a machine once nothing runs on it. That includes a database's or store's standby, a load balancer running on the machine, and the project's fixed outbound address.
- Open the machine's Actions menu.
- Click Remove machine-2 and confirm.
While something still runs there, Remove machine-2 is greyed out and the menu lists what's left, with Move or delete them to remove machine-2. After you confirm, the card shows machine-2 is being removed. until it's gone.
Billing for the machine stops when it's removed. Deleting the project removes all its machines. See Deleting a project.
Machines in several zones
Machines can be in any geo, and a project's services work together across zones.
- Databases and key value stores connect to web services, workers and cron jobs in another zone through the project's own encrypted tunnel. The connection details are the same as within one zone, so your code doesn't change.
- Workers and cron jobs run their web service's code, so they stay in that web service's zone. A web service can't move to another zone while it has workers or cron jobs.
- The firewall protects web services in every zone. A copy runs on each machine that has a web service it protects.
- A load balancer can spread traffic over web services in several zones. See Load balancers.
- A web service that moves to another zone builds again there before it starts.
When a project has machines in more than one zone, the Resources page has a Between zones section. It lists each zone's end of the tunnel as Connected, Connecting or Not connected.
What a machine card shows
A small part of every machine runs the system and keeps room for deploys, so your services can use a little less than the machine's specification. The System row on the machine's card shows exactly how much.
Each running machine's card on the Resources page shows:
- its name, machine type, geo, monthly price and status (Running, Stopped, Setting up, Changing and so on)
- its Geo, CPU, RAM, Disk and Transfer
- a RAM bar with each service's guaranteed share of memory
- a CPU bar with how much CPU is guaranteed
- a Disk bar with how much disk is reserved
- a table with each service's share of RAM, CPU and disk, starting with System
Hover over System to see what it's made of.
In the table, services that can use idle memory show + idle after their RAM. A note under the RAM bar explains it. Each service is guaranteed its share, and those marked + idle can also use memory the others aren't using. If the machine runs short, the service furthest over its guarantee restarts first.
When a web service on the machine can't update without going offline, the Resources page names it, for example: "Updates will briefly take shop offline. There isn't room on machine-1 to start the new version beside the old one." See Zero-downtime deploys.