هذا المستند مخصص للمهندسين المعماريين والأشخاص الذين يعملون في العمليات و فرق ادارية. يصف المستند نموذجًا لنمط يمكنك استخدامه لعمليات النشر الخاصة بك في Google Cloud. في هذا النمط ، يوجه موازن التحميل حركة المرور إلى حساب المحرك حالات في مجموعات المثيل المُدارة التي تخدم المحتوى. في حالة انقطاع التيار ، تقوم بتحديث ملف موازنة تحميل HTTP (S) الخارجية التكوين والفشل في الوصول إلى موقع ثابت بتنسيق سحابة التخزين. لإكمال هذا البرنامج التعليمي ، تحتاج إلى اسم مجال مسجل تتحكم فيه وتريد استخدامها مع هذا المستند. في عمليات نشر الإنتاج ، من المحتمل أن يشتمل موقع الويب الخاص بك على العديد من الملفات وملفات رمز تطبيق إضافي على الأجهزة الظاهرية لمجموعة المثيل المُدارة (VMs) مما هو موضح في هذا المستند. ثم يستضيف التخزين السحابي المزيد إصدار ثابت محدود يوفر الحد الأدنى من الوظائف. في تجاوز الفشل الدافئ سيناريو ، يرى المستخدمون موقع الويب المحدود هذا حتى مجموعات المثيل المُدارة استرداد ويمكن أن تخدم حركة المرور لتجربة موقع الويب الكاملة. في هذا البرنامج التعليمي ، تقوم بنشر الموارد لإنشاء بيئة كما هو موضح في ملف الصورة التالية: عندما تحتاج إلى تجاوز الفشل ، تقوم بتحديث تكوين موازن التحميل للتوجيه حركة المرور إلى Cloud Storage ، كما هو موضح في الصورة التالية: يوازن نمط تجاوز الفشل الدافئ هذا تكلفة تشغيل آخر مُدار مجموعة المثيل في منطقة مختلفة لا تستخدمها إلا عندما تكون المناطق الأساسية يفشل. تكلفة موقع ثابت باستخدام Cloud Storage أقل من تكلفة التشغيل مجموعة مثيل مُدارة أخرى ، ولكن هناك تأخير قصير أثناء تحديث التحميل تكوين الموازن بين خيارات الاستضافة. الموقع المحدود تجربة التخزين السحابي أفضل من موقع الويب غير المتاح والفقيرة تجربة الزبون. لنهج بديل يستخدم Cloud DNS بدلاً من خارجي HTTP (S) Load Balancing للتحكم في تجاوز الفشل ، راجع انشر خادم ويب قابل للاسترداد باستخدام Cloud DNS مع Compute Engine و Cloud Storage. هذا النمط مفيد إذا كان لديك Cloud DNS أو تريد استخدامه. لتشغيل تطبيقات موثوقة في Google Cloud ، نوصيك بالتصميم البنية التحتية للتطبيق الخاص بك للتعامل مع حالات الانقطاع. حسب طلبك واحتياجات العمل ، فقد تحتاج إلى تجاوز فشل بارد أو فشل دافئ أو ساخن نمط تجاوز الفشل. لمزيد من المعلومات حول كيفية تحديد أفضل نهج لـ تطبيقاتك الخاصة ، راجع دليل تخطيط التعافي من الكوارث. يستخدم هذا المستند أساسيات خادم الويب Apache ، لكن نفس النهج لنشر البنية التحتية ينطبق على الآخرين بيئات التطبيق التي تحتاج إلى إنشائها. ## أهداف - - إنشاء مجموعات مثيل مُدارة إقليمية باستخدام صورة VM مخصصة. - إنشاء حاوية التخزين السحابي. - إنشاء وتكوين موازنة تحميل HTTP (S) خارجية. - اختبر تجاوز فشل خادم الويب الدافئ باستخدام موازن تحميل محدث إعدادات. - اختبر الاسترداد وإرجاع الفشل باستخدام تكوين موازن تحميل محدث. ## التكاليف يستخدم هذا البرنامج التعليمي المكونات التالية القابلة للفوترة من Google Cloud: - - حساب المحرك - الشبكات - سحابة التخزين لإنشاء تقدير التكلفة بناءً على الاستخدام المتوقع ، استخدم حاسبة التسعير. ## قبل ان تبدأ - - قم بتسجيل الدخول إلى حساب Google Cloud الخاص بك. إذا كنت جديدًا على جوجل كلاود ، إنشاء حساب لتقييم أداء منتجاتنا سيناريوهات العالم الحقيقي. يحصل العملاء الجدد أيضًا على 300 دولار من الائتمانات المجانية لـ تشغيل واختبار ونشر أحمال العمل. - في وحدة تحكم Google Cloud ، في صفحة محدد المشروع ، حدد أو أنشئ مشروع Google Cloud. - تأكد من تمكين الفوترة لمشروع Cloud الخاص بك. تعلم كيف تحقق مما إذا تم تمكين الفوترة في المشروع. - تمكين Compute Engine API. - قم بتثبيت وتهيئة Google Cloud CLI. - في وحدة تحكم Google Cloud ، في صفحة محدد المشروع ، حدد أو أنشئ مشروع Google Cloud. - تأكد من تمكين الفوترة لمشروع Cloud الخاص بك. تعلم كيف تحقق مما إذا تم تمكين الفوترة في المشروع. - تمكين Compute Engine API. - قم بتثبيت وتهيئة Google Cloud CLI. يمكنك تشغيل Google Cloud CLI في ملف وحدة التحكم دون تثبيت Google Cloud CLI. لتشغيل gcloud CLI في ملف وحدة التحكم ، استخدم Cloud Shell ## إعداد البيئة في هذا القسم ، تقوم بتعريف بعض المتغيرات لأسماء الموارد الخاصة بك و المواقع. يتم استخدام هذه المتغيرات بواسطة أوامر Google Cloud CLI مثلك نشر الموارد. في هذا المستند ، ما لم يُذكر خلاف ذلك ، تقوم بإدخال جميع الأوامر شل السحابة أو بيئة التنمية المحلية الخاصة بك. - يستبدل مع معرف المشروع الخاص بك. اذا رغب، توفير لاحقة الاسم الخاص بك للموارد للمساعدة في البحث عن والتعرف منهم ، مثل معرف المشروع برنامج حدد منطقتين ، مثل و us-west1 ، ومنطقة داخل إحدى تلك المناطق ، مثل غرب الولايات المتحدة 2 . تحدد هذه المنطقة مكان القاعدة الافتراضية VM يتم إنشاؤه ليتم استخدامه لإنشاء صورة لمجموعة المثيلات المُدارة الولايات المتحدة- west1-a أخيرًا ، قم بتعيين مجال يستخدم لموقع الويب الثابت الخاص بك ، مثل example.com PROJECT_ID = معرف المشروع NAME_SUFFIX = التطبيق REGION1 = us-west1 REGION2 = us-west2 المنطقة = us-west1-a المجال = example.com ## إنشاء VPC والشبكة الفرعية لتوفير وصول الشبكة إلى أجهزة VM ، تقوم بإنشاء Virtual Private Cloud (VPC) والشبكات الفرعية. نظرًا لأنك بحاجة إلى مجموعات مثيل مُدارة في منطقتين ، يمكنك إنشاء واحدة الشبكة الفرعية في كل منطقة. لمزيد من المعلومات حول مزايا العرف وضع الشبكة الفرعية لإدارة نطاقات عناوين IP المستخدمة في بيئتك ، راجع استخدم شبكات VPC ذات الوضع المخصص. - قم بإنشاء VPC باستخدام وضع الشبكة الفرعية المخصص: تنشئ شبكات حساب gcloud شبكة- $ NAME_SUFFIX - وضع الشبكة الفرعية = مخصص الآن قم بإنشاء شبكتين فرعيتين في VPC الجديد ، واحدة لكل منهما منطقة. تحديد نطاقات العناوين الخاصة بك ، مثل و 10.1.0.0/20 ، الذي - التي تناسب نطاق شبكتك: 10.2.0.0/20 تنشئ الشبكات الفرعية لشبكات حساب gcloud n شبكة فرعية- $ NAME_SUFFIX- $ REGION1 n - الشبكة = الشبكة- $ NAME_SUFFIX n --range = 10.1.0.0/20n - المنطقة = $ REGION1 تنشئ الشبكات الفرعية لشبكات gcloud n شبكة فرعية- $ NAME_SUFFIX- $ REGION2 n - الشبكة = الشبكة- $ NAME_SUFFIX n - النطاق = 10.2.0.0/20n - المنطقة = $ REGION2 ## إنشاء قواعد جدار الحماية للسماح لحركة مرور الشبكة بالتدفق بشكل صحيح في VPC ، استخدم قواعد جدار الحماية. - أنشئ قواعد جدار الحماية للسماح بحركة مرور الويب والفحوصات الصحية للتحميل الموازن ومجموعات المثيل المُدارة: إنشاء قواعد جدار الحماية لحساب gcloud allow-http- $ NAME_SUFFIX n - الشبكة = الشبكة- $ NAME_SUFFIX n - الاتجاه = INGRESS n - الأولوية = 1000 n - الإجراء = السماح n - القواعد = tcp: 80 n - نطاقات المصدر = 0.0.0.0 / 0 n - علامات الهدف = خادم http gcloud حساب قواعد جدار الحماية إنشاء allow-health-check- $ NAME_SUFFIX n --network = network- $ NAME_SUFFIX n --action = allow n --direction = ingress n --source-ranges = 130.211.0.0 / 22،35.191. 0.0 / 16 n - العلامات المستهدفة = allow-health-check n --rules = tcp: 80 تسمح قاعدة HTTP بحركة المرور إلى أي جهاز افتراضي حيث يكون ملف يتم تطبيق http-servertag ، ومن أي مصدر باستخدام ملف 0.0.0.0/0 النطاق. بالنسبة إلى قاعدة الفحص الصحي ، تم تعيين النطاقات الافتراضية لـ Google Cloud للسماح للمنصة بالعمل بشكل صحيح التحقق من صحة الموارد. للسماح بحركة مرور SSH للتكوين الأولي لصورة VM أساسية ، النطاق قاعدة جدار الحماية لبيئتك باستخدام --مصدر المدى. قد تحتاج إلى العمل مع فريق الشبكة لديك لتحديد نطاقات المصدر تستخدم مؤسستك يستبدل باستخدام نطاقات عناوين IP الخاصة بك: IP_ADDRESS_SCOPE إنشاء قواعد جدار الحماية في gcloud allow-ssh- $ NAME_SUFFIX n - الشبكة = الشبكة- $ NAME_SUFFIX n - الاتجاه = INGRESS n - الأولوية = 1000 n - الإجراء = السماح n - القواعد = tcp: 22 n - نطاقات المصدر = IP_ADDRESS_SCOPE بعد إنشاء قواعد جدار الحماية ، تحقق من أن القواعد الثلاثة كانت مضاف: gcloud حساب قائمة قواعد جدار الحماية n - المشروع = $ PROJECT_ID n - عامل التصفية = "NETWORK = network- $ NAME_SUFFIX"يوضح إخراج المثال التالي أن القواعد الثلاث كانت صحيحة مخلوق: السماح بأولوية اتجاه شبكة الاسم allow-health-check-app network-app INGRESS 1000 tcp: 80 allow-http-app network-app INGRESS 1000 tcp: 80 allow-ssh-app network-app INGRESS 1000 tcp: 22 ## إنشاء وتكوين صورة VM أساسية لإنشاء أجهزة افتراضية متطابقة تقوم بنشرها بدون تكوين إضافي ، أنت استخدام صورة VM مخصصة. تلتقط هذه الصورة تكوين نظام التشغيل و Apache ، و يُستخدم لإنشاء كل جهاز افتراضي في مجموعة المثيلات المُدارة في الخطوات التالية. على الجهاز الظاهري ، تقوم بإنشاء ملف ملف index.html على القرص الدائم وملفات قم بتثبيته على /var/www/example.com. يوجد ملف تكوين Apache في /etc/apache2/sites-available/example.com.conf يقدم محتوى ويب من موقع القرص الثابت المثبت يوضح الرسم التخطيطي التالي صفحة HTML الأساسية التي يقدمها Apache المخزنة على القرص الدائم: تقوم ببناء هذه البيئة في الخطوات التالية. - قم بإنشاء VM أساسي بقرص ثابت متصل: تنشئ مثيلات حساب gcloud vm-base- $ NAME_SUFFIX n --zone = $ ZONE n - نوع الآلة = n1-standard-1 n --subnet = subnet- $ NAME_SUFFIX- $ REGION1 n --tags = http-server n --image = debian-10-buster-v20210420 n --image-project = debian-cloud n - boot-disk-size = 10GB n - boot-disk-type = pd متوازن n - تمهيد القرص- اسم الجهاز = vm-base- $ NAME_SUFFIX n --create-disk = type = pd-ssd ، الاسم = قاعدة القرص- $ NAME_SUFFIX ، الحجم = 10 غيغابايت ، اسم الجهاز = قاعدة القرص- $ NAME_SUFFIX يمكنك استخدام المعلمات المحددة في بداية هذا المستند لتسمية VM و الاتصال بالشبكة الفرعية الصحيحة. يتم أيضًا تعيين الأسماء من معلمات قرص التمهيد وقرص البيانات. لتثبيت وتكوين موقع الويب البسيط ، قم بالاتصال بـ VM الأساسي باستخدام SSH: يحسب gcloud ssh vm-base- $ NAME_SUFFIX --zone = $ ZONE في جلسة SSH الخاصة بك إلى VM ، قم بإنشاء برنامج نصي لتكوين VM في ملف محرر من اختيارك. يستخدم المثال التالي نانو كمحرر: تكوين نانو- vm. الصق برنامج التكوين النصي التالي في الملف: بن / باش NAME_SUFFIX = برنامج # إنشاء دليل لملفات الموقع الأساسية sudo mkdir -p /var/www/example.com sudo chmod a + w /var/www/example.com sudo chown -R www-data: /var/www/example.com # ابحث عن اسم القرص ، ثم قم بتهيئته وتثبيته DISK_NAME = "google-disk-base- $ NAME_SUFFIX"DISK_PATHfind / dev / disk / by-id -name DISK_NAME} "| xargs -Ireadlink -f n sudo mkfs.ext4 -m 0 -E lazy_itable_init = 0، lazy_journal_init = 0 ، تجاهل $ DISK_PATH sudo mount -o تجاهل ، افتراضيات $ DISK_PATH /var/www/example.com # تثبيت اباتشي sudo apt-get update&& sudo apt-get -y قم بتثبيت apache2 # اكتب ملف HTML أساسي على القرص الثابت المثبت sudo tee -a /var/www/example.com/index.html>/ dev / null EOF ' مثال HA / DR

مرحبًا بكم في موقع ويب Compute Engine مع تجاوز فشل دافئ في Cloud Storagep>

*:80> ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined EOF # قم بتمكين ملف تكوين Apache وإعادة تحميل الخدمة sudo a2dissite 000-default sudo a2ensite example.com.conf تحميل sudo systemctl اباتشي 2 قم بتحديث ملف متغير لمطابقة القيمة المحددة في بداية هذا المستند ، مثل تطبيق NAME_SUFFIX. اكتب الملف واخرج من المحرر الخاص بك. على سبيل المثال ، في Nano الذي تستخدمه Ctrl-O لكتابة الملف ، ثم الخروج بامتداد السيطرة- X. اجعل نص التكوين قابلاً للتنفيذ ، ثم قم بتشغيله: chmod + x configuration-vm ../ configuration-vm. اخرج من جلسة SSH إلى الجهاز الظاهري: مخرج احصل على عنوان IP الخاص بـ VM واستخدمه curl لمشاهدة صفحة الويب الأساسية: curl $ (تصف مثيلات حساب gcloud vm-base- $ NAME_SUFFIX n --zone $ ZONE n --format = "value (networkInterfaces.accessConfigs. [0] .natIPn يتم إرجاع موقع الويب الأساسي ، كما هو موضح في إخراج المثال التالي: مثال HA / DR

مرحبًا بكم في موقع ويب Compute Engine مع تجاوز فشل دافئ في Cloud Storagep>

إنشاء صور لحساب gcloud قرص صورة- $ NAME_SUFFIX n --source-disk = disk-base- $ NAME_SUFFIX n --source-disk-zone = $ ZONE # إنشاء قوالب المثيل قوالب إنشاء نماذج حساب gcloud- $ NAME_SUFFIX- $ REGION1 n - نوع الجهاز = n1-standard-1 n --subnet = projects / $ PROJECT_ID / region / $ REGION1 / subnetworks / subnet- $ NAME_SUFFIX- $ REGION1 n - المنطقة = $ REGION1 n --tags = http-server n --metadatastartup-script / bin / bashn'echo \ UUIDblkid \ -s \ UUID \ -o \ value \ / dev / sdb / var / www / example. com \ ext4 \ تجاهل ، الإعدادات الافتراضية ، nofail \ 0 \ 2 ee \ -a \ / etc / fstabn'mount \ -a n - image = image- $ NAME_SUFFIX n - إنشاء قرص = صورة = صورة قرص- $ NAME_SUFFIX ، حذف تلقائي = نعم قوالب إنشاء نماذج حساب gcloud- $ NAME_SUFFIX- $ REGION2 n - نوع الجهاز = n1-standard-1 n --subnet = projects / $ PROJECT_ID / areas / $ REGION2 / subnetworks / subnet- $ NAME_SUFFIX- $ REGION2 n - المنطقة = $ REGION2 n --tags = http-server n --metadatastartup-script / bin / bashn'echo \ UUIDblkid \ -s \ UUID \ -o \ value \ / dev / sdb / var / www / example. com \ ext4 \ تجاهل ، الإعدادات الافتراضية ، nofail \ 0 \ 2 ee \ -a \ / etc / fstabn'mount \ -a n - image = image- $ NAME_SUFFIX n - إنشاء قرص = صورة = صورة قرص- $ NAME_SUFFIX ، حذف تلقائي = نعم # إنشاء فحص صحي لمثيلات VM gcloud compute health-check-check- إنشاء http-basic-check- $ NAME_SUFFIX n --port 80 # إنشاء مجموعات المثيل المُدارة مجموعات مثيلات حساب gcloud المُدارة إنشاء مجموعة مثيل- $ NAME_SUFFIX- $ REGION1 n --template = نموذج- $ NAME_SUFFIX- $ REGION1 n - الحجم = 2 n - منطقة = $ REGION1 n - فحص الصحة = http- الفحص الأساسي- $ NAME_SUFFIX gcloud compute compute- إنشاء مجموعات مثيل- $ NAME_SUFFIX- $ REGION2 n --template = template- $ NAME_SUFFIX- $ REGION2 n --size = 2 n --region = $ REGION2 n --health-check = http- الفحص الأساسي- $ NAME_SUFFIX ## إنشاء وتكوين موازن التحميل لكي يتمكن المستخدمون من الوصول إلى موقع الويب الخاص بك ، تحتاج إلى السماح بالمرور عبر الأجهزة الافتراضية التي يتم تشغيلها في مجموعات المثيل المُدارة. تريد أيضًا إعادة التوجيه تلقائيًا حركة المرور إلى أجهزة ظاهرية جديدة إذا كان هناك فشل منطقة في مجموعة مثيل مُدارة. في القسم التالي ، يمكنك إنشاء ملف موازن التحميل الخارجي مع خدمة الخلفية لحركة مرور HTTP على المنفذ 80 ، استخدم الفحص الصحي الذي تم إنشاؤه في الخطوات السابقة ، وقم بتعيين عنوان IP خارجي العنوان من خلال خدمة الواجهة الخلفية. لمزيد من المعلومات، راجع كيفية إعداد موازن تحميل HTTP خارجي بسيط. - قم بإنشاء وتكوين موازن التحميل لتطبيقك: # تكوين قواعد المنفذ لمنفذ HTTP 80 gcloud حساب مجموعات المثيلات مجموعة - منافذ - مجموعة مثيل - $ NAME_SUFFIX- $ REGION1 n - منافذ مسماة http: 80 n - منطقة $ REGION1 gcloud حساب مجموعات المثيلات مجموعة - منافذ n مجموعة مثيل- $ NAME_SUFFIX- $ REGION2 n - منافذ مسماة http: 80 n - منطقة $ REGION2 # إنشاء خدمة خلفية وإضافة مجموعات المثيل المُدارة إليها خدمات الواجهة الخلفية لحساب gcloud تنشئ n web-backend-service- $ NAME_SUFFIX n - بروتوكول = HTTP n --port-name = http n --health-check = http-basic-check- $ NAME_SUFFIX n - global gcloud compute backend services add-backend n web-backend-service- $ NAME_SUFFIX n --instance-group = example-group- $ NAME_SUFFIX- $ REGION1 n --instance-group-region = $ REGION1 n - global gcloud compute backend services add-backend n web-backend-service- $ NAME_SUFFIX n --instance-group = example-group- $ NAME_SUFFIX- $ REGION2 n --instance-group-region = $ REGION2 n - global # إنشاء خريطة URL للخدمة الخلفية gcloud compute url-maps create web-map-http- $ NAME_SUFFIX n - default-service web-backend-service- $ NAME_SUFFIX # تكوين إعادة التوجيه لحركة مرور HTTP يقوم gcloud بحساب target-http-proxies بإنشاء n http-lb-proxy- $ NAME_SUFFIX n --url-map web-map-http- $ NAME_SUFFIX إنشاء قواعد إعادة توجيه حساب gcloud n http-content-rule- $ NAME_SUFFIX n - global n --target-http-proxy = http-lb-proxy- $ NAME_SUFFIX n --ports = 80 احصل على عنوان IP الخاص بقاعدة إعادة التوجيه لحركة مرور الويب: IP_ADDRESS تصف قواعد إعادة توجيه حساب gcloud http-content-rule- $ NAME_SUFFIX n - global n --format = "value (IPAddressn يستخدم curl ، أو افتح متصفح الويب الخاص بك ، لعرض موقع الويب باستخدام IP عنوان موازن التحميل من الخطوة السابقة: حليقة $ IP_ADDRESS يستغرق موازن التحميل بضع دقائق لإنهاء نشره وإليه بشكل صحيح توجيه حركة المرور إلى الخلفية الخاصة بك. يتم إرجاع خطأ HTTP 404 إذا كان الملف لا يزال يتم نشر موازن التحميل. إذا لزم الأمر ، انتظر بضع دقائق وحاول الوصول إلى الموقع مرة أخرى. يتم إرجاع موقع الويب الأساسي ، كما هو موضح في إخراج المثال التالي: مثال HA / DR

مرحبًا بكم في موقع ويب Compute Engine مع تجاوز فشل دافئ في Cloud Storagep>

تستعيد مجموعات المثيل المُدارة ويمكنها خدمة حركة المرور لموقع الويب الكامل خبرة. - تحقق من المجال التي تريد استخدامها مع حاوية التخزين السحابي الخاصة بك. قم بإنشاء حاوية التخزين السحابي لمطابقة اسم المجال الذي تملكه وتريد استخدام: gsutil mb gsstatic-web. $ DOMAIN ال المجال المتغير المحدد في بداية هذا المستند مستخدم ، مثل . يخزن هذا المثال الملفات الثابتة في example.com static-web.example.com. أنشئ ملفًا محليًا تنسخه إلى حاوية التخزين السحابي في ملف الخطوة التالية: cat< index.html HA / DR example

Welcome to a test static web server with warm failover from Cloud Storagep>

HA / DR example

Welcome to a test static web server with warm failover from Cloud Storagep>

curlagain, or open your web browser, to access the IP address of the load balancer: curl $IP_ADDRESS It might take a few minutes for the load balancer to update the configuration and to correctly direct traffic back to your managed instance groups. If needed, wait a few minutes and try to access the website again. The main website from the managed instance groups is returned, as shown in the following example output: HA / DR example p>Welcome to a Compute Engine website with warm failover to Cloud Storagep> ## Clean up To avoid incurring charges to your Google Cloud account for the resources used in this tutorial, either delete the project that contains the resources, or keep the project and delete the individual resources. To delete the individual resources created in this document, complete the following steps: - Delete the Cloud Storage bucket: gsutil rm -r gsstatic-web.$DOMAIN Delete the load balancer configuration: gcloud compute forwarding-rules delete n http-content-rule-$NAME_SUFFIX --global --quiet gcloud compute target-http-proxies delete n http-lb-proxy-$NAME_SUFFIX --quiet gcloud compute url-maps delete web-map-http-$NAME_SUFFIX --quiet gcloud compute url-maps delete web-map-http-bucket-$NAME_SUFFIX --quiet gcloud compute backend-services delete n web-backend-service-$NAME_SUFFIX --global --quiet gcloud compute backend-buckets delete web-bucket-$NAME_SUFFIX --quiet Delete the managed instance groups and health check: gcloud compute instance-groups managed delete n instance-group-$NAME_SUFFIX-$REGION1 n --region=$REGION1 --quiet gcloud compute instance-groups managed delete n instance-group-$NAME_SUFFIX-$REGION2 n --region=$REGION2 --quiet gcloud compute health-checks delete http-basic-check-$NAME_SUFFIX --quiet Delete the instance templates, images, base VM, and persistent disks: gcloud compute instance-templates delete n template-$NAME_SUFFIX-$REGION1 --quiet gcloud compute instance-templates delete n template-$NAME_SUFFIX-$REGION2 --quiet gcloud compute images delete image-$NAME_SUFFIX --quiet gcloud compute images delete image-disk-$NAME_SUFFIX --quiet gcloud compute instances delete vm-base-$NAME_SUFFIX n --zone=$ZONE --quiet Delete the firewall rules. gcloud compute firewall-rules delete n allow-health-check-$NAME_SUFFIX --quiet gcloud compute firewall-rules delete n allow-ssh-$NAME_SUFFIX --quiet gcloud compute firewall-rules delete n allow-http-$NAME_SUFFIX --quiet Delete the subnet and VPC. gcloud compute networks subnets delete n subnet-$NAME_SUFFIX-$REGION1 --region=$REGION1 --quiet gcloud compute networks subnets delete n subnet-$NAME_SUFFIX-$REGION2 --region=$REGION2 --quiet gcloud compute networks delete network-$NAME_SUFFIX --quiet ## What's next - - For an alternative approach that uses Cloud DNS instead of external HTTP(S) Load Balancing to control the failover, see Deploy a warm recoverable web server using Cloud DNS with Compute Engine and Cloud Storage. This pattern is useful if you have, or want to use, Cloud DNS. - To learn how how to determine the best approach for your own applications and which recovery method to use, see the Disaster recovery planning guide. - To see other patterns for applications, such as cold and hot failover, see Disaster recovery scenarios for applications. - For more ways to handle scale and availability, see the Patterns for scalable and resilient apps. - Explore reference architectures, diagrams, tutorials, and best practices about Google Cloud. Take a look at our Cloud Architecture Center.