Limit GCP App Engine to use only 1 unit of app engine flex core

470 Views Asked by At

I am new to GCP app engine -- I have a node.js app running on app engine flex. Currently Google is charging me over 3500 hours of flex instance core hours per month. They tell me I am using multiple instances that is why the large number of hours. However, I have limited the instance number in app.yaml file to 1 -- but seems its not working. Here is my app.yaml file, and use gcloud app deploy to deploy the app.

#Copyright 2017, Google, Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# [START gae_quickstart_yaml]
runtime: nodejs
env: flex

network:
  session_affinity: true

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10
# [END gae_quickstart_yaml]

1

There are 1 best solutions below

0
JM Gelilio On

To answer this question, your 3500 hours of flex instance core hours per month came from the App Engine Flex old version deployed. Because The App Engine Flex runs on a Virtual Machine and whenever you deploy a new version using the command gcloud app deploy, the old one is still running even without a traffic. To replace the previous version the old version by the new deployment use the gcloud command:

  • gcloud app deploy --version=VERSION

Also to delete/stop the version, you can do this in Google Cloud Console(App Engine > Version) then check all the versions you want to delete/stop or via gcloud command:

  • gcloud app versions delete VERSIONS
  • gcloud app versions stop VERSIONS

If contacting Google Billing department still can't explain where the charges came from, I believe contacting the Google Cloud Tech Support might give more explanation for this.