# App Engine Service

> App Engine services bill instance hours whose behavior depends on the environment: standard can scale to 0 between requests, while flexible keeps at least 1 instance running continuously. ZopNight discovers services via Cloud Asset Inventory, maps spend from the BigQuery billing export, and checks scaling configuration against its GCP recommendation rules.

Source: https://zop.dev/integrations/gcp/appengine
Updated: 2026-08-19

---

App Engine is Google Cloud's original platform-as-a-service for running web applications without managing servers. Services scale automatically, but minimum instance settings and always-on flexible-environment versions can keep billing even when traffic is zero.

## Instance hours, and the environment that shapes them

App Engine charges for instance hours, but the two environments accrue them very differently. Standard-environment services can scale all the way to zero between requests, so a quiet service can genuinely cost nothing. Flexible-environment services run on Compute Engine VMs and always keep at least one instance up, billing continuously regardless of traffic. Within standard, the knobs that defeat scale-to-zero are min-instances and min-idle-instances. Each pinned instance bills for readiness around the clock, exactly like warm capacity on any other serverless platform.

## Scaling configuration under rule review

ZopDev discovers App Engine services via Cloud Asset Inventory, maps their spend from the BigQuery billing export, and checks scaling configuration against its GCP recommendation rules. The service is the unit that carries the scaling settings, which is why it is the object reviewed; the per-project application container is tracked separately as appengine-app. Spend mapping matters more here than on newer platforms, because App Engine's charges surface under several SKUs and are easy to misattribute without the billing export joined in.

## Old platform, familiar leaks

App Engine estates tend to be old, and their waste patterns reflect it. Flexible-environment versions of long-forgotten staging services are the sharpest: always-on VMs serving no requests for years. Second, stale versions still assigned a traffic split, since each version with instances holds capacity of its own. Third, idle-instance floors copied into every service's app.yaml in an era when cold starts hurt more, now billing steadily on services nobody visits.

## Service inventory in the console

Google Cloud console → App Engine → Services lists every service in the application; the Versions view under each shows the serving environment, instance class, and how many instances each version currently holds, which is where an always-on flexible version is immediately visible.
