เอกสารนี้มีไว้สำหรับสถาปนิกและผู้ที่ทำงานด้านปฏิบัติการและ ทีมบริหาร เอกสารอธิบายรูปแบบตัวอย่างที่คุณสามารถใช้ได้ สำหรับการใช้งานของคุณเองใน Google Cloud ในรูปแบบนี้ ตัวจัดสรรภาระงานจะกำหนดทิศทางการรับส่งข้อมูลไปยัง คอมพิวติ้งเอ็นจิ้น อินสแตนซ์ใน กลุ่มอินสแตนซ์ที่มีการจัดการ ที่ให้บริการเนื้อหา ในการหยุดทำงาน คุณอัปเดต โหลดบาลานซ์ HTTP(S) ภายนอก การกำหนดค่าและล้มเหลวไปยังไซต์คงที่ใน การจัดเก็บเมฆ. เพื่อให้บทช่วยสอนนี้สมบูรณ์ คุณต้องมีชื่อโดเมนจดทะเบียนที่คุณเป็นผู้ควบคุม และต้องการใช้กับเอกสารนี้ ในการปรับใช้จริง เว็บไซต์ของคุณน่าจะมีไฟล์จำนวนมากขึ้นและ รหัสแอปพลิเคชันเพิ่มเติมบนเครื่องเสมือนกลุ่มอินสแตนซ์ที่มีการจัดการของคุณ (VMs) กว่าที่แสดงในเอกสารนี้ Cloud Storage โฮสต์เพิ่มเติม เวอร์ชันสแตติกจำกัดที่ให้ฟังก์ชันการทำงานน้อยที่สุด ในความล้มเหลวที่อบอุ่น สถานการณ์ ผู้ใช้จะเห็นเว็บไซต์ที่จำกัดนี้จนถึงกลุ่มอินสแตนซ์ที่มีการจัดการ คืนสภาพและให้บริการทราฟฟิกได้อย่างเต็มอรรถรส ในบทช่วยสอนนี้ คุณจะปรับใช้ทรัพยากรเพื่อสร้างสภาพแวดล้อมตามที่แสดงใน ภาพต่อไปนี้: เมื่อคุณต้องการล้มเหลว คุณต้องอัปเดตการกำหนดค่าโหลดบาลานเซอร์เพื่อสั่งการ การรับส่งข้อมูลไปยัง Cloud Storage ดังที่แสดงในภาพต่อไปนี้: รูปแบบเฟลโอเวอร์ที่อบอุ่นนี้ช่วยรักษาสมดุลของค่าใช้จ่ายในการดำเนินการอื่นที่ได้รับการจัดการ กลุ่มอินสแตนซ์ในภูมิภาคอื่นที่คุณใช้เมื่อภูมิภาคหลักเท่านั้น ล้มเหลว. ค่าใช้จ่ายของไซต์แบบสแตติกที่ใช้ Cloud Storage นั้นต่ำกว่าการใช้งาน กลุ่มอินสแตนซ์ที่มีการจัดการอื่น แต่มีความล่าช้าเล็กน้อยเมื่อคุณอัปเดตการโหลด การกำหนดค่าบาลานเซอร์ระหว่างตัวเลือกการโฮสต์ เว็บไซต์จำกัด ประสบการณ์ใน Cloud Storage ดีกว่าเว็บไซต์ที่ไม่พร้อมใช้งานและแย่ ประสบการณ์ของลูกค้า สำหรับแนวทางอื่นที่ใช้ Cloud DNS แทนภายนอก HTTP(S) Load Balancing เพื่อควบคุมการเฟลโอเวอร์ โปรดดู ปรับใช้เว็บเซิร์ฟเวอร์ที่อบอุ่นกู้คืนได้โดยใช้ Cloud DNS พร้อม Compute Engine และ Cloud Storage รูปแบบนี้มีประโยชน์หากคุณมีหรือต้องการใช้ Cloud DNS ในการเรียกใช้แอปพลิเคชันที่เชื่อถือได้ใน Google Cloud เราขอแนะนำให้คุณออกแบบ โครงสร้างพื้นฐานแอปพลิเคชันของคุณเพื่อจัดการกับการหยุดทำงาน ขึ้นอยู่กับการสมัครของคุณ และความต้องการทางธุรกิจ คุณอาจต้องการเฟลโอเวอร์แบบเย็น เฟลโอเวอร์แบบอุ่น หรือแบบร้อน รูปแบบความล้มเหลว สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดแนวทางที่ดีที่สุดสำหรับ แอปพลิเคชันของคุณเอง ดูที่ คู่มือการวางแผนการกู้คืนจากภัยพิบัติ เอกสารนี้ใช้พื้นฐาน อาปาเช่ เว็บเซิร์ฟเวอร์, แต่แนวทางเดียวกันกับการปรับใช้โครงสร้างพื้นฐานใช้กับสิ่งอื่นๆ สภาพแวดล้อมแอปพลิเคชันที่คุณต้องสร้าง ##วัตถุประสงค์ - - สร้างกลุ่มอินสแตนซ์ที่มีการจัดการระดับภูมิภาคด้วยอิมเมจ VM ที่กำหนดเอง - สร้างที่เก็บข้อมูลบนคลาวด์ - สร้างและกำหนดค่า HTTP(S) Load Balancing ภายนอก - ทดสอบความล้มเหลวของเซิร์ฟเวอร์เว็บที่อบอุ่นด้วยโหลดบาลานเซอร์ที่อัปเดตแล้ว การกำหนดค่า - ทดสอบการกู้คืนและการย้อนกลับด้วยการกำหนดค่าโหลดบาลานเซอร์ที่อัปเดต ## ค่าใช้จ่าย บทแนะนำนี้ใช้องค์ประกอบที่เรียกเก็บเงินได้ต่อไปนี้ของ Google Cloud: - - โปรแกรมคอมพิวเตอร์ - เครือข่าย - การจัดเก็บเมฆ ในการสร้างประมาณการค่าใช้จ่ายตามการใช้งานที่คาดการณ์ไว้ของคุณ ใช้เครื่องคำนวณราคา ## ก่อนที่จะเริ่ม - - ลงชื่อเข้าใช้บัญชี Google Cloud ของคุณ หากคุณยังใหม่กับ Google คลาวด์ สร้างบัญชีเพื่อประเมินประสิทธิภาพของผลิตภัณฑ์ของเรา สถานการณ์ในโลกแห่งความเป็นจริง ลูกค้าใหม่ยังได้รับเครดิตฟรีมูลค่า $300 เรียกใช้ ทดสอบ และปรับใช้เวิร์กโหลด - ใน Google Cloud Console ในหน้าตัวเลือกโครงการ เลือกหรือสร้างโครงการ Google Cloud - ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ระบบคลาวด์แล้ว เรียนรู้วิธีการ ตรวจสอบว่ามีการเปิดใช้งานการเรียกเก็บเงินในโครงการหรือไม่ - เปิดใช้งาน Compute Engine API - ติดตั้งและเริ่มต้น Google Cloud CLI - ใน Google Cloud Console ในหน้าตัวเลือกโครงการ เลือกหรือสร้างโครงการ Google Cloud - ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ระบบคลาวด์แล้ว เรียนรู้วิธีการ ตรวจสอบว่ามีการเปิดใช้งานการเรียกเก็บเงินในโครงการหรือไม่ - เปิดใช้งาน Compute Engine API - ติดตั้งและเริ่มต้น Google Cloud CLI คุณสามารถเรียกใช้ Google Cloud CLI ได้ใน คอนโซลโดยไม่ต้องติดตั้ง Google Cloud CLI ในการเรียกใช้ gcloud CLI ในไฟล์ คอนโซล ใช้ Cloud Shell ##เตรียมสิ่งแวดล้อม ในส่วนนี้ คุณจะกำหนดตัวแปรบางอย่างสำหรับชื่อทรัพยากรและ สถานที่ ตัวแปรเหล่านี้ใช้โดยคำสั่ง Google Cloud CLI ในฐานะคุณ ปรับใช้ทรัพยากร ตลอดทั้งเอกสารนี้ เว้นแต่จะระบุไว้เป็นอย่างอื่น คุณต้องป้อนคำสั่งทั้งหมดลงใน คลาวด์เชลล์ หรือสภาพแวดล้อมการพัฒนาท้องถิ่นของคุณ - แทนที่ ด้วยรหัสโครงการของคุณเอง ถ้าต้องการ, ให้คำต่อท้ายชื่อของคุณเองสำหรับแหล่งข้อมูลเพื่อช่วยในการค้นหาและระบุ พวกเขาเช่น PROJECT_ID แอป ระบุสองภูมิภาค เช่น และ เรา-ตะวันตก1 และโซนภายในหนึ่งในภูมิภาคเหล่านั้น เช่น เรา-ตะวันตก2 . โซนนี้กำหนดตำแหน่งของ VM ฐานเริ่มต้น ถูกสร้างขึ้นเพื่อใช้สร้างอิมเมจสำหรับกลุ่มอินสแตนซ์ที่มีการจัดการ เรา-ตะวันตก1-ก สุดท้าย ตั้งค่าโดเมนที่ใช้สำหรับเว็บไซต์คงที่ของคุณ เช่น ตัวอย่าง.คอม PROJECT_ID= PROJECT_ID NAME_SUFFIX= แอป REGION1= เรา-ตะวันตก1 REGION2= เรา-ตะวันตก2 ZONE= เรา-ตะวันตก1-ก DOMAIN= example.com ## สร้าง VPC และซับเน็ต เพื่อให้การเข้าถึงเครือข่ายไปยัง VM คุณต้องสร้าง Virtual Private Cloud (VPC) และเครือข่ายย่อย เนื่องจากคุณต้องการกลุ่มอินสแตนซ์ที่ได้รับการจัดการในสองภูมิภาค คุณจึงสร้างกลุ่มดังกล่าวขึ้นมา เครือข่ายย่อยในแต่ละภูมิภาค สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อดีของการกำหนดเอง โหมดเครือข่ายย่อยเพื่อจัดการช่วงที่อยู่ IP ที่ใช้ในสภาพแวดล้อมของคุณ โปรดดูที่ ใช้เครือข่าย VPC โหมดกำหนดเอง - สร้าง VPC ด้วยโหมดเครือข่ายย่อยที่กำหนดเอง: เครือข่ายการคำนวณ gcloud สร้างเครือข่าย-$NAME_SUFFIX --subnet-mode=custom ตอนนี้สร้างสองซับเน็ตใน VPC ใหม่ หนึ่งซับเน็ตสำหรับแต่ละซับเน็ต ภูมิภาค. กำหนดช่วงที่อยู่ของคุณเอง เช่น และ 10.1.0.0/20 , นั่น พอดีกับช่วงเครือข่ายของคุณ: 10.2.0.0/20 เครือข่ายย่อยของเครือข่ายการคำนวณ gcloud สร้าง n เครือข่ายย่อย-$NAME_SUFFIX-$REGION1 n --network=network-$NAME_SUFFIX n --range= 10.1.0.0/20n --region=$REGION1 เครือข่ายย่อยของเครือข่ายการคำนวณ gcloud สร้าง n เครือข่ายย่อย-$NAME_SUFFIX-$REGION2 n --network=network-$NAME_SUFFIX n --range= 10.2.0.0/20n --region=$REGION2 ## สร้างกฎไฟร์วอลล์ เพื่อให้การรับส่งข้อมูลเครือข่ายไหลอย่างถูกต้องใน VPC ให้ใช้ กฎไฟร์วอลล์ - สร้างกฎไฟร์วอลล์เพื่ออนุญาตให้มีการเข้าชมเว็บและตรวจสอบความสมบูรณ์ของการโหลด บาลานเซอร์และกลุ่มอินสแตนซ์ที่มีการจัดการ: กฎไฟร์วอลล์คำนวณ gcloud สร้าง allow-http-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --direction=INGRESS n --priority=1000 n --action=ALLOW n --rules=tcp:80 n -- ช่วงแหล่งที่มา=0.0.0.0/0 n --target-tags=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 --target-tags=allow-health-check n --rules=tcp:80 กฎ HTTP อนุญาตให้รับส่งข้อมูลไปยัง VM ใดๆ ที่ ใช้ http-servertag และจากแหล่งใด ๆ โดยใช้ 0.0.0.0/0ช่วง สำหรับ กฎการตรวจสุขภาพ ช่วงเริ่มต้นสำหรับ Google Cloud ถูกตั้งค่าเพื่อให้แพลตฟอร์มทำงานได้อย่างถูกต้อง ตรวจสอบความสมบูรณ์ของทรัพยากร เพื่ออนุญาตการรับส่งข้อมูล SSH สำหรับการกำหนดค่าเริ่มต้นของอิมเมจ VM พื้นฐาน ขอบเขต กฎไฟร์วอลล์สำหรับสภาพแวดล้อมของคุณโดยใช้ --source-rangeparameter. คุณอาจต้องทำงานร่วมกับทีมเครือข่ายของคุณเพื่อกำหนดช่วงแหล่งที่มา องค์กรของคุณใช้ แทนที่ ด้วยขอบเขตที่อยู่ IP ของคุณเอง: IP_ADDRESS_SCOPE กฎไฟร์วอลล์คำนวณ gcloud สร้าง allow-ssh-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --direction=INGRESS n --priority=1,000 n --action=ALLOW n --rules=tcp:22 n -- ช่วงแหล่งที่มา = IP_ADDRESS_SCOPE หลังจากที่คุณสร้างกฎไฟร์วอลล์แล้ว ให้ตรวจสอบว่ามีกฎสามข้อ เพิ่ม: รายการกฎไฟร์วอลล์คำนวณ gcloud n --project=$PROJECT_ID n --filter="NETWORK=network-$NAME_SUFFIX"เอาต์พุตตัวอย่างต่อไปนี้แสดงกฎสามข้ออย่างถูกต้อง สร้าง: ชื่อ ลำดับความสำคัญของทิศทางเครือข่าย อนุญาต อนุญาตให้แอปตรวจสุขภาพแอปเครือข่าย INGRESS 1,000 tcp:80 อนุญาต-http-แอปเครือข่ายแอป INGRESS 1,000 tcp:80 อนุญาต ssh-app เครือข่ายแอป INGRESS 1,000 tcp:22 ## สร้างและกำหนดค่าอิมเมจ VM พื้นฐาน หากต้องการสร้าง VM ที่เหมือนกันซึ่งคุณปรับใช้โดยไม่มีการกำหนดค่าเพิ่มเติม คุณ ใช้อิมเมจ VM ที่กำหนดเอง ภาพนี้จับภาพการกำหนดค่า OS และ Apache และ ใช้เพื่อสร้างแต่ละ VM ในกลุ่มอินสแตนซ์ที่มีการจัดการในขั้นตอนถัดไป บน VM คุณสร้างพื้นฐาน ไฟล์ 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 --machine-type=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-balanced n --boot-disk- ชื่ออุปกรณ์=vm-base-$NAME_SUFFIX n --create-disk=type=pd-ssd,name=disk-base-$NAME_SUFFIX,size=10GB,device-name=disk-base-$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 อัปเดต&& 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 สพป # เปิดใช้งานไฟล์กำหนดค่า Apache และบริการโหลดซ้ำ sudo a2dissite 000-default sudo a2ensite example.com.conf sudo systemctl โหลด apache2 ใหม่ อัพเดท ตัวแปรให้ตรงกับค่าที่ตั้งไว้ จุดเริ่มต้นของเอกสารนี้ เช่น แอป NAME_SUFFIX เขียนไฟล์และออกจากโปรแกรมแก้ไขของคุณ ตัวอย่างเช่น ในนาโนที่คุณใช้ Ctrl-Oto เขียนไฟล์แล้วออกด้วย Ctrl-X ทำให้สคริปต์การกำหนดค่าเรียกใช้งานได้ จากนั้นเรียกใช้: chmod +x กำหนดค่า vm../configure-vm ออกจากเซสชัน SSH ไปยัง VM: ทางออก รับที่อยู่ 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 สร้าง image-disk-$NAME_SUFFIX n --source-disk=disk-base-$NAME_SUFFIX n --source-disk-zone=$ZONE # สร้างเทมเพลตตัวอย่าง เทมเพลตอินสแตนซ์การคำนวณ gcloud สร้างเทมเพลต-$NAME_SUFFIX-$REGION1 n --machine-type=n1-standard-1 n --subnet=projects/$PROJECT_ID/regions/$REGION1/subnetworks/subnet-$NAME_SUFFIX-$REGION1 n --region=$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 --create-disk=image=image-disk-$NAME_SUFFIX ,ลบอัตโนมัติ=ใช่ เทมเพลตอินสแตนซ์การคำนวณ gcloud สร้างเทมเพลต-$NAME_SUFFIX-$REGION2 n --machine-type=n1-standard-1 n --subnet=projects/$PROJECT_ID/regions/$REGION2/subnetworks/subnet-$NAME_SUFFIX-$REGION2 n --region=$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 --create-disk=image=image-disk-$NAME_SUFFIX ,ลบอัตโนมัติ=ใช่ # สร้างการตรวจสอบความสมบูรณ์สำหรับอินสแตนซ์ VM การตรวจสอบความสมบูรณ์ของการคำนวณ gcloud สร้าง http http-basic-check-$NAME_SUFFIX n --port 80 # สร้างกลุ่มอินสแตนซ์ที่มีการจัดการ กลุ่มอินสแตนซ์การคำนวณ gcloud ที่จัดการสร้างกลุ่มอินสแตนซ์-$NAME_SUFFIX-$REGION1 n --template=template-$NAME_SUFFIX-$REGION1 n --size=2 n --region=$REGION1 n --health-check=http- การตรวจสอบพื้นฐาน-$NAME_SUFFIX กลุ่มอินสแตนซ์การคำนวณ gcloud ที่จัดการสร้างกลุ่มอินสแตนซ์-$NAME_SUFFIX-$REGION2 n --template=template-$NAME_SUFFIX-$REGION2 n --size=2 n --region=$REGION2 n --health-check=http- การตรวจสอบพื้นฐาน-$NAME_SUFFIX ## สร้างและกำหนดค่าโหลดบาลานเซอร์ สำหรับผู้ใช้ในการเข้าถึงเว็บไซต์ของคุณ คุณต้องอนุญาตให้รับส่งข้อมูลผ่านไปยัง VM ที่ทำงานในกลุ่มอินสแตนซ์ที่มีการจัดการ คุณต้องการเปลี่ยนเส้นทางโดยอัตโนมัติ รับส่งข้อมูลไปยัง VM ใหม่หากมีโซนล้มเหลวในกลุ่มอินสแตนซ์ที่มีการจัดการ ในส่วนต่อไปนี้ คุณสร้าง ตัวจัดสรรภาระงานภายนอก ด้วยบริการแบ็กเอนด์สำหรับทราฟฟิก HTTP บนพอร์ต 80 ใช้การตรวจสอบความสมบูรณ์ที่สร้างขึ้นในขั้นตอนก่อนหน้า และแมป IP ภายนอก ที่อยู่ผ่านไปยังบริการแบ็กเอนด์ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ วิธีตั้งค่าตัวจัดสรรภาระงาน HTTP ภายนอกอย่างง่าย - สร้างและกำหนดค่าโหลดบาลานเซอร์สำหรับแอปพลิเคชันของคุณ: # กำหนดค่ากฎพอร์ตสำหรับพอร์ต HTTP 80 กลุ่มอินสแตนซ์คำนวณ gcloud ชุดชื่อพอร์ต n กลุ่มอินสแตนซ์-$NAME_SUFFIX-$REGION1 n --named-ports http:80 n --region $REGION1 กลุ่มอินสแตนซ์คำนวณ gcloud ชุดชื่อพอร์ต n กลุ่มอินสแตนซ์-$NAME_SUFFIX-$REGION2 n --named-ports http:80 n --region $REGION2 # สร้างบริการแบ็กเอนด์และเพิ่มกลุ่มอินสแตนซ์ที่มีการจัดการเข้าไป บริการแบ็กเอนด์คำนวณ gcloud สร้าง n web-backend-service-$NAME_SUFFIX n --protocol=HTTP n --port-name=http n --health-checks=http-basic-check-$NAME_SUFFIX n --global gcloud คำนวณบริการแบ็กเอนด์ add-backend n web-backend-service-$NAME_SUFFIX n --instance-group=instance-group-$NAME_SUFFIX-$REGION1 n --instance-group-region=$REGION1 n --global gcloud คำนวณบริการแบ็กเอนด์ add-backend n web-backend-service-$NAME_SUFFIX n --instance-group=instance-group-$NAME_SUFFIX-$REGION2 n --instance-group-region=$REGION2 n --global # สร้างแผนที่ URL สำหรับบริการแบ็กเอนด์ แผนที่ URL คำนวณ gcloud สร้าง web-map-http-$NAME_SUFFIX n --default-service web-backend-service-$NAME_SUFFIX # กำหนดค่าการส่งต่อสำหรับการรับส่งข้อมูล HTTP gcloud คำนวณเป้าหมาย 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_ADDRESSgcloud คำนวณกฎการส่งต่ออธิบาย http-content-rule-$NAME_SUFFIX n --global n --format="value(IPAddressn ใช้ curl หรือเปิดเว็บเบราว์เซอร์เพื่อดูเว็บไซต์โดยใช้ IP ที่อยู่ของตัวโหลดบาลานเซอร์จากขั้นตอนที่แล้ว: ขด $IP_ADDRESS ใช้เวลาสองสามนาทีเพื่อให้โหลดบาลานเซอร์ปรับใช้และเสร็จสิ้น นำทราฟฟิกไปยังแบ็กเอนด์ของคุณอย่างถูกต้อง ข้อผิดพลาด HTTP 404 จะถูกส่งกลับหาก ตัวจัดสรรภาระงานยังคงปรับใช้อยู่ หากจำเป็น ให้รอสักครู่แล้วลองทำดู เข้าเว็บไซต์อีกครั้ง เว็บไซต์พื้นฐานจะถูกส่งกลับ ดังที่แสดงในเอาต์พุตตัวอย่างต่อไปนี้: ตัวอย่าง HA/DR

ยินดีต้อนรับสู่เว็บไซต์ Compute Engine พร้อมการย้ายระบบคลาวด์ไปยัง Cloud Storagep>

กลุ่มอินสแตนซ์ที่ได้รับการจัดการจะกู้คืนและสามารถให้บริการการรับส่งข้อมูลสำหรับเว็บไซต์เต็มรูปแบบ ประสบการณ์. - ยืนยันโดเมน ที่คุณต้องการใช้กับที่เก็บข้อมูล Cloud Storage ของคุณ สร้างที่เก็บข้อมูล Cloud Storage เพื่อให้ตรงกับชื่อโดเมนที่คุณเป็นเจ้าของ และต้องการใช้: gsutil mb gsstatic-web.$DOMAIN เดอะ มีการใช้ตัวแปร DOMAIN ที่กำหนดไว้ที่จุดเริ่มต้นของเอกสารนี้ เช่น . ตัวอย่างนี้เก็บไฟล์สแตติกไว้ที่ ตัวอย่าง.คอม static-web.example.com. สร้างไฟล์ในเครื่องที่คุณคัดลอกไปยังที่เก็บข้อมูล Cloud Storage ใน ขั้นตอนต่อไป: 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.