1. บทนำ
อัปเดตล่าสุด: 04-05-2020
พิจารณาการเชื่อมต่อ
มีแอปพลิเคชันและเฟรมเวิร์กหลายประเภท ในโค้ดแล็บนี้ เราจะพูดถึงการเชื่อมต่อกับ Cloud SQL จากทุกที่ ความสามารถในการเชื่อมต่อจะเปิดใช้โดยการให้สิทธิ์ IP ที่อนุญาตให้เชื่อมต่ออย่างชัดเจน ตัวเลือกนี้อาจเป็นตัวเลือกที่มีความปลอดภัยน้อยที่สุดสำหรับการเชื่อมต่อกับฐานข้อมูล Cloud SQL แต่ก็เป็นตัวเลือกที่ตั้งค่าและเริ่มใช้งานได้ง่ายที่สุดเช่นกัน
บางครั้งก็จำเป็นต้องดำเนินการนี้ในสภาพแวดล้อมการใช้งานจริง แต่หากหลีกเลี่ยงได้ คุณควรเลือกใช้ทางเลือกที่ปลอดภัยกว่า (เช่น ใช้ Cloud SQL Proxy) การตั้งค่านี้เหมาะที่สุดสำหรับการพัฒนาและการทดสอบ
สิ่งที่คุณจะสร้าง
Codelab นี้เรียบง่ายมาก แนวคิดนี้คือการแนะนำรายละเอียดของการเชื่อมต่อโดยไม่ต้องคิดถึงแอปพลิเคชันมากเกินไป ในโลกที่สมบูรณ์แบบ การเชื่อมต่อกับ Cloud SQL ก็เหมือนกับการเชื่อมต่อกับอินสแตนซ์อื่นๆ ของฐานข้อมูล SQL ดังนั้นคุณจึงควรนำสิ่งที่สร้างในโค้ดแล็บนี้ไปใช้กับแอปพลิเคชันที่ใช้งานจริงได้
คำสั่งจะรวมทั้งคำแนะนำแบบทีละขั้นตอนในการดำเนินการต่างๆ ในคอนโซล GCP รวมถึงคำสั่ง gcloud ที่เทียบเท่าสำหรับการใช้ใน CLI หรือการทำงานอัตโนมัติ
ขั้นตอนแต่ละขั้นตอนมีดังนี้
- สร้างอินสแตนซ์ Cloud SQL (บทแนะนำนี้ใช้ Postgres แต่จะทำงานคล้ายกันสำหรับ MySQL หรือ SQL Server) และให้สิทธิ์ IP ที่เฉพาะเจาะจงที่ได้รับอนุญาตให้เชื่อมต่อกับอินสแตนซ์
สิ่งที่คุณต้องมี
- บัญชี GCP ที่คุณมีสิทธิ์เปิดใช้ API และสร้างบริการ
- ไคลเอ็นต์ Postgres ที่ติดตั้งเพื่อยืนยันการเชื่อมต่อ (หรือไคลเอ็นต์ MySQL หากต้องการใช้ MySQL แทน Postgres)
2. การสร้างอินสแตนซ์ Cloud SQL
Cloud SQL คือข้อเสนอฐานข้อมูลเชิงสัมพันธ์ที่มีการจัดการของเรา โดยรองรับ MySQL, PostgreSQL และเซิร์ฟเวอร์ SQL สำหรับ Codelab นี้ เราจะสร้างฐานข้อมูล Postgres แต่คำสั่งจะคล้ายกันสำหรับทั้ง 3 ฐานข้อมูล
ในคอนโซล
ไปที่หน้า Cloud SQL แล้วคลิกปุ่ม 
ดังที่ได้กล่าวไปแล้วว่า Codelab นี้ส่วนใหญ่ใช้ได้กับ SQL ทุกรูปแบบ แต่สำหรับ Codelab นี้ ให้เลือก PostgreSQL
- กำหนดรหัสให้แก่อินสแตนซ์
- เลือกภูมิภาคที่อยู่ใกล้กับคุณ
- ป้อนรหัสผ่านสำหรับผู้ใช้เริ่มต้น (ชื่อผู้ใช้จะเป็นค่าเริ่มต้นสำหรับ DB ที่เลือก เช่น
rootสำหรับ MySQL หรือpostgresสำหรับ PostgreSQL) - เลื่อนลงแล้วคลิก
show configuration options - ขยายส่วน
Connectivity - ตรวจสอบว่าได้เลือก
Public IPและไม่ได้เลือกPrivate IP - คลิกปุ่ม

- รับที่อยู่ IP จากตำแหน่งที่คุณเชื่อมต่อ วิธีที่ง่ายที่สุดคือการค้นหาใน Google ว่า "IP ของฉันคืออะไร" แล้วผลการค้นหาจะแสดง IP สาธารณะของคุณ
- ป้อนข้อกำหนด IP ลงในช่องเครือข่าย ตั้งชื่อหากต้องการ แล้วคลิกเสร็จสิ้นในช่อง
New Network - เลื่อนลงแล้วคลิกสร้าง
โดยปกติแล้วอินสแตนซ์จะใช้เวลา 2-3 นาทีในการเริ่มต้น
เมื่อสร้างอินสแตนซ์เสร็จแล้ว ให้คลิกอินสแตนซ์ในรายการ แล้วคัดลอก public IP address ที่แสดงในหน้าภาพรวมใต้ส่วนหัว Connect to this instance โดยจะยังไม่ปรากฏจนกว่าจะสร้างอินสแตนซ์เสร็จสมบูรณ์ แม้ว่าคุณจะคลิกดูรายละเอียดก่อนที่จะสร้างอินสแตนซ์เสร็จสมบูรณ์ได้ก็ตาม
การใช้ 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 copied from previous step> port=5432 sslmode=disable user=postgres"
จากนั้นระบุรหัสผ่านของผู้ใช้เริ่มต้นที่คุณตั้งค่าไว้เมื่อสร้างอินสแตนซ์ Cloud SQL
ยินดีด้วย หากทุกอย่างเป็นไปด้วยดี คุณควรมีพรอมต์ Postgres และเรียกใช้คำสั่งกับฐานข้อมูลได้
สิ่งต่อไปที่ควรทำ
ลองใช้ Codelab เหล่านี้