0Pricing
Cloud & IT Cert Prep · บทเรียน

บักเก็ต ออบเจ็กต์ และรีเจียน

สร้างบักเก็ต S3 อัปโหลดออบเจ็กต์ ทำความเข้าใจการตั้งชื่อคีย์ และดูว่า S3 จำลองข้อมูลภายในรีเจียนอย่างไร

บักเก็ต ออบเจ็กต์ และรีเจียน เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน

Amazon S3 คืออะไร

Amazon Simple Storage Service (S3) คือบริการพื้นที่จัดเก็บอ็อบเจ็กต์ของ AWS ที่ออกแบบมาเพื่อจัดเก็บและเรียกคืนข้อมูลได้ทุกปริมาณจากทุกที่บนอินเทอร์เน็ต S3 มอบ ความทนทานระดับ 11 เก้า (99.999999999%) ด้วยการจัดเก็บอ็อบเจ็กต์ซ้ำซ้อนบนอุปกรณ์หลายเครื่องใน Availability Zone หลายแห่งภายใน Region ที่เลือก สามารถขยายขนาดได้อย่างไม่จำกัด ไม่มีขีดจำกัดความจุ และรองรับอ็อบเจ็กต์ตั้งแต่ 0 ไบต์ถึง 5 TB S3 เป็นแกนหลักของสถาปัตยกรรม AWS จำนวนมาก—ใช้ให้บริการ website แบบคงที่ Data Lake ที่เก็บข้อมูลสำรอง และอื่น ๆ

S3 Bucket: คอนเทนเนอร์ระดับบนสุด

S3 bucket คือคอนเทนเนอร์แบบมีชื่อที่ไม่ซ้ำกันทั่วโลกสำหรับอ็อบเจ็กต์ Bucket จะถูกสร้างใน AWS Region ที่ระบุ แต่ชื่อต้องไม่ซ้ำกับบัญชี AWS อื่นทั่วโลกทั้งหมด (เพราะชื่อเป็นส่วนหนึ่งของ URL) ชื่อ bucket ต้องมีความยาว 3–63 อักขระ เป็นตัวพิมพ์เล็ก เริ่มต้นด้วยตัวอักษรหรือตัวเลข และไม่มีขีดล่างหรือตัวอักษรพิมพ์ใหญ่ แนวทางปฏิบัติที่ดีคือใส่ ID บัญชีหรือส่วนต่อท้ายแบบสุ่มเพื่อหลีกเลี่ยงชื่อซ้ำกับบัญชีอื่น

# Create an S3 bucket in a specific region
aws s3api create-bucket \
  --bucket my-company-data-20240101 \
  --region us-west-2 \
  --create-bucket-configuration LocationConstraint=us-west-2

อ็อบเจ็กต์และ Key ของ S3

อ็อบเจ็กต์ ใน S3 ประกอบด้วยข้อมูล (เนื้อหา file), key (ชื่อเฉพาะของอ็อบเจ็กต์ภายใน bucket), metadata (คู่ key-value ที่ระบบและผู้ใช้กำหนด) และอาจมี ID เวอร์ชัน (หากเปิดใช้การกำหนดเวอร์ชัน) key คือสตริงเส้นทางแบบเต็ม เช่น photos/2024/summer/beach.jpg S3 มีโครงสร้างแบบแบน—ไม่มีไดเรกทอรีจริง มีเพียงคำนำหน้า key ที่ดูเหมือนไดเรกทอรี ขนาดอ็อบเจ็กต์สูงสุดคือ 5 TB สำหรับอ็อบเจ็กต์ที่ใหญ่กว่า 100 MB ให้ใช้ Multipart Upload เพื่อประสิทธิภาพและความเชื่อถือได้ที่ดีกว่า

# Upload an object
aws s3 cp ./report.pdf s3://my-company-data-20240101/reports/2024/report.pdf

# List objects with a specific prefix
aws s3 ls s3://my-company-data-20240101/reports/2024/

รูปแบบ URL ของ S3

เข้าถึงอ็อบเจ็กต์ S3 ได้ผ่าน URL สองรูปแบบ แบบ Path-style: https://s3.<region>.amazonaws.com/<bucket>/<key> (กำลังเลิกใช้สำหรับ bucket ใหม่) แบบ Virtual-hosted-style: https://<bucket>.s3.<region>.amazonaws.com/<key> (มาตรฐานปัจจุบัน) ชื่อ bucket จะกลายเป็นโดเมนย่อย จึงเป็นเหตุผลที่ชื่อ bucket ต้องเป็นไปตาม DNS สำหรับ URL ที่ลงนามล่วงหน้าและ CloudFront distribution คุณจะพบรูปแบบ virtual-hosted เสมอ การเข้าใจโครงสร้าง URL ช่วยให้คุณกำหนดค่า bucket policy และ CORS ได้อย่างถูกต้อง

# Generate a pre-signed URL valid for 1 hour (3600 seconds)
aws s3 presign s3://my-company-data-20240101/reports/2024/report.pdf \
  --expires-in 3600

โมเดลความสอดคล้องของข้อมูล S3

ตั้งแต่เดือนธันวาคม 2020 Amazon S3 ให้ ความสอดคล้องแบบอ่านหลังเขียนอย่างเข้มงวด สำหรับทุกการดำเนินการ—PUT ของอ็อบเจ็กต์ใหม่ การเขียนทับ และ DELETE—ในทุก Region โดยอัตโนมัติและไม่มีค่าใช้จ่ายเพิ่มเติม ซึ่งหมายความว่าทันทีที่การเขียนสำเร็จ การอ่านครั้งถัดไปจะคืนค่าอ็อบเจ็กต์เวอร์ชันล่าสุด นี่เป็นการปรับปรุงสำคัญจากโมเดลความสอดคล้องในที่สุดแบบเดิม และทำให้การออกแบบแอปพลิเคชันง่ายขึ้น เพราะไม่จำเป็นต้องหน่วงเวลาการอ่านหลังเขียนหรือตรรกะการลองใหม่

S3 และ Region: การจัดเก็บข้อมูลตามถิ่นที่อยู่

เมื่อคุณสร้าง S3 bucket คุณจะระบุ Region และ ข้อมูลของคุณจะอยู่ใน Region นั้น เว้นแต่คุณจะกำหนดค่าการทำสำเนาอย่างชัดเจน AWS ทำสำเนาข้อมูลภายใน Region นั้นข้าม AZ หลายแห่งเพื่อความทนทาน แต่จะไม่ย้ายข้อมูลไปยัง Region อื่นโดยอัตโนมัติ การจัดเก็บข้อมูลตามถิ่นที่อยู่ระดับ Region นี้สำคัญต่อการปฏิบัติตามข้อกำหนด: หากกฎระเบียบกำหนดให้ข้อมูลอยู่ใน EU ให้สร้าง bucket ใน eu-west-1 หรือ EU Region อื่น แล้วข้อมูลของคุณจะไม่ออกไปภายนอก

# Find the region of an existing bucket
aws s3api get-bucket-location \
  --bucket my-company-data-20240101

Multipart Upload สำหรับอ็อบเจ็กต์ขนาดใหญ่

Multipart Upload จำเป็นสำหรับอ็อบเจ็กต์ที่ใหญ่กว่า 5 GB และแนะนำสำหรับอ็อบเจ็กต์ที่ใหญ่กว่า 100 MB โดยจะแบ่งอ็อบเจ็กต์ออกเป็นส่วนต่าง ๆ (ขั้นต่ำ 5 MB ต่อส่วน สูงสุด 10,000 ส่วน) อัปโหลดแต่ละส่วนอย่างอิสระ (แบบขนาน) แล้วรวมเป็นอ็อบเจ็กต์สุดท้าย หากส่วนใดล้มเหลว คุณจะลองใหม่เฉพาะส่วนนั้น AWS CLI และ SDK จะจัดการการอัปโหลดแบบหลายส่วนโดยอัตโนมัติเมื่อคุณใช้คำสั่ง aws s3 cp สำหรับ file ขนาดใหญ่—คุณไม่จำเป็นต้องพัฒนาด้วยตนเอง

# The CLI uses multipart automatically for large files
aws s3 cp large-file-50GB.tar.gz s3://my-bucket/ \
  --storage-class STANDARD

# Or use s3api to control multipart manually
aws s3api create-multipart-upload \
  --bucket my-bucket \
  --key large-file-50GB.tar.gz

Metadata ของอ็อบเจ็กต์ S3

อ็อบเจ็กต์ S3 ทุกตัวมี metadata ของระบบ ที่ AWS กำหนด (Content-Type, Content-Length, ETag, Last-Modified) และ metadata ที่ผู้ใช้กำหนด ซึ่งเป็นทางเลือก (คู่ key-value แบบกำหนดเองที่มีคำนำหน้าว่า x-amz-meta-) Metadata จะจัดเก็บพร้อมอ็อบเจ็กต์ และส่งกลับในส่วนหัวการตอบกลับ HTTP เมื่อดาวน์โหลดอ็อบเจ็กต์ Content-Type สำคัญอย่างยิ่งสำหรับการให้บริการเว็บ—หากคุณอัปโหลด HTML file โดยไม่กำหนด Content-Type: text/html เบราว์เซอร์อาจเสนอให้ดาวน์โหลดแทนที่จะแสดงผล

# Upload with explicit Content-Type metadata
aws s3 cp index.html s3://my-website-bucket/ \
  --content-type 'text/html' \
  --metadata 'author=alice,env=production'

S3 สำหรับโฮสต์ Website แบบคงที่

Amazon S3 สามารถทำหน้าที่เป็น โฮสต์ website แบบคงที่—ให้บริการ HTML, CSS, JavaScript, รูปภาพ และ file อื่น ๆ โดยตรงจาก bucket เปิดใช้การโฮสต์ website แบบคงที่ในคุณสมบัติของ bucket ระบุเอกสารดัชนี (index.html) และเอกสารข้อผิดพลาดที่เป็นทางเลือก (404.html) URL ปลายทาง website ของ bucket มีรูปแบบดังนี้: http://<bucket>.s3-website.<region>.amazonaws.com สำหรับ HTTPS และการรองรับโดเมนแบบกำหนดเอง ให้วาง CloudFront distribution ไว้หน้า bucket website แบบคงที่ของ S3

# Enable static website hosting
aws s3api put-bucket-website \
  --bucket my-website-bucket \
  --website-configuration '{"IndexDocument":{"Suffix":"index.html"},"ErrorDocument":{"Key":"404.html"}}'

S3 Transfer Acceleration

S3 Transfer Acceleration เพิ่มความเร็วการอัปโหลดอ็อบเจ็กต์ระยะไกล โดยกำหนดเส้นทางข้อมูลผ่าน CloudFront Edge Location ที่ใกล้ที่สุด แล้วส่งต่อผ่านเครือข่าย backbone ส่วนตัวของ AWS ไปยัง Region ของ S3 bucket แทนที่จะอัปโหลดโดยตรงไปยัง S3 endpoint ไคลเอนต์จะอัปโหลดไปยัง endpoint แบบเร่งความเร็ว เช่น my-bucket.s3-accelerate.amazonaws.com Transfer Acceleration มีค่าบริการเพิ่มเติมเล็กน้อยต่อ GB แต่สามารถเพิ่มความเร็วการอัปโหลดได้อย่างมากสำหรับผู้ใช้ที่อยู่ห่างจาก Region ของ bucket ตามภูมิศาสตร์

# Enable Transfer Acceleration on a bucket
aws s3api put-bucket-accelerate-configuration \
  --bucket my-company-data-20240101 \
  --accelerate-configuration Status=Enabled

การติด Tag อ็อบเจ็กต์ S3

Tag ของอ็อบเจ็กต์ คือคู่ key-value ที่คุณแนบกับอ็อบเจ็กต์ S3 เพื่อจัดหมวดหมู่และจัดการ Tag ใช้สำหรับ: กฎวงจรชีวิต (ย้ายระดับหรือหมดอายุอ็อบเจ็กต์ที่มี tag เฉพาะ), การควบคุมการเข้าถึง (เงื่อนไข IAM และ bucket policy ตามค่า tag), การจัดสรรค่าใช้จ่าย (Cost Explorer ติดตามค่าใช้จ่าย S3 ตาม tag) และ สินค้าคงคลังและการวิเคราะห์ อ็อบเจ็กต์แต่ละตัวมี tag ได้สูงสุด 10 รายการ คุณสามารถเพิ่ม tag ขณะอัปโหลด หรืออัปเดตหลังจากอ็อบเจ็กต์มีอยู่แล้วโดยไม่ต้องแก้ไขข้อมูลของอ็อบเจ็กต์เอง

# Add tags to an existing object
aws s3api put-object-tagging \
  --bucket my-company-data-20240101 \
  --key reports/2024/report.pdf \
  --tagging '{"TagSet":[{"Key":"env","Value":"production"},{"Key":"owner","Value":"finance"}]}'

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้

สรุปบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า: S3 bucket คือคอนเทนเนอร์ที่มีชื่อไม่ซ้ำกันทั่วโลกและผูกกับ Region ที่ระบุ, อ็อบเจ็กต์จัดเก็บด้วยโครงสร้าง key แบบแบน และรองรับ metadata กับ tag, และ S3 ให้ความสอดคล้องแบบอ่านหลังเขียนอย่างเข้มงวดและความทนทานระดับ 11 เก้าผ่านความซ้ำซ้อนหลาย AZ ต่อไปเราจะศึกษาเรื่องการควบคุมการเข้าถึง S3 ด้วย bucket policy และ ACL

คำถามที่พบบ่อย

บทเรียน “บักเก็ต ออบเจ็กต์ และรีเจียน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “บักเก็ต ออบเจ็กต์ และรีเจียน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “บักเก็ต ออบเจ็กต์ และรีเจียน”

สร้างบักเก็ต S3 อัปโหลดออบเจ็กต์ ทำความเข้าใจการตั้งชื่อคีย์ และดูว่า S3 จำลองข้อมูลภายในรีเจียนอย่างไร คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “บักเก็ต ออบเจ็กต์ และรีเจียน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม

ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บักเก็ต ออบเจ็กต์ และรีเจียน
  2. การควบคุมการเข้าถึง S3: นโยบายบักเก็ตและ ACL
  3. การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ
  4. คลาสพื้นที่จัดเก็บและนโยบายวงจรชีวิต
← กลับไปที่ Cloud & IT Cert Prep