NEW WEBSITE IS READY!

Google Cloud Storage คืออะไร? มีฟีเจอร์อะไรบ้าง?

โดย Cloud Ace Thailand

หลังจาก Cloud Ace Thailand จัดกิจกรรมสัมมนาออนไลน์ในหัวข้อนี้ไป เรามาสรุปไว้ให้อ่านทบทวนกันดีกว่า (ใครอยากฟังเรื่องราวเกี่ยวกับ Google Cloud แบบไลฟ์สดๆ ลงทะเบียนมาเข้าร่วมกิจกรรมกับเราได้เลย ไม่มีค่าใช้จ่ายครับ https://th.cloud-ace.com/news-events/webinar-registration)

Image from Google

Google Cloud Platform คืออะไร

Google Cloud คือ Public Cloud ที่รวม Services ต่างๆ เช่น Big Data, Cloud Computing, IoT, Machie Learning, Data Storage และบริการอื่นๆ อีกมากมาย ไม่ว่าจะเป็นในรูปแบบ Iaas , Paas และ Saas ที่ทำให้ผู้ใช้บริการสามารถพัฒนา Application, Server, ฝากไฟล์, วิเคราะห์ข้อมูล หรืออะไรต่างๆ ไว้ใน Platform เดียว และยังสามารถดึงเอาเทคโนโลยีที่ทาง Google พัฒนาไว้ไปใช้ได้อีกด้วย พร้อมระบบความปลอดภัยที่น่าเชื่อถือ

วันนี้เราจะมาพูดถึงกันในส่วนของ Google Cloud Storage คำว่า Storage จริงๆ แล้วแบ่งออกเป็นหลายประเภท ไม่ว่าจะเป็น SQL, NoSQL, Object, File เป็น ซึ่งตัว Google Cloud Storage ที่วันนี้เราพูดถึงจะเป็น storage สำหรับ Object

ก่อนจะอธิบายถึง feature และ function ต่างๆ ของ cloud storage ผมอยากจะอธิบาย key term หลักๆ ที่จะใช้บ่อยในบทความนี้ก่อนแล้วกันนะครับ

  • Object จะใช้แทน data ประเภทต่างๆ เช่น text, image อะไรแบบนี้นะครับ

  • Bucket คือ container ที่เอาไว้เก็บ object หรือ อธิบายง่ายๆ ก็เปรียบเสมือนตระกร้าเอาใว้ใส่ object หรือ ข้อมูลของเรา

  • Location คือ region และ zone ที่เราเลือกจะเก็บ bucket กับ object ของเราเอาไว้ ซึ่งเดี๋ยววันนี้เราจะมีอธิบายในส่วนนี้ด้วย

  • Storage class ถือว่าเป็น หนึ่งในหัวใจหลักสำคัญสำหรับ Google Cloud Storage เลยนะครับ เพราะว่า แต่ละ class นั้นก็จะมี objective ที่ต่างกัน cost ที่ต่างกัน นะครับ วันนี้เราจะมีอธิบายในส่วนนี้เช่นกัน

Google Cloud Storage คืออะไร?

หลายๆ คนคงจะพอรู้จักกันมาบ้างแล้วนะครับ Cloud Storage ก็คือคลังสำหรับเก็บข้อมูล สามารถทำ Backup ทำ Content delivery บ้างก็เอาไปทำเป็น Data lakes ซึ่งใน Cloud Storage เนี่ยมี Object Lifecycle Management ทำให้เราสามารถปรับราคาและ performance ผ่าน storage classes ตามจุดประสงค์ของเราได้เลย รวมไปถึงยังมีความปลอดภัยและทนทาน นอกจากนี้ Google ยังเคลมไว้อีกว่า ตัว storage นี้เป็นมิตรต่อสิ่งแวดล้อม ลดคาร์บอนจากภาคการผลิตไฟฟ้าเป็น 0 เนื่องจากมีการใช้พลังงานหมุนเวียน (บียอนด์เกินไปแล้วว ฮ่าๆ)

อีกหนึ่งจุดเด่นเลยก็คือ มันสามารถถูก set ได้ว่าใครบ้างที่จะสามารถเข้าถึง object ของเราที่ถูกเก็บใว้ใน Cloud Storage ได้นะครับ คล้ายๆ กับ Google Drive ที่เราใช้กันอยู่บ่อยๆ

สำหรับใครที่อยากดู use case หรือ success story ลงทะเบียนมาร่วมกิจกรรม webinar ของเราได้เลยที่ https://th.cloud-ace.com/news-events/webinar-registration)

ต่อไปเรามาดู Features ของ Google Cloud Storage กันบ้างดีกว่า ว่าทำอะไรได้บ้าง

Storage Classes

Google Cloud Storage จะมี storage classes ให้เลือกอยู่ 4 แบบ ซึ่งการใช้งาน การคิดราคาก็จะมีความต่างกัน

  • Standard มี performance ที่สูงสุด เหมาะสำหรับการเก็บระยะสั้นและเข้าใช้งานบ่อย เช่น ถ้าทำพวก streaming videos, ทำ images, ทำ websites หรือ อะไรที่ต้องเข้าใข้งานบ่อยๆ ใช้ performance สูงๆ ก็จะต้องเลือกใช้ standard class

  • Nearline เหมาะสำหรับการทำ backups ทำ document หรืออะไรก็ตามที่เข้าใช้งานน้อยกว่า standard (เฉลี่ยแล้ว ประมาน 2 เดือน ถึงจะเข้าใช้งานทีนึงนะครับ)

  • Coldline ก็จะเหมาะกับอะไรที่ต้องเข้าใช้งานน้อยกว่า nearline นะครับ เช่นเอาไว้เก็บ serve rarely used data หรือเก็บพวกข้อมูลที่ไม่ค่อยได้ใช้นะครับ ทำ movie archive หรือ เอาไว้เก็บตัว disaster recovery (เฉลี่ยแล้ว ประมาน 5 เดือน ถึงจะเข้าใช้งานทีนึง)

  • Archive เหมาะสำหรับการเก็บระยะยาวและไม่ค่อยเข้าใช้งาน เช่น เอาไว้เก็บพวก regulatory archives หรือ tape replacement นะครับ (เฉลี่ยแล้ว ประมาน 2 ปี หรือ เกิน 2 ปี จะเข้าใช้งานทีนึง)

ในส่วนของราคาค่าใช้จ่าย จะเรียงจากซ้ายไปขวา น้อยไปมาก นะครับ โดยที่ standard จะมีค่าใช้จ่ายมากที่สุดเพราะ เหมาะแก่การเข้าใช้งานบ่อยๆ และ achive ทางด้านขวามือจะมีค่าใช้จ่ายที่ถูกที่สุด เพราะว่าเข้าใช้งานน้อยมากๆ เรียกได้ว่าแทบจะไม่ได้เข้าเลย อย่างที่บอกไปก่อนหน้านี้นะครับเหมาะกับข้อมูลที่เฉลี่ยแล้ว ประมาณ 2 ปี หรือ เกิน 2 ปี จะเข้าใช้งานทีนึง

Location Types

Object ที่ถูกเก็บไว้บน Google Cloud Storage จะสามารถเลือก Location type ได้โดยที่จะมีทั้งหมด 3 types คือ

  • Regional จะมี lowest latency หรือ ก็คือมีความหน่วงน้อยที่สุด แต่ availability หรือ ความพร้อมในการเข้าใช้งานจะน้อยสุดนะครับ เพราะเป็นแบบ region เดียวนะครับ

  • Dual-region คล้ายๆ region ก็คือยัง หน่วงน้อย low latency และพร้อมใช้งานมากกว่า เพราะว่ามี 2 regions ถ้า region นึงเสียหาย ก็จะสามารถเข้าถึงข้อมูลจากอีก region ได้

  • Multi-region สามารถเข้าถึงข้อมูลได้จากหลายๆ region แต่มี latency เยอะสุด (หน่วงเยอะสุด เพราะว่ามีโอกาสเข้าถึง region ที่ไกลจากผู้ใช้งาน)

ส่วนราคาจะไล่จากถูกไปหาแพงดังนี้ครับ regional < multi-region < dual-region

Object Lifecycle Management

ต่อมาจะเป็น Object lifecycle management นะครับ ซึ่ง Object lifecycle management เนี่ย เป็นเหมือนกันตั้งค่า เพื่อสั่งให้มันทำตาม condition และ action ต่างๆ ตัวอย่างเช่น ทำการเปลี่ยน storage class ที่มีอายุเกิน 365 วันให้เป็น Coldline หรือ ลบ Object จาก object ที่ถูกสร้างก่อนวันที่ 1 มกราคม ปี 2013 หรือว่าจะเลือกเก็บใว้เฉพาะ 3 version ล่าสุด ในกรณีที่ enable object versioning

Object Versioning

ถ้าเปิดการใช้งาน versioning ไว้ ถึงแม้ data จะถูกลบหรือเขียนทับ แต่ว่าระบบจะ create version ใหม่ขึ้นมาตามจำนวนที่เรากำหนดไว้ เราสามารถ กำหนด generated number ได้ ซึ่งถือว่าเป็น feature ที่ดีมากๆ feature นึงเลยนะครับ เพราะว่า ถ้าเกิดเราเผลอลบไป เราก็สามารถ copy version กลับมาได้

Access Control

สำหรับ Access Control คือการระบุสิทธิการเข้าถึงไฟล์ เราจะสามารถเลือกวิธีการเข้าถึง Object ใน bucket ของเราด้วย 2 types ดังนี้

  • Fine-grained คือ ชื่อของ access control ที่ใช้ ความสามารถของ ACLs (Access Control List) ซึ่งไอเจ้าตัว ACLs จะอนุญาติให้เราระบุสิทธิการเข้าถึงของแต่ละไฟล์ใน bucket ได้ (หรือที่เรียกว่า object level permission)อย่างเช่น ไฟล์ที่ 1–3 usersA เท่านั้นที่ ที่จะมีสิทธิเข้าถึงได้ แต่ไฟล์ที่ 4–5 จะมีแค่ userB เท่านั้น ที่จะมีสิทธิเข้าถึงได้ สรุปสั้นๆก็ คือ เป็นการอนุญาติให้เราระบุสิทธิการเข้าถึงของแต่ละไฟล์ใน bucket ได้

  • Uniform ตรงกันข้ามกันกับ Fine-grained นะคับ คือ เราจะไม่สามารถระบุสิทธิการเข้าถึงของแต่ละไฟล์ใน bucket ได้ มันจะระบุสิทธิได้ทั้ง bucket เลย (หรือที่เรียกว่า bucket level permission) โดยที่จะมีผลกับทุกไฟล์ใน bucket นั้นๆ เลยเท่านั้น

Public Access

  1. Public to internet

  2. Not public

  3. Subject to object ACLs

Public Access จะเกี่ยวเนื่องกันกับ Access Control โดยที่ Public Access จะมีอยู่ 3 types ซึ่งคือ ถ้า Access Control ในก่อนหน้านี้ เราเลือกเป็น fine-grained ระบบจะ default เลือก type ของ Public Access เป็น Subject to object ACLs หรือ type ที่ 3 ซึ่ง ACLs ก็คือตัวที่อธิบายไปก่อนหน้านี้ คือมันจะอนุญาติให้เราตั้งค่าสิทธิการเข้าถึงไฟล์แต่ละไฟล์ใน bucket ได้ มันถูกเรียกว่า object level permission

และถ้า เรา add permission เพิ่ม allUsers กับ allAuthenticatedUsers โดยที่ allUsers เป็น parameter ที่หมายถึง ทุก account ไม่จำเป็นต้องเป็น Google account และ allAuthenticatedUsers หมายถึงเฉพาะ Google Account เท่านั้น หลังจากที่เรา add สิทธิเสร็จนะครับ ระบบจะเปลี่ยน type จาก Subject to object ACLs (type ที่ 3) เป็น Public to internet (type ที่1) ทันที ซึ่งหมายความว่าทุกคนที่เชื่อมต่อ internet ได้ ก็สามารถเข้าถึง bucket นี้ได้นั่นเอง

ต่อมา ถ้าเราเลือก Access Control จาก slide ที่แล้วเป็น Uniform, ระบบจะ default เลือก Public Access เป็น Not Public ก็คือเป็น private bucket นั่นเอง จนกว่าเราจะเพิ่ม สิทธิ พวก allUser หรือ allAuthenticateUser เข้าไปถึงจะสามารถให้ผู้อื่นเข้าถึง bucket นี้ได้

ย้ำนิดนึงนะครับ ไม่ว่าจะเลือก Access control จาก slide ที่แล้วเป็น fine-grained หรือ uniform ก็ตามนะครับ ค่าเริ่มต้นเลยเนี่ย access type ของเราจะเป็น private ทั้งหมด ถ้าเรายังไม่ได้ add permission เช่น allUser หรือ allAuthenticatedUser ว่า user ไหนบ้างที่จะสามารถเข้าถึงได้ ก็จะมีไม่ user ไหนเลยสามารถเข้าถึง bucket ของเราได้ครับ


Retention Policies

Retention policy คือการที่เรา lock bucket ไม่ให้สามารถถูกลบได้ภายในช่วงเวลาที่กำหนด ตัวอย่างด้านบนนี้คือ lock ใว้ไม่ให้ลบเป็นเวลา 1 เดือน โดยจะมีผลทันทีหลังจาก upload file หรือ object เข้าไปใน bucket


Requester Pays

Requester pays ก็คือใครก็ตามที่เปิด function นี้จะได้รับบิลค่าใช้จ่าย bucket นี้ แทน bucket owner นั่นเองครับ


Notifications for Cloud Storage

Notifications for Cloud Storage เป็นเหมือน features เสริมที่ต้อง Config จาก service อื่น โดยที่เราจะ set event trigger ใว้ว่าถ้ามีการเปลี่ยนแปลงเกิดขึ้นกับ object ของเราใน bucket ไม่ว่าจะเป็นการลบหรือเพิ่ม object จะให้ส่ง notification ไป destination ที่เรา set ไว้ อย่างเช่นถ้าเรา set event trigger ด้วย Cloud Pub/Sub ระบบก็จะส่ง notification จาก Cloud Storage ไปยัง Pub/Sub Topic หรือ เราอาจจะเขียน Code จาก Python, Java, Go ด้วย Cloud Function เพื่อให้รับ notification จาก Cloud Storage เมื่อ object ใน bucket เกิดการเปลี่ยนแปลง


Using signed URLs

Signed URL คือ การที่เรานำ URL ของ Object ของเรา ใน Cloud Storage bucket มาใส่ permission พร้อมกับ กำหนด limitation ของระยะเวลาที่จะอนุญาติให้เข้าใช้งาน โดยที่ user ใดๆ ที่ได้รับ URL นี้จะมีสิทธิเข้าถึง bucket ของเรา ตามระยะเวลาที่กำหนดใว้ โดยที่ user ไม่จำเป็นต้องใช้ account ของ Google นะครับ เป็น account ใดๆ ก็ได้ที่ถูกเพิ่มสิทธิให้

เป็นยังไงกันบ้างครับ สำหรับฟีเจอร์ของ Google Cloud Storage หวังว่าทุกคนคงได้ประโยชน์จากบทความนี้ไม่มากก็น้อยนะครับ อย่างไรก็ตาม บน Google Cloud Platform เนี่ย ยังมี service และเครื่องมืออีกมากมาย โอกาสหน้า Cloud Ace จะเอาเรื่องอะไรมาเล่าให้ฟังกันอีก ฝากกด Follow กันไว้ด้วยนะครับ

Written by Chayutapon Suwannachart (Jay)

Edited by Thanabat Raksanawes (Nub)

Cloud Ace Thailand

Make It Now!

หากคุณสนใจโซลูชั่น Cloud Storage และต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา (Consulting) จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019

ติดต่อเรา

E. th_sales@cloud-ace.com

หรือกรอกแบบฟอร์มด้านล่าง