ราคาของ Google App Engine Flexible env บทเรียน $ 500


113

ฉันติดตาม Nodejs บน App Engine Flexible env tutorial @: https://cloud.google.com/nodejs/getting-started/hello-world

หลังจากปรับใช้และทดสอบบทช่วยสอนสำเร็จแล้วฉันจึงเปลี่ยนโค้ดเพื่อทดลองเล็กน้อยและทำให้ใช้งานได้สำเร็จ ... จากนั้นปล่อยให้มันทำงานเนื่องจากนี่เป็นสภาพแวดล้อมการทดสอบ (ไม่ใช่แบบสาธารณะ)

หนึ่งเดือนต่อมาฉันได้รับใบเรียกเก็บเงินจาก Google เป็นเงินกว่า $ 370!

ในรายละเอียดธุรกรรมฉันเห็นสิ่งต่อไปนี้:

1 - 31 ต.ค. 2017 แรมอินสแตนซ์ของ App Engine Flex: 5948.774 กิบิไบต์ - ชั่วโมง ([MYPROJECT]) $ 42.24

1 - 31 ต.ค. 2017 ชั่วโมงหลักของอินสแตนซ์ของ App Engine Flex: 5948.774 ชั่วโมง ([MYPROJECT]) $ 312.91

สภาพแวดล้อมการทดสอบที่มีคำขอเกือบ 0 รายการต้องใช้ทรัพยากรประมาณ 6,000 ชั่วโมงอย่างไร ที่แย่ที่สุดฉันจะถือว่า 720 ชม. ทำงานเต็มเวลาเป็นเวลาหนึ่งเดือนที่ $ 0.05 ต่อชั่วโมงจะทำให้ฉันเสียเงิน ~ $ 40 https://cloud.google.com/appengine/pricing

มีใครช่วยชี้แนะเรื่องนี้ได้ไหม ฉันไม่สามารถหาคำตอบได้ว่าเหตุใดจึงต้องใช้ทรัพยากรจำนวนมาก?

ขอบคุณสำหรับความช่วยเหลือ!

สำหรับข้อมูลเพิ่มเติมนี่คือการเข้าชมในเดือนที่แล้ว (โดยทั่วไปคือ 0): ข้อมูลการจราจร

และข้อมูลอินสแตนซ์ข้อมูลอินสแตนซ์

อัปเดต: โปรดทราบว่าฉันได้นำการแก้ไขหนึ่งรายการไปยัง package.json: ฉันได้เพิ่ม nodemon เป็นการอ้างอิงและเพิ่มเป็นส่วนหนึ่งของสคริปต์ "nmp start" ของฉัน แม้ว่าฉันจะสงสัยว่าสิ่งนี้อธิบายถึงทรัพยากร 6000 ชั่วโมง:

  "scripts": {
    "deploy": "gcloud app deploy",
    "start": "nodemon app.js",
    "dev": "nodemon app js",
    "lint": "samples lint",
    "pretest": "npm run lint",
    "system-test": "samples test app",
    "test": "npm run system-test",
    "e2e-test": "samples test deploy"
  },

App.yaml (ค่าเริ่มต้น - ไม่มีการเปลี่ยนแปลงจากบทช่วยสอน)

runtime: nodejs
env: flex

คุณควรติดต่อฝ่ายสนับสนุน GCP เพื่อขอความช่วยเหลือเกี่ยวกับการเรียกเก็บเงิน: support.google.com/cloud/contact/cloud_platform_billing
BrettJ

5
ขอบคุณสำหรับการตอบกลับของ @BrettJ ฉันได้ติดต่อพวกเขาแล้วและนี่คือสิ่งที่พวกเขาบอกฉัน: "ดังที่ได้กล่าวไปแล้วเราไม่มีความสามารถในการดูรายงานการใช้งานโดยละเอียดนั่นเป็นเหตุผลที่ฉันให้ลิงก์เพื่อให้คุณสามารถโพสต์ได้เช่นกัน ในฟอรัมชุมชนและจะมีนักพัฒนาที่มีประสบการณ์สามารถช่วยคุณตอบคำถามทางเทคนิคของคุณได้ "
ddallala

2
ความคาดหวังของคุณจะขึ้นอยู่กับราคา env มาตรฐาน (และเฉพาะอินสแตนซ์คลาส B1) แต่คุณใช้ flex env - ราคาที่แตกต่างกัน ตรวจสอบ app.yaml ของคุณสำหรับ CPU และ GB ของการกำหนดค่าหน่วยความจำซึ่งเป็นตัวคูณชั่วโมงต่ออินสแตนซ์ของคุณ จากนั้นคุณคูณด้วย 2 - จำนวนอินสแตนซ์ที่คุณทำงานอยู่
Dan Cornilescu

สวัสดีราคา @DanCornilescu ยังคงอยู่ที่ ~ 0.0.5 เหรียญแม้สำหรับสภาพแวดล้อมแบบยืดหยุ่น ... vCPU ต่อชั่วโมงแกน $ 0.0526 (ไอโอวา) ฉันวาง app.yaml ของฉัน ... โดยย่อไม่ได้แก้ไขจากบทช่วยสอน
ddallala

1
ตกลงตอนนี้คุณมีจุดข้อมูลที่ดีกว่าในการสื่อสารกับฝ่ายสนับสนุนการเรียกเก็บเงิน GCP
Dan Cornilescu

คำตอบ:


187

หลังจากใช้ Google ไปมาหลายชั่วโมงและอ่านบล็อกและดูรายงานหลายชั่วโมงในที่สุดฉันก็พบคำอธิบายสำหรับสิ่งที่เกิดขึ้น ฉันจะโพสต์คำแนะนำไว้ที่นี่เพื่อไม่ให้คนอื่นตกเป็นเหยื่อของปัญหานี้

โปรดทราบว่าสิ่งนี้อาจดูเหมือนชัดเจนสำหรับบางคน แต่ในฐานะผู้ใช้ GAE รายใหม่ทั้งหมดนี้เป็นเรื่องใหม่สำหรับฉัน

ในระยะสั้นเมื่อปรับใช้กับ GAE และใช้คำสั่งต่อไปนี้ " $ gcloud app deploy " จะสร้างเวอร์ชันใหม่และตั้งค่าเป็นค่าเริ่มต้น แต่ที่สำคัญกว่านั้นคือจะไม่ลบเวอร์ชันก่อนหน้านี้ที่ทำให้ใช้งานได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันและอินสแตนซ์ได้ที่นี่: https://cloud.google.com/appengine/docs/standard/python/an-overview-of-app-engine

ดังนั้นในกรณีของฉันโดยไม่รู้ตัวฉันได้สร้างแอปโหนดอย่างง่ายหลายเวอร์ชัน เวอร์ชันเหล่านี้ยังคงทำงานอยู่ในกรณีที่จำเป็นต้องสลับตามข้อผิดพลาด แต่เวอร์ชันเหล่านี้ต้องใช้อินสแตนซ์เช่นกันและค่าเริ่มต้นเว้นแต่จะระบุไว้ใน app.yaml คือ 2 อินสแตนซ์

Google กล่าวว่า:

โดยค่าเริ่มต้น App Engine จะปรับขนาดจำนวนอินสแตนซ์ที่ทำงานขึ้นและลงเพื่อให้ตรงกับโหลดดังนั้นจึงให้ประสิทธิภาพที่สม่ำเสมอสำหรับแอปของคุณตลอดเวลาในขณะที่ลดอินสแตนซ์ที่ไม่ได้ใช้งานและลดต้นทุน

อย่างไรก็ตามจากประสบการณ์ของฉันนี่ไม่ใช่กรณี อย่างที่บอกไปก่อนหน้านี้ฉันดันแอปโหนดด้วย nodemon ซึ่งดูเหมือนว่าจะทำให้เกิดข้อผิดพลาด

ในท้ายที่สุดการทำตามบทช่วยสอนและไม่ได้ปิดโครงการฉันมี 4 เวอร์ชันแต่ละเวอร์ชันมี 2 อินสแตนซ์ที่ทำงานเต็มเวลาเป็นเวลา 1.5 เดือนที่ให้บริการคำขอ 0 รายการและสร้างข้อความแสดงข้อผิดพลาดจำนวนมากและมีค่าใช้จ่าย 500 ดอลลาร์

คำแนะนำหากคุณยังต้องการใช้ GAE FLEX ENV:

  1. ก่อนอื่นตั้งค่างบประมาณการเรียกเก็บเงินและการแจ้งเตือนเพื่อไม่ให้คุณรู้สึกแปลกใจกับใบแจ้งหนี้ราคาแพงที่เรียกเก็บเงินจาก CC ของคุณโดยอัตโนมัติ: https://cloud.google.com/billing/docs/how-to/budgets

  2. ในสภาพแวดล้อมการทดสอบคุณมักไม่ต้องการหลายเวอร์ชันดังนั้นในขณะที่ปรับใช้ให้ใช้คำสั่งต่อไปนี้:
    $ gcloud app deploy --version v1

  3. อัปเดตapp.yamlของคุณเพื่อบังคับใช้เพียง 1 อินสแตนซ์โดยใช้ทรัพยากรน้อยที่สุด:

runtime: nodejs
env: flex

# 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
  1. กำหนดวงเงินการใช้จ่ายรายวัน

ป้อนคำอธิบายภาพที่นี่

ดูข้อมูลเพิ่มเติมในบล็อกโพสต์นี้: https://medium.com/google-cloud/three-simple-steps-to-save-costs-when-prototyping-with-app-engine-flexible-environment-104fc6736495

ฉันหวังว่าขั้นตอนเหล่านี้จะรวมอยู่ในบทช่วยสอนเพื่อปกป้องผู้ที่พยายามเรียนรู้และทดลอง แต่ไม่เป็นเช่นนั้น

Google App Engine Flex env อาจเป็นเรื่องยุ่งยากหากไม่ทราบรายละเอียดทั้งหมดเหล่านี้ เพื่อนคนหนึ่งชี้ให้ฉันไปที่ Heroku ซึ่งมีทั้งการกำหนดราคาและข้อเสนอฟรี / งานอดิเรก ฉันสามารถผลักดันแอปโหนดใหม่ที่นั่นได้อย่างรวดเร็วและทำงานได้อย่างมีเสน่ห์! https://www.heroku.com/pricing

ฉันต้องเสียค่าใช้จ่ายเพียง $ 500 ในการเรียนรู้บทเรียนนี้ แต่ฉันหวังว่าสิ่งนี้จะช่วยให้ผู้อื่นที่กำลังมองหา Google App Engine Flex Env


64
Google ดูเหมือนจะมีตลาดอยู่ในเอกสารที่มีหมัด โชคไม่ดีที่คุณถูกตบด้วยเงิน 500 ดอลลาร์ แต่คุณได้รับกระสุนสำหรับคนอื่น ๆ อีกมากมายฉันแน่ใจด้วยการเสนอข้อมูลเชิงลึกของคุณชื่นชมมาก!
Drazen Bjelovuk

11
ความเป็นไปได้อีกอย่าง "gcloud app deploy app.yaml --stop-previous-version"
DeividasV

2
ขอบคุณมีประโยชน์มาก การแจ้งเตือน / การ จำกัด การเรียกเก็บเงินเป็นสิ่งที่จำเป็น ประสบปัญหาคล้าย ๆ กันเมื่อไม่นานมานี้
Kartik

1
นี่ไม่ใช่วิธีที่ถูกที่สุดอย่างแน่นอนเพราะมันจะเรียกใช้อินสแตนซ์เดียวตลอดเวลา โปรดดูคำตอบของฉัน
Caner

เราอาจคาดหวังความประหลาดใจที่เลวร้ายเช่นเดียวกันกับ AppEngine standard env ได้หรือไม่? หรือปัญหา OP ที่กล่าวถึงเกิดขึ้นเฉพาะใน flex env?
John Doe

18

หากคุณต้องการลดค่าใช้จ่าย GAE ของคุณโปรดอย่าใช้manual_scalingตามที่แนะนำในบทความนี้หรือคำตอบที่ยอมรับ!

สิ่งที่สวยงามเกี่ยวกับ Google App Engine คือสามารถปรับขนาดขึ้นและลงได้ถึงหลายร้อยเครื่องภายในมิลลิวินาทีตามความต้องการ และคุณจะจ่ายเฉพาะอินสแตนซ์ที่กำลังทำงานอยู่

เพื่อให้สามารถเพิ่มประสิทธิภาพต้นทุนของคุณคุณต้องเข้าใจตัวเลือกการปรับขนาดและประเภทอินสแตนซ์ต่างๆ:

1. App Engine Flex เทียบกับมาตรฐาน:

สามารถดูรายละเอียดเกี่ยวกับความแตกต่างได้ที่นี่แต่ข้อแตกต่างที่สำคัญอย่างหนึ่งที่เกี่ยวข้องกับคำถามนี้คือ:

[Standard is] มีจุดประสงค์เพื่อใช้งานฟรีหรือเสียค่าใช้จ่ายน้อยมากโดยคุณจะจ่ายเฉพาะสิ่งที่คุณต้องการและเมื่อคุณต้องการเท่านั้น ตัวอย่างเช่นแอปพลิเคชันของคุณสามารถปรับขนาดเป็น 0 อินสแตนซ์เมื่อไม่มีการรับส่งข้อมูล

2. ตัวเลือกการปรับขนาด:

  • การปรับขนาดอัตโนมัติ: Google จะปรับขนาดแอปของคุณตามความต้องการและการกำหนดค่าที่คุณระบุ
  • การปรับมาตราส่วนด้วยตนเอง: ไม่มีการปรับมาตราส่วนเลย GAE จะเรียกใช้ # ของอินสแตนซ์ที่คุณขอตลอดเวลา (การตั้งชื่อที่ทำให้เข้าใจผิดมาก)
  • การปรับขนาดพื้นฐาน: จะขยายขนาดเพื่อ จำกัด การตั้งค่าและจะลดขนาดลงหลังจากเวลาที่กำหนด

3. ประเภทอินสแตนซ์: มี 2 ประเภทอินสแตนซ์และโดยพื้นฐานแล้วจะแตกต่างกันในเวลาที่ใช้ในการหมุนอินสแตนซ์ใหม่ สามารถสร้างอินสแตนซ์คลาส F (ใช้ในการปรับขนาดอัตโนมัติ) ได้เมื่อมีความต้องการภายใน ~ 0.1 วินาทีและอินสแตนซ์คลาส B (ใช้ในการปรับขนาดด้วยตนเอง / พื้นฐาน) ภายใน ~ 0.7 วินาที: ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่

ตอนนี้คุณเข้าใจพื้นฐานแล้วให้กลับไปที่คำตอบที่ยอมรับ:

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

สิ่งนี้สั่งให้ GAE เรียกใช้คลาสอินสแตนซ์ที่กำหนดเอง ( มีค่าใช้จ่ายมากกว่า ) ตลอดเวลา เห็นได้ชัดว่านี่ไม่ใช่ตัวเลือกที่ถูกที่สุดเนื่องจากสามารถใช้ประเภทอินสแตนซ์ B1 / F1 แทนได้ (มีข้อกำหนดที่ต่ำกว่า) และยังใช้งานอินสแตนซ์อยู่ตลอดเวลา

สิ่งที่จะถูกที่สุดคือการปิดอินสแตนซ์เมื่อไม่มีการเข้าชม หากคุณไม่สนใจเวลาหมุน ~ 0.1 วินาทีคุณสามารถใช้สิ่งนี้แทนได้:

instance_class: F1
automatic_scaling:
  max_instances: 1 (--> you can adjust this as you wish)
  min_instances: 0 (--> will scale to 0 when there is no traffic so won't incur costs)

สิ่งนี้จะอยู่ในโควต้าฟรีที่ Google มีให้และไม่ควรเสียค่าใช้จ่ายใด ๆ หากคุณไม่มีการเข้าชมจริง

PS: ขอแนะนำอย่างยิ่งให้ตั้งค่าขีด จำกัด การใช้จ่ายรายวันในกรณีที่คุณลืมบางสิ่งที่กำลังทำงานอยู่หรือคุณมีการตั้งค่าที่มีราคาแพงอยู่ที่ไหนสักแห่ง


3
คุณไม่สามารถตั้งค่าmin_instancesเป็น 0 ได้ตามเอกสาร :The minimum number of instances given to your service. When a service is deployed, it is given this many instances and scales according to traffic. Must be 1 or greater, default is 2 to reduce latency.
โบร

4
@yorbro ขอบคุณที่ชี้ให้เห็นว่าmin_instances สำหรับสภาพแวดล้อมมาตรฐานเอกสารที่คุณเชื่อมโยงหมายถึงพารามิเตอร์ที่แตกต่างกันmin_num_instances ซึ่งมีไว้สำหรับสภาพแวดล้อมแบบยืดหยุ่น ฉันจะอัปเดตคำตอบของฉันเพื่อสะท้อนสิ่งนี้อย่างชัดเจน
Caner

อาไม่ดี ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว!
โบร

ในเอกสารสำหรับ min_in สิ่งนี้ต้องเปิดใช้งานหรือไม่? เวลาในการตอบสนองจะส่งผลอย่างไรหากไม่ได้ใช้งาน ฉันกำลังพยายามลดค่าใช้จ่ายสำหรับแอปที่มีผู้ใช้ประมาณ 600 คนดังนั้นฉันจึงพยายามหาว่าการตั้งค่ามาตราส่วนที่ดีที่สุดคืออะไร
Pete Nice

คำเตือนนั้นดูเหมือนจะใหม่ฉันไม่เคยเห็นมาก่อน ที่ถูกกล่าวว่าไม่รู้เกี่ยวกับผลกระทบด้านประสิทธิภาพ รายละเอียดที่นี่: cloud.google.com/appengine/docs/standard/python/…
Caner

18

เราได้ติดตั้งโค้ดกับ GAE FE ไปแล้วอย่างแน่นอนเนื่องจากความล้มเหลวแบบเรียงซ้อน, เลขชี้กำลัง (อีเมลตีกลับสร้างอีเมลตีกลับ ฯลฯ ) และเราไม่สามารถปิดอินสแตนซ์ GAE ที่ถูกบั๊กได้ หลังจาก 4+ ชั่วโมงและมีการส่งอีเมลมากกว่า 1 ล้านฉบับ (Mailgun ไม่ยอมให้เราปิดการใช้งานบัญชีมันบอกว่า "โปรดรอถึง 24 ชั่วโมงเพื่อให้การเปลี่ยนรหัสผ่านมีผล" และการเพิกถอนคีย์ API ก็ไม่ได้ทำอะไรเลย) VM ถูกหยุดฐานข้อมูลลงและโค้ดทั้งหมดของไซต์ลดลงเหลือเพียงหน้า 503 แบบคงที่ "Down For Maintenance") อีเมลจะถูกส่งต่อไป

ฉันพิจารณาแล้วว่า GAE FE ไม่ได้ยุติ VM ของนักเทียบท่าหรือ Cloud Compute VMs (redis) ที่อยู่ภายใต้การโหลดของ CPU อาจจะไม่เคย! เมื่อเราลบ Compute VM ไปแล้วจริงๆ (แทนที่จะหยุด "เพียง") อีเมลจะหยุดลงทันที

แต่ฐานข้อมูลของเรายังคงเต็มไปด้วยการแจ้งเตือน "ไม่สามารถส่งอีเมล" ได้อีกนานถึง 2 ชั่วโมงแม้ว่าแอป GAE จะรายงานเวอร์ชันและอินสแตนซ์ 100% เป็น "หยุด" ฉันต้องเปลี่ยนรหัสผ่าน Google Cloud SQL

เรายังคงตรวจสอบการเรียกเก็บเงินและอินสแตนซ์โกง 7 ตัวยังคงใช้ CPU จนหมดดังนั้นเราจึงยกเลิกบัตรที่ใช้ในบัญชีนั้นและในความเป็นจริงไซต์ก็หยุดทำงานเมื่อใบเรียกเก็บเงินเลยกำหนด แต่อินสแตนซ์โกงก็เช่นกัน เราไม่สามารถแก้ไขสถานการณ์ด้วยการสนับสนุนทางอีเมลของ GAE


อัปเดต (30 ก.ย. 2020):นี่ยังคงเป็นช่วงเวลาที่แย่ที่สุดในอาชีพ 22 ปีของฉัน !! ทั้ง บริษัท ที่มีนักพัฒนาซอฟต์แวร์อัจฉริยะ 15 คนไม่สามารถหาวิธีปิด GAE ได้ เรารู้ว่าลูกค้าได้รับอีเมลหลายล้านฉบับเมื่อนักพัฒนาคนหนึ่งของฉันไม่สามารถเข้าถึงบัญชี GMail ของเธอได้ ไม่สามารถถอดปลั๊กไม่สามารถปิดได้ มันเป็นช่วงเวลา "Terminator"!

มันคงไม่เลวร้ายมากนักยกเว้นค่าใช้จ่ายหาก MailGun อนุญาตให้เราปิดการเข้าถึง API หรือเปลี่ยนรหัสผ่านได้ แต่มันก็ยังคงเป็นค่าใช้จ่ายที่ไม่ดีสำหรับ GAE

ฉันไม่เชื่อถือเซิร์ฟเวอร์อีกต่อไปฉันไม่สามารถออกได้ rebootต่อไป

ท้ายที่สุด MailGun เรียกเก็บเงินเราเพียงประมาณ $ 50 อย่างไรก็ตาม GAE ... ถ้าฉันแค่สันนิษฐานว่า "ตกลงอีเมลหยุดเราหยุดได้" เราอาจได้รับบิลเกิน 20,000 ดอลลาร์! ขณะที่มันกำลังมัน "เท่านั้น" ค่าใช้จ่าย$ 1,500 และเราไม่สามารถติดต่อกับใครเพื่อโต้แย้งได้ ซีอีโอก็กินมันเข้าไป


ตอนนี้ฉันออกจาก บริษัท นั้นมานานแล้วฉันสามารถบอกคุณได้ว่าการเรียกเก็บเงินรายเดือนนั้นอยู่ที่ประมาณ 5,000 ดอลลาร์โดยปกติประมาณ 300 ดอลลาร์
Theodore

ฉันใช้ GCP และ AWS ในช่วงสองสามปีที่ผ่านมาและเรื่องราวเช่นนี้ทำให้ฉันอยากจะกรีดร้องในอ้อมแขนของ AWS แบบเต็มเวลา ช่องโหว่ในเอกสารของ GCP และการตรวจสอบข้อผิดพลาดนั้นเลวร้าย - ปรับปรุง แต่ก็ยังแย่อยู่ มันถูกด้วยเหตุผล ที่กล่าวว่าฉันกำลังจะปรับใช้แอปกับ GAE ถือเบียร์ของฉัน
เครื่อง

เป็นไปไม่ได้เลยที่จะติดต่อกับใครก็ตามที่ Google หากคุณมีปัญหาร้ายแรงกับ GCP เราพยายามติดต่อพวกเขาเป็นเวลาหลายเดือนเกี่ยวกับปัญหาความไม่เสถียรขั้นต้น ไม่ไป.
Theodore

ฉันโชคดีกับการสนับสนุนด้านเทคนิคของพวกเขา แต่ บริษัท ของฉันก็จ่ายเงินสำหรับบัญชีการสนับสนุนด้วยเช่นกัน
ingernet

นี่ยังคงเป็นช่วงเวลาที่แย่ที่สุดในอาชีพ 22 ปีของฉัน !! ทั้ง บริษัท ที่มีนักพัฒนาซอฟต์แวร์อัจฉริยะ 15 คนไม่สามารถหาวิธีปิด GAE ได้ เรารู้ว่าลูกค้าได้รับอีเมลหลายล้านฉบับเมื่อนักพัฒนาคนหนึ่งของฉันไม่สามารถเข้าถึงบัญชี GMail ของเธอได้ ไม่สามารถถอดปลั๊กได้
Theodore

4

โปรดทราบว่าหากคุณยังคงต้องการให้แอปของคุณมีการปรับขนาดอัตโนมัติ แต่คุณไม่ต้องการให้ค่าเริ่มต้นขั้นต่ำ 2 อินสแตนซ์ทำงานตลอดเวลาคุณสามารถกำหนดค่า app.yaml ของคุณได้ดังนี้:

runtime: nodejs
env: flex
automatic_scaling:
  min_num_instances: 1

ฉันคิดว่าคุณหมายถึงmax_num_instances?
Dominic

4
ไม่มีตัวเลือกในการ จำกัด อินสแตนซ์อย่างแน่นอน การหมุนอินสแตนซ์ 1,000 อินสแตนซ์ระหว่างการโจมตี DDoS และการเรียกเก็บเงินจากลูกค้า $ 1,000 เป็นกลยุทธ์ทางธุรกิจของ GCP
Theodore

2
@ TheodoreR.Smith จริงกับสูงสุดที่คุณทำได้และยังกำหนดขีด จำกัด รายวัน
zardilior

3
@Dominic min_num_instancesถูกต้องที่นี่หากคุณต้องการประหยัดเงินในขณะที่ไม่ได้ใช้งานโดยเสียค่าใช้จ่ายซ้ำซ้อน @Theodore นอกจากนี้ยังมีmax_num_instancesอินสแตนซ์ จำกัด แต่คุณไม่สามารถกำหนดวงเงินการใช้จ่ายในชีวิตประจำวันบน App Engine ที่มีความยืดหยุ่น ( แต่คุณสามารถบนมาตรฐาน) อย่างไรก็ตามคุณสามารถตั้งค่างบประมาณและการแจ้งเตือนได้
jon_wu

4

เนื่องจากไม่มีใครกล่าวถึงนี่คือคำสั่ง gcloud ที่เกี่ยวข้องกับเวอร์ชัน

# List all versions
$ gcloud app versions list

SERVICE  VERSION.ID       TRAFFIC_SPLIT  LAST_DEPLOYED              SERVING_STATUS
default  20200620t174631  0.00           2020-06-20T17:46:56+03:00  SERVING
default  20200620t174746  0.00           2020-06-20T17:48:12+03:00  SERVING
default  prod             1.00           2020-06-20T17:54:51+03:00  SERVING

# Delete these 2 versions (you can't delete all versions, you have to have at least one remaining)
$ gcloud app versions delete 20200620t174631 20200620t174746

# Help
$ gcloud app versions --help

1

สำหรับสภาพแวดล้อมการพัฒนาที่ฉันไม่สนใจเวลาแฝงเล็กน้อยฉันใช้การตั้งค่าต่อไปนี้:

instance_class: B1
basic_scaling:
  max_instances: 1
  idle_timeout: 1m

และหากคุณใช้อินสแตนซ์ของคุณมากกว่าค่าเผื่ออินสแตนซ์แบ็กเอนด์ฟรีให้ลองสิ่งนี้:

instance_class: F1
automatic_scaling:
  max_instances: 1

มันคือแดชบอร์ด AppEngine ดูอินสแตนซ์จดเวลาเริ่มต้นและเฝ้าดูเพื่อให้แน่ใจว่าหลังจากช่วง idle_timeout ได้ผ่านการลดจำนวนอินสแตนซ์เป็นศูนย์และคุณจะเห็นข้อความ "เวอร์ชันนี้ไม่มีอินสแตนซ์ที่ใช้งานได้"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.