Object Storage (S3)

รูปแบบ storage ที่เก็บข้อมูลเป็น object หรือเป็น file ใช้งานได้ผ่าน internet สามารถประยุกต์ใช้ได้หลากหลาย

ตาม concept แล้ว object storage จะเก็บข้อมูลในรูปแบบ object หรือจะมองเป็น file ก็ได้ แต่ที่ต่างจาก file ทั้วไป คือ จะมีเรื่องของ metadata ที่สามารถแนบไว้กับ file ได้ด้วย เช่น การเก็บข้อมูลของ video จากกล้องวงจรปิด ที่ตัว file หลักจะเป็น video และ metadata อาจจะเป้น ช่วงเวลาที่ record, ID ของกล้องที่ record กรณีที่มีกล้องหลายตัว โดย metadata เหล่านี้ จะมีประโยชน์มาก กับการทำ data analytic

รวมถึงความสามารถหลักของ object storage ที่สามารถใช้งานได้ผ่าน internet และเข้าถึงได้ผ่าน S3 API บน HTTP/HTTPS protocol ทั่วไป จึงเหมาะกับการเก็บข้อมูล media สำหรับแสดงบน website ต่างๆ หรือแม้กระทั้งรองรับการใช้งานกับ instance ที่ต้องมีการ horizontal scaling เพิ่ม-ลดจำนวนอยู่ตลอดเวลา เพราะ block storage จะสามารถใช้งานได้แค่ 1 instance แต่ object storage สามารถใช้งานกับกี่ instance ก้ได้ ตราบใดที่มี network เข้าถึงได้ bucket

การเก็บ object ไว้ด้วยกัน คล้ายๆกับการใช้งาน folder หรือ directory ใน PC ทั่วไป โดยเราจะ PUT object ใส่ไว้ใน bucket และเรียกอ่านข้อมูล object ผ่าน bucket เสมอ และใน bucket เองก็ยังสามารถแบ่ง directory เพื่อแบ่งกลุ่มของ object ได้อีกด้วย

Bucket Avaibility Zone

ภายใน NIPA Cloud Space การสร้าง Object Storage Bucket ขึ้นมา 1 Bucket จะสามารถใช้งานได้ใน 2 Availability Zone ได้แก่ NCP-BKK และ NCS-NON โดยทั้ง 2 zone จะเก็บข้อมูลแยกจากกันโดยสิ้นเชิง โดยสามารถเข้าถึงแต่ละ Availability Zone ได้จากการเปลี่ยน endpoint ของ Bucket ดังนี้

  • NCP-BKK: https://[bucket-name].s3-bkk.nipa.cloud

  • NCP-NON: https://[bucket-name].s3-non.nipa.cloud

Bucket Access Control

Object Storage บน Nipa Cloud Space ถูกออกแบบมาให้แยกส่วนกันในระดับ Logical โดยแต่ละ Bucket จะมีการบริหารจัดการสิทธิ์ (Access Control) แยกจากกันโดยสิ้นเชิง เพื่อความปลอดภัยสูงสุดของข้อมูล ผู้ใช้งานสามารถควบคุมสิทธิ์ได้ผ่าน 2 กลไกหลัก คือ Bucket ACL และ Bucket Policy

Bucket ACL (Access Control List)

Bucket ACL คือการกำหนดสิทธิ์การเข้าถึงพื้นฐาน ซึ่งสามารถเลือกตั้งค่าได้ตั้งแต่ขั้นตอนการสร้าง Bucket และสามารถแก้ไขเมื่อไหร่ก็ได้ โดยมีรายละเอียดดังนี้

ACL (ระดับสิทธิ์)
รายละเอียดการเข้าถึง
ข้อแนะนำ

Private

เฉพาะ Project เจ้าของ Bucket เท่านั้นที่สามารถจัดการและเข้าถึงข้อมูลได้

แนะนำให้ใช้เป็นค่าเริ่มต้น

Public (Read)

เจ้าของ Bucket จัดการได้เต็มที่ และบุคคลทั่วไป (Public) สามารถอ่าน (Read) ข้อมูลได้

เหมาะสำหรับไฟล์ที่ต้องการทำ Public Link

Authenticate (Read)

เจ้าของ Bucket จัดการได้เต็มที่ และผู้ใช้งานที่มีการยืนยันตัวตน (Authenticated User) สามารถอ่าน ข้อมูลได้

สำหรับการแชร์ข้อมูลภายในกลุ่มผู้ใช้ระบบ

Public (Read & Write)

บุคคลทั่วไปสามารถทั้งอ่านและเขียน (Read & Write) ข้อมูลลงใน Bucket ได้

ไม่แนะนำ (เสี่ยงต่อความปลอดภัยขั้นรุนแรง)

Bucket Policy

นอกจาก ACL ที่เป็นการกำหนดสิทธิการใช้งานขึ้นพื้นฐานแล้ว ยังสามารถเพิ่มสิทธิเฉพาะ User หรือกลุ่ม User บน Bucket, Object หรือ Path เฉพาะได้ ผ่าน Bucket Policy (อ่านเพิ่มเติมในการจัดการ Bucket Policy)

ในการใช้งานทั่วไป แนะนำให้กำหนด Bucket ACL เป็น Private และ สร้าง Bucket Policy เฉพาะ ตามสิทธิที่ต้องการให้เข้าถึงได้เท่านั้น เพื่อไม่ให้ข้อมูลใน Bucket รั่วไหล

Bucket Limitation

Bucket ของ Object Storage ไม่มี limit ในเรื่องของ size รวมของ storage แต่มี limit ในเรื่องของจำนวน Object ที่เก็บได้ภายใน 1 bucket ใน 1 Availability Zone โดยจะมี limit อยู่ที่ 1.6 ล้าน objects (1638400 objects)

การเข้าใช้งาน Object Storage

การเข้าใช้งาน object storage สามารถทำได้ผ่าน S3 protocol ได้หลายช่องทาง เช่น ใช้ผ่าน CLI, API หรือ ใช้ผ่าน software อื่นๆ

อ่านเพิ่มเติมเกี่ยวกับ Object Storagearrow-up-right

Recommendations

Create an Object Storage Bucketchevron-rightCreate an Object Storage Sub-Userchevron-rightCreate Bucket Policychevron-rightBucket Versioningchevron-rightConfigure a static website using S3 Bucketchevron-right

Last updated