Amazon® Web Services® (AWS®) ให้บริการฐานข้อมูล (DB) ในทั้งโมเดล Database-as-a-Service (DBaaS) และ Platform-as-a-Service (PaaS) สำหรับทั้ง Relational และ Non-relational Databases
บริการเหล่านี้พร้อมใช้งานสำหรับผลิตภัณฑ์ License และ Open-sourceส่วนใหญ่ที่ให้โดย Major Service Providers AWS เสนอวิธีที่มีประสิทธิภาพและคุ้มค่าในการติดตั้งและจัดการ DBs ที่ปลอดภัยและขยายได้ในระดับ Enterprise
โพสต์นี้แนะนำสั้นๆ เกี่ยวกับ AWS DBMS Services และฟีเจอร์ที่ทำให้พวกเขาเป็นบริการ DBMS ยอดนิยมสำหรับ Cloud Platform ใดๆ เราให้การแนะนำสำหรับ AWS Services ต่อไปนี้:
- RDS: บริการ RDBMS
- Aurora: บริการ RDBMS ภายในองค์กร (In-house)
- Dynamo DB: บริการ Non-relational
- DMS: บริการย้ายฐานข้อมูล (DB Migration Service)
Amazon DBMS Services
ภาพต่อไปนี้แสดง DBMS Types ตามการจัดระเบียบข้อมูล:
AWS ให้บริการ DB ที่ได้รับ License และฟรีให้ผู้ใช้ บริการเหล่านี้อยู่ภายใต้ทั้งสองหัวข้อ Relational และ Non-relational Database Services นอกจากการให้ DBMS Engines จากบริษัทยิ่งใหญ่อย่าง Oracle® และ Microsoft® Amazon ให้บริการ DBMS ภายในองค์กร (In-house) ที่รู้จักกันดีในชื่อ Aurora® ซึ่งทันสมัย ปลอดภัย และน่าเชื่อถือมาก นอกจากการให้บริการ RDBMS แบบเฉพาะกิจ AWS ยังให้บริการ Aurora Services ซึ่งเป็น DBMS แบบเบา On-demand และ Auto-scaling
Amazon Relational Database Service (RDS)
ระบบ Relational DB ที่ 유명한 บางตัวที่มีใน Amazon Relational Database Services (RDS) รวมถึง Aurora, PostgreSQL®, MySQL®, MariaDB®, Oracle® และอื่นๆ
RDS มีฟีเจอร์ดังต่อไปนี้:
- DBaaS (Database as a Service) ใช้สำหรับ Provision ฐานข้อมูลที่ทำงานเต็มรูปแบบโดยไม่มี Overhead การดูแลระบบ (Admin)
- รันบน Virtual Machines แม้คุณจะไม่สามารถล็อกอินเข้าเซิร์ฟเวอร์เหล่านี้ได้
- AWS ดูแลการ Patching ของ RDS Operating System (OS) และ DB
- RDS รองรับ Multiple DB Engines รวมถึง MYSQL, MariaDB, PostgreSQL, Oracle, MS SQL Server และ Aurora
- คุณสามารถ Deploy RDS ใน Availability Zones (AZ) หนึ่งหรือหลายแห่ง
- ตัวเลือก Backup หลายอย่างพร้อมใช้งาน รวมถึง Automated บน S3 และ Manual Snapshots
- เมื่อ Restore โดยใช้ Backup ใดๆ ฐานข้อมูลที่ Restore จะเป็น Instance ใหม่ทั้งหมด (Brand New Instance)
- Resiliency โดยใช้ Multiple AZs (โมเดล Primary และ Standby) ให้ Synchronous Replication และ Automatic Failover โดยไม่ต้องแทรกแซง
- คุณสามารถเพิ่มประสิทธิภาพได้โดยใช้ Read Replicas ที่ให้ Asynchronous Replicas ใน Read-only Copies
- ประสิทธิภาพผ่าน Read Replica
Amazon Aurora
Amazon Aurora เป็นบริการ Relational Database ของ AWS ตาม Aurora User Guide อธิบายว่า "Aurora เป็นส่วนหนึ่งของ Managed Database Service Amazon Relational Database Service (Amazon RDS) Amazon RDS เป็น Web Service ที่ทำให้การตั้งค่า ดำเนินการ และปรับขนาด Relational Database ใน Cloud ง่ายขึ้น"
ฟีเจอร์บางส่วนของ Amazon Aurora DBMS Service:
- "Amazon Aurora เป็น Relational Database ที่เข้ากันได้กับ MySQL และ PostgreSQL สร้างสำหรับ Cloud ที่รวม Performance และ Availability ของ Enterprise Databases แบบดั้งเดิมกับ Simplicity และ Cost-effectiveness ของ Open Source Databases" (จากเอกสาร Amazon Aurora)
- "Amazon Aurora เร็วกว่า MySQL มาตรฐานถึง 5 เท่า และเร็วกว่า PostgreSQL มาตรฐาน 3 เท่า ให้ Security, Availability และ Reliability ของ Commercial Databases ที่ 1/10 ของต้นทุน" (จากเอกสาร Amazon Aurora)
- ใช้ Base Configuration ของ Cluster ประกอบด้วย Single Primary Instance และ Zero หรือมากกว่า Replicas
- ทุก Instances ใช้ Shared Storage ที่รู้จักในชื่อ Cluster Volumes และเป็น Auto-healing Cluster Volumes ปรับขนาดอัตโนมัติ และ AWS คิดค่าใช้จ่ายเฉพาะพื้นที่ที่ใช้จริง ในขณะที่สำรองข้อมูลใน S3 ตลอดเวลา
- Availability Zones อย่างน้อย 3 แห่ง มี 2 สำเนาของข้อมูลของคุณ ด้วย AZ อย่างน้อย 3 แห่ง จึงมีสำเนาข้อมูลอย่างน้อย 6 ชุด
- Aurora Storage รักษาตัวเอง (Self-healing) โดยการสแกน Data Blocks และ Disks ตลอดเวลา และซ่อมแซม Errors อัตโนมัติ
- Replicาสูงสุด 15 ตัว ซึ่งให้สิ่งอำนวยสำหรับ Parallel Query
- ใช้ Read-Write Endpoint ซึ่ง Balance Connection ข้าม Replicas ทั้งหมด
Aurora Serverless
ตาม Using Amazon Aurora Serverless v1 Amazon Aurora Serverless "เป็น On-demand Autoscaling Configuration สำหรับ Amazon Aurora Aurora Serverless DB Cluster คือ DB Cluster ที่ปรับขนาด Compute Capacity ขึ้นและลงตามความต้องการของ Application ของคุณ นี่ตรงข้ามกับ Aurora Provisioned DB Clusters ที่คุณจัดการ Capacity ด้วยตนเอง Aurora Serverless ให้ตัวเลือกที่ค่อนข้าง Simple และ Cost-effective สำหรับ Workloads ที่ ไม่บ่อย (Infrequent), รูดกัน (Intermittent) หรือ ไม่คาดเดา (Unpredictable) มัน Cost-effective เพราะมัน Start up อัตโนมัติ ปรับขนาด Compute Capacity ให้ตรงกับ Usage ของ Application และ Shutdown เมื่อไม่ได้ใช้งาน"
Aurora Serverless Features ประกอบด้วย:
- มันพัฒนาบน DB Engine เดียวกับ Aurora แต่แทนที่จะ Provision Hardware AWS จัดการมันเป็น Service
- คุณต้องระบุ Maximum และ Minimum จำนวน Aurora Capacity Unit (ACU) ใน GB ของ Memory
- คุณสามารถใช้ Data API เพื่อ Query DB (เช่น
toad) - มันคิดค่าใช้จ่ายแบบ Per-second และสามารถ Pause ระหว่างช่วง Inactivity ได้ โดยคิดค่า Storage Fee เพียงอย่างเดียว
- เหมาะสำหรับ Scenario ที่ Usage Pattern ไม่รู้จัก ด้วย Application ที่ใช้งานน้อย และ Non-linear Load
Dynamo DB (No SQL)
DynamoDB มีฟีเจอร์ดังต่อไปนี้:
- "Amazon DynamoDB เป็น NoSQL Database Service ที่รวดเร็วและยืดหยุ่นสำหรับแอปพลิเคชันทุกประเภทที่ต้องการ Consistent Single-digit Millisecond Latency ที่ทุก Scale มันเป็น Fully Managed Database และรองรับทั้ง Document และ Key-Value Data Models Flexible Data Model และ Reliable Performance ทำให้มันเหมาะสำหรับ Mobile, Web, Gaming, [Ad-tech], Internet of Things (IoT) และแอปพลิเคชันอื่นๆ มากมาย" (Important Amazon Cloud Services)
- "Amazon DynamoDB เป็น Key-Value และ Document Database ที่ส่งมอบ Single-digit Millisecond Performance ที่ทุก Scale มันเป็น Fully Managed, Multi-region, [Durable] Database พร้อม Built-in Security, Backup และ Restore และ In-memory Caching สำหรับ Internet-scale Applications" (เอกสารขาว Amazon Database)
- DB Service แบ่ง Partition ตาม Region และอนุญาตการสร้าง Table
- Table คือ Collection ของ Items ที่ Share Partition Key และ Sort Key เดียวกันกับ Configuration และ Performance Settings อื่นๆ
- Item คือ Collection ของ Attributes ภายใน Table ที่ Share Key Structure เดียวกับทุก Item อื่นใน Table
- Attribute คือ Key และ Value
ตัวอย่างต่อไปนี้แสดง Table People พร้อม 3 Items ที่แต่ละตัวมี Attributes: Person ID (Primary Key), Last Name, และอื่นๆ:
แหล่งภาพ: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html
AWS Database Migration Service (DMS)
AWS Database Migration Service (DMS) เป็นเครื่องมือย้ายฐานข้อมูลที่ให้มา ภาพต่อไปนี้แสดงการย้ายข้อมูลระหว่างบริการ:
แหล่งภาพ: https://aws.amazon.com/dms/
AWS Data Migration Systems (DMS) ให้บริการต่อไปนี้:
- "ช่วยให้คุณย้ายฐานข้อมูลไป AWS อย่างรวดเร็วและปลอดภัย Source Database ยังคงทำงานเต็มที่ระหว่าง Migration ลด Downtime ต่ำสุดสำหรับ Applications ที่พึ่งพาฐานข้อมูล" (https://digitalcloud.training/certification-training/aws-solutions-architect-associate/migration/aws-database-migration-service/)
- เปิดใช้งานการย้ายข้อมูลของคุณเข้าสู่ AWS Cloud ระหว่าง On-premises Instances (ผ่าน AWS Cloud Setup) หรือระหว่างการผสมผสานของ Cloud และ On-premises Setups
- รองรับ Migration ไปยัง DB Engine เดียวกันและ DB Engines ที่ต่างกัน ทั้ง Homogeneous และ Heterogeneous
- "สร้าง Tables และ Primary Keys ที่เกี่ยวข้องหากไม่มีอยู่บน Target คุณสามารถ Pre-create Target Tables [ด้วยตนเอง] หรือใช้ AWS Schema Conversion Tool (SCT) เพื่อสร้าง Target Tables, Indexes, Views, Triggers บางส่วนหรือทั้งหมด" (AWS Database Migration Service)
- ไม่ต้องการ SCT หากคุณย้ายไปยัง DB Engine เดียวกัน
สรุป
DBMS Services เป็นส่วนสำคัญขององค์กรใดๆ และเราอยู่ในยุคที่ข้อมูลถูกกล่าวว่าเป็น N้ำมัน (Oil) ใหม่ แม้ข้อมูลดิบ (Raw Data) อาจทำให้สับสน แต่ DBMS System ที่เหมาะสมช่วยผู้ใช้กับ Transactions และให้ Insights บนข้อมูลต่างๆ แต่ DBMS เป็นระบบที่ซับซ้อน ต้องการโครงสร้างพื้นฐานเฉพาะและทีมที่มีความเชี่ยวชาญทางเทคนิค เพราะ Security และ Scalability เป็นความท้าทายใหญ่ AWS ให้ Enterprise-class DBMS Engines หลากหลายที่ตอบสนอง Use Cases เกือบทั้งหมดและ Budget Constraints และ Scalability ที่ยอดเยี่ยม รวมถึงตัวเลือก Fully และ Partially Managed คุณยังมีตัวเลือก Database Backup ที่ปรับแต็บได้ตามต้องการ และใช้ AWS DMS เพื่อลดความซับซ้อนของ Database Migration ดังนั้น สำหรับ Enterprise ใหม่ๆ และโดยเฉพาะ Startups ที่มี Budget Constraints AWS ให้สภาพแวดล้อมที่สมบูรณ์แบบเพื่อตอบสนองความต้องการ ลูกค้า Legacy ขนาดใหญ่ก็ตระหนักถึงศักยภาพของ AWS Database Services และกำลังย้ายมาอย่างช้าแต่แน่นอน
เรียนรู้เพิ่มเติมเกี่ยวกับ AWS Data Services ของเรา
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มการสนทนากับเราได้