การทดลองใช้ Amazon Aurora Serverless v2 ในรีเจี้ยน Singapore

Amazon Aurora Serverless v2 เผยแพร่สู่สาธารณะในวันที่ 21 เมษายน 2022 ตามที่ได้ประกาศโดย re:Invent ในปี 2020 เนื่องจากมีการประกาศเพิ่มฟังก์ชันต่างๆ ก็เลยลองใช้ทันที

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ได้ทำการทดลองใช้ Aurora Serverless v2 ในรีเจี้ยน Tokyo ที่ได้เผยแพร่ในวันที่ 21 เมษายน 2022

Amazon Aurora Serverless v2 เผยแพร่สู่สาธารณะในวันที่ 21 เมษายน 2022 ตามที่ได้ประกาศโดย re:Invent ในปี 2020 เนื่องจากมีการประกาศเพิ่มฟังก์ชันต่างๆ ก็เลยลองใช้ทันที

Amazon Aurora Serverless v2 is Generally Available: Instant Scaling for Demanding Workloads

วิธีเริ่มต้น Amazon Aurora Serverless v2

สำหรับการทดสอบจะกำหนดค่าด้วยสเปคที่ต่ำสุด

ค้นหา?︎ Amazon RDSเลือกRDS
search_rds

มาที่เมนูด้านซ้าย เลือกDatabases
menu_databases

คลิกCreate database
cre_aurora-1

คลิก▶ Show filters
cre_aurora_s2-1

เมื่อคลิก Show filters ชื่อหัวข้อจะเปลี่ยนเป็น▼ Hide filters
จากนั้นเปิดการใช้งานShow versions that support Serverless v2
cre_aurora_s2-2

การตั้งค่าหัวข้อ Settings นี้คือ
» DB cluster identifiertinnakorn-aurora-v2(ชื่ออะไรก็ได้)

▼ Credentials Settings
» Master usernameadmin
» Master password********(ตั้งรหัสที่ต้องการ)
» Confirm password********
cre_aurora_s2-3

มาที่หัวข้อ Instance configuration
Capacity range
» เลือกServerless
» Minimum ACUs0.5(1 GiB)
» Maximum ACUs1(2 GiB)
(1 GiB) และ (2 GiB) นี้จะเปลี่ยนไปตามที่เราใส่ค่า ACUs
cre_aurora_s2-4

มาที่ Availability & durability เลือกDon't create an Aurora Replica
cre_aurora_s2-5

การตั้งค่าในส่วนของ Existing VPC security groups ในหัวข้อ Connectivity สามารถดูการตั้งค่าได้ที่ลิงก์ การเชื่อมต่อฐานข้อมูล Aurora Serverless ใน EC2 นี้ได้เลย
cre_aurora_s2-6

คลิกที่หัวข้อ▶ Additional configurationเพื่อขยายหน้า แล้วตั้งค่าตามนี้
◉ Database options
» Initial database nametinnakorn(ตั้งชื่ออะไรก็ได้)
cre_aurora_s2-7

◉ Performance Insights
» UncheckEnable Performance Insights

◉ Monitoring
» UncheckEnable Enhanced monitoring

เมื่อการตั้งค่าเสร็จแล้ว เลื่อนลงมาด้านล่างสุดและคลิกปุ่มCreate databaseได้เลย
cre_aurora_s2-8

ค้นหาชื่อของเรา เช่นtinnakorn-aurora-v2แล้วสังเกตที่ Status จะเห็นว่าระบบกำลังเริ่มต้น
การเริ่มต้นระบบ tinnakorn-aurora-v2 จะใช้เวลาประมาณ 1 นาที
การเริ่มต้นระบบ tinnakorn-aurora-v2-instance-1 จะใช้เวลาประมาณ 20 นาที
cre_aurora_s2-9

เมื่อเสร็จแล้วให้คลิกเข้ามา จะได้หน้าตาแบบนี้ ซึ่งการแสดงผลจะแตกต่างจาก Aurora Serverless v1
cre_aurora_s2-10

วิธีการ Stop Amazon Aurora Serverless v2

คลิกเข้าไปที่ชื่อ DB identifier ของเรา
dev_aurora_v2-1

คลิกModify
dev_aurora_v2-2

เลื่อนลงมาด้านล่างสุดที่หัวข้อ Deletion protection แล้วตั้งค่าตามนี้
» UncheckEnable deletion protection
» คลิกContinue
dev_aurora_v2-3

เลือกApply immediatelyและกดปุ่มModify cluster
dev_aurora_v2-4

คลิกที่ DB identifier ด้านล่างที่มีคำว่า instance
dev_aurora_v2-5

คลิกActions ▼และเลือกDelete
dev_aurora_v2-6

เมื่อมี pop-up แสดงขึ้นมาให้ตั้งค่าตามนี้
» UncheckCreate final snapshot? (เมื่อ Uncheck แล้วข้อความด้านล่างจะแสดงขึ้นมา)
» CheckboxI acknowledge that upon instance deletion,auto...
» พิมพ์delete meลงไปเพื่อยืนยันการลบ
» กดปุ่มDelete
dev_aurora_v2-7

เมื่อทำการลบเสร็จแล้ว Status จะแสดงเป็น❌ Deletingจากนั้นให้รอสักครู่จนกว่า DB identifier ของเราจะหายไปเอง เพียงเท่านี้การลบ Database Aurora Serverless v2 ก็เสร็จเรียบร้อยแล้ว
dev_aurora_v2-8

คุณสมบัติของ Amazon Aurora Serverless v2

Provisioned Amazon Aurora ได้จัดเตรียมฟังก์ชันทั้งหมดที่มี

คุณสามารถทำสิ่งต่างๆ ได้แทบจะทั้งหมดด้วย Provisioned Aurora Instance ที่มีการเตรียมใช้งาน โดยสามารถรองรับการกำหนดค่าหลาย AZ และสามารถเปิดใช้ Instance ได้สูงสุด 16 อินสแตนซ์ (Writer 1 เครื่อง, Reader 15 เครื่อง) นอกจากนี้ยังรองรับฐานข้อมูลทั่วโลกและพร็อกซี RDS อีกด้วย

ปรับ Scale Up / Down ด้วยความเร็วสูง

ตรวจสอบสถานะการโหลดของ Aurora Serverless v2 Instance (CPU、Memory、Network) และทำการ Scale Up อย่างรวดเร็ว (Scaling แนวตั้งฉาก) โดยอัตโนมัติและเมื่อโหลดลดลง มันจะทำการ Scale Down โดยอัตโนมัติ

ระหว่าง Scaling การเชื่อมต่อจะไม่ขาด Throughput ก็จะไม่ลดลงและไม่หยุดในระหว่าง Scaling

พารามิเตอร์จะเปลี่ยนแปลงแบบไดนามิกตาม Scaling

Amazon Aurora Serverless v2 ใช้ Aurora Capacity Unit (ACU) เป็นหน่วย Scaling โดย 1 ACU คือการรวมกันของ Memory ประมาณ 2 GiB, CPU ที่สอดคล้องกันและ Networking

สามารถตั้งค่าได้ทีละ 0.5 ACU โดยเริ่มจากค่าต่ำสุด (0.5 ACU) จนถึงค่าสูงสุด (128 ACU)

การผสมผสานของ Serverless Instance กับ Provisioned Instance

คุณสามารถใช้งานผสมผสานระหว่าง Aurora Serverless v2 Instances ร่วมกับ Aurora Provisioned Instances ได้

แม้ว่า Provisioned Instance กับ Serverless v2 Instance จะผสมผสานกัน แต่ก็สามารถเชื่อมต่อกับ Cluster EndPoint ได้

ในกรณีที่คุณมี Writer ของ Provisioned Instance และ Reader ของ Serverless v2 Instance ใน Cluster Aurora DB เดียวกัน คุณสามารถ Failover จาก Writer ของ Provisioned Instance ไปยัง Serverless v2 Instance ได้

ระวังค่าต่ำสุดของ ACU เมื่อเปิดใช้งานคุณสมบัติที่ใช้ Memory

เมื่อเปิดใช้งาน Performance Insights จะใช้ Memory ประมาณ 2 ACU นอกจากนี้หากคุณเปิดใช้งานคุณลักษณะที่ใช้ Memory เช่น My SQL Binary Log และ MySQL Parallel Query เราขอแนะนำให้คุณตั้งค่าขั้นต่ำสุดเป็น 2 ACU หรือสูงกว่า

Avoiding out-of-memory errors

ความแตกต่างระหว่าง Serverless v1 กับ Serverless v2

Serverless v2       Serverless v1      
ACU Scaling ตั้งแต่ 0.5 ACU ขึ้นไปทีละ 0.5 ACU ตั้งแต่ 1 ACU ขึ้นไปทีละ 2 เท่า
จะเป็น 0 ACU เมื่อไม่ได้ใช้งาน ไม่ ถ้าตั้งค่าไว้จะเป็น 0 ACU เมื่อไม่ได้ใช้งาน
หยุดชั่วคราวระหว่าง Scaling ไม่ ทำการ Scaling หลังจากเสร็จสิ้นการ Transaction
MySQL Version MySQL 8.0.23(3.02.0) MySQL 5.7(2.07.1), MySQL 5.6.10a
PostgreSQL Version PostgreSQL 13.6 PostgreSQL 10.14
Multi AZ เป็นไปได้ เป็นไปไม่ได้
ค่าใช้บริการ $0.20 / ACU Hour $0.10 / ACU Hour
Query Editor ใช้ไม่ได้ ใช้ได้

สรุป

เนื่องจากใน v2 ขณะที่ idle อยู่ ค่าจะไม่เป็น 0 ACU ซึ่งจะไม่ค่อยมีการเชื่อมต่อจึงไม่เหมาะสำหรับใช้เป็น DB อย่างไรก็ตาม v2 เหมาะสำหรับการใช้งานเว็บไซต์ที่คาดว่าจะเกิดการ Spike จนทำให้จำนวนการเข้าใช้งานเกิดการผันผวนอย่างมากนั่นเอง นอกจากนี้ยังมีข้อดีอีกมากมาย เช่น การเพิ่มความน่าเชื่อถือด้วย Multi AZ ซึ่งความเหมาะสมในการใช้งานของ v1 กับ v2 นั้นจะแตกต่างกัน แนะนำว่าควรเปรียบเทียบให้ดีก่อนแล้วค่อยใช้งานครับ

บทความที่เกี่ยวข้อง