1. บทนำ
อัปเดตล่าสุด:04-05-2020
คำนึงถึงความเชื่อมโยง
แอปพลิเคชันและเฟรมเวิร์กมีอยู่หลายประเภท ใน Codelab นี้ เราจะครอบคลุมการเชื่อมต่อกับ Cloud SQL จากทุกที่ เปิดใช้ความสามารถในการเชื่อมต่อโดยการให้สิทธิ์ IP ที่ได้รับอนุญาตให้เชื่อมต่ออย่างชัดเจน แน่นอนว่านี่เป็นตัวเลือกที่ปลอดภัยน้อยที่สุดสำหรับการเชื่อมต่อกับฐานข้อมูล Cloud SQL แต่ก็เป็นวิธีที่ตั้งค่าและเริ่มใช้งานได้ง่ายที่สุดเช่นกัน
บางครั้งคุณอาจต้องดำเนินการดังกล่าวในเวอร์ชันที่ใช้งานจริง แต่หากสามารถหลีกเลี่ยงได้ คุณควรเลือกใช้ทางเลือกที่ปลอดภัยกว่า (เช่น การใช้พร็อกซี Cloud SQL) การตั้งค่านี้เหมาะอย่างยิ่งสำหรับการพัฒนาและการทดสอบ
สิ่งที่คุณจะสร้าง
Codelab นี้เรียบง่ายมาก คำแนะนำคือเพื่อให้คุณเข้าใจวิธีเชื่อมต่อ โดยไม่ต้องคำนึงถึงตัวแอปพลิเคชันมากเกินไป อย่างสมบูรณ์แบบ การเชื่อมต่อกับ Cloud SQL ก็เหมือนกับการเชื่อมต่อกับอินสแตนซ์อื่นๆ ของฐานข้อมูล SQL ดังนั้นคุณจึงควรนำสิ่งที่คุณสร้างใน Codelab นี้ไปใช้และนำไปใช้กับแอปพลิเคชันเวอร์ชันที่ใช้งานจริงได้
วิธีการนี้จะมีทั้งคำแนะนำแบบทีละขั้นเกี่ยวกับการดำเนินการต่างๆ ในคอนโซล GCP รวมถึงการรวมคำสั่ง gcloud ที่เทียบเท่าสำหรับการใช้ใน CLI หรือการทำงานอัตโนมัติ
ขั้นตอนแต่ละรายการมีดังนี้
- สร้างอินสแตนซ์ Cloud SQL (บทแนะนำนี้ใช้ Postgres แต่ทำงานคล้ายกับ MySQL หรือเซิร์ฟเวอร์ SQL) และให้สิทธิ์ IP ที่เฉพาะเจาะจงซึ่งได้รับอนุญาตให้เชื่อมต่อ
สิ่งที่คุณต้องมี
- บัญชี GCP ที่คุณมีสิทธิ์เปิดใช้ API และสร้างบริการ
- ไคลเอ็นต์ Postgres ที่ติดตั้งเพื่อยืนยันการเชื่อมต่อ (หรือไคลเอ็นต์ MySQL หากคุณต้องการใช้ MySQL แทน Postgres)
2. การสร้างอินสแตนซ์ Cloud SQL
Cloud SQL คือข้อเสนอฐานข้อมูลเชิงสัมพันธ์ที่มีการจัดการของเรา รองรับเซิร์ฟเวอร์ MySQL, PostgreSQL และ SQL สำหรับ Codelab นี้ เราจะสร้างฐานข้อมูล Postgres แต่วิธีการจะคล้ายกันสำหรับทั้ง 3 แพลตฟอร์ม
ในคอนโซล
ไปที่หน้า Cloud SQL และคลิกปุ่ม
อย่างที่บอกไปแล้วว่า Codelab ส่วนใหญ่นี้เป็นแบบทั่วไปสำหรับ SQL เวอร์ชันใดก็ได้ แต่สำหรับ Codelab นี้ ให้เลือก PostgreSQL
- กำหนดรหัสสำหรับอินสแตนซ์
- เลือกภูมิภาคที่ใกล้กับที่คุณอยู่
- ป้อนรหัสผ่านสำหรับผู้ใช้เริ่มต้น (ชื่อผู้ใช้จะเป็นค่าเริ่มต้นสำหรับฐานข้อมูลที่เลือก เช่น
root
สำหรับ MySQL หรือpostgres
สำหรับ PostgreSQL) - เลื่อนลงและคลิก
show configuration options
- ขยายส่วน
Connectivity
- ตรวจสอบว่าได้เลือก
Public IP
และยกเลิกการทำเครื่องหมายPrivate IP
แล้ว - คลิกปุ่ม
- รับที่อยู่ IP จากจุดที่คุณเชื่อมต่อ ที่ง่ายที่สุดคือการค้นหาใน Google ว่า "What's my IP" และผลการค้นหามี IP สาธารณะของคุณอยู่
- ป้อนข้อมูลจำเพาะของ IP ลงในช่องเครือข่าย ตั้งชื่อตามต้องการ แล้วคลิก "เสร็จสิ้น" ในช่อง
New Network
- เลื่อนลงแล้วคลิก "สร้าง"
โดยปกติแล้วอินสแตนซ์จะใช้เวลา 2-3 นาทีในการเริ่มต้น
เมื่อสร้างอินสแตนซ์เสร็จแล้ว ให้คลิกอินสแตนซ์นั้นในรายการ และในหน้าภาพรวม ใต้ส่วนหัว Connect to this instance
ให้คัดลอก public IP address
ที่แสดงอยู่ อินสแตนซ์จะไม่ปรากฏขึ้นจนกว่าจะสร้างอินสแตนซ์เสร็จสมบูรณ์ แม้ว่าคุณจะสามารถคลิกดูรายละเอียดก่อนที่จะมีการสร้างอินสแตนซ์โดยสมบูรณ์ได้
การใช้ gcloud
ขั้นแรก คุณต้องดึงที่อยู่ IP ที่ต้องการให้สิทธิ์เพื่อเชื่อมต่อกับอินสแตนซ์ Cloud SQL วิธีที่ง่ายที่สุดในการดำเนินการนี้คือการเปิดเบราว์เซอร์และค้นหา "IP ของฉันคืออะไร" และผลการค้นหาจะมีที่อยู่ IP ที่เปิดเผยต่อสาธารณะ หากคุณไม่สามารถเปิดเบราว์เซอร์จากตำแหน่งที่คุณกำลังดำเนินการดังกล่าว คุณสามารถใช้ยูทิลิตี เช่น dig
dig @resolver1.opendns.com ANY myip.opendns.com +short -4
คุณจะต้องระบุภูมิภาคของอินสแตนซ์ Cloud SQL ที่ใกล้กับตำแหน่งที่คุณอยู่มากที่สุด คุณสามารถดูรายการภูมิภาคได้โดยการเรียกใช้
gcloud sql tiers list
แต่ละระดับจะมีจำหน่ายเฉพาะในบางภูมิภาค สำหรับส่วน gcloud ของบทแนะนำ เราเพียงแค่สร้างอินสแตนซ์ไมโคร ดังนั้นคุณสามารถค้นหาภูมิภาคสำหรับระดับนี้ที่พร้อมใช้งานโดยการเรียกใช้เฉพาะ (ตราบใดที่คุณติดตั้ง grep ไว้)
gcloud sql tiers list | grep db-f1-micro
คำสั่งสำหรับสร้างอินสแตนซ์ (อย่าลืมแทนที่ <AUTHORIZED_IP> ด้วย IP ที่คุณได้รับจากเบราว์เซอร์หรือ dig และ <REGION> ด้วยที่อยู่ใกล้ๆ คุณ และรหัสผ่านสำหรับผู้ใช้ราก "postgres")):
gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>
การดำเนินการนี้ใช้เวลาเพียงไม่กี่นาที
เมื่อดำเนินการเสร็จแล้ว เอาต์พุตใน CLI จะมี PRIMARY_ADDRESS
ของอินสแตนซ์แสดงอยู่ คัดลอกรายการนั้นสำหรับขั้นตอนถัดไป
3. ทดสอบการเชื่อมต่อและสรุป
หากต้องการตรวจสอบว่าอินสแตนซ์ได้รับการตั้งค่าอย่างถูกต้อง คุณสามารถเรียกใช้บนบรรทัดคำสั่งจากเครื่องซึ่งเป็นที่อยู่ IP ที่คุณป้อน
psql "host=<IP คัดลอกจากขั้นตอนก่อนหน้า> Port=5432 sslmode=disable user=postgres"
จากนั้นระบุรหัสผ่านเริ่มต้นของผู้ใช้ที่คุณตั้งค่าไว้เมื่อสร้างอินสแตนซ์ Cloud SQL
ยินดีด้วย หากทุกอย่างดูดีแล้ว คุณควรมีข้อความแจ้ง Postgres และสามารถเรียกใช้คำสั่งกับฐานข้อมูลของคุณได้
สิ่งที่ต้องทำต่อไป
ลองดู Codelab เหล่านี้...