AWS Backup คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2023
เริ่มต้น
สวัสดีครับ LIGHT จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้อยากจะมาแนะนำให้ทุกคนได้รู้จักกับบริการ AWS Backup กันครับ
AWS Backup คือ
ถ้าให้เรียกบริการนี้แบบเข้าใจง่ายก็อาจจะเรียกว่าเป็น "Service for centrally managing backups of AWS services"หรือ"บริการสำหรับจัดการสำรองข้อมูลของ AWS จากส่วนกลาง" ดูรายละเอียดเพิ่มเติมที่ FAQ ครับ
ก่อนการมาถึงของ AWS Backup ในแต่ละบริการจะต้องทำการสำรองข้อมูลของบริการนั้นๆไว้เอง และต้องตั้งเวลาในการสำรองและเก็บรักษาข้อมูลแยกกันไป โดย AWS Backup จะรองรับการสำรองข้อมูลในแต่ละบริการ และสามารถจัดการ กำหนดการ (schedule), ระยะเวลาสำหรับเก็บข้อมูลที่สำรองไว้ รวมไปถึงการตั้งค่า Access policy สำหรับการสำรองข้อมูลต่างๆได้โดยการทำงานจากศูนย์กลางผ่านบริการนี้
Region ที่รองรับบริการ
- US East (N.Virginia)
- US East (Ohio)
- US West (Northern California)
- US West (Oregon)
- Africa (Cape Town)
- Asia Pacific (Hong Kong)
- Asia Pacific (Hyderabad)
- Asia Pacific (Jakarta)
- Asia Pacific (Mumbai)
- Asia Pacific (Osaka)
- Asia Pacific (Seoul)
- Asia Pacific (Singapore)
- Asia Pacific (Sydney)
- Asia Pacific (Tokyo)
- Canada (Central)
- Europe (Frankfurt)
- Europe (Ireland)
- Europe (London)
- Europe (Milan)
- Europe (Frankfurt)
- Europe (Paris)
- Europe (Stocholm)
- Europe (Paris)
- Middle East (Bahrain)
- South America (Sao Paulo)
- AWS GovCloud (US-West)
ข้อมูล ณ วันที่ 16/12/2022
สามารถตรวจสอบข้อมูลอัพเดทได้ที่
AWS Regional Services
บริการที่รองรับ
คุณสามารถใช้ AWS Backup ในการจัดการและทำการสำรองข้อมูลสำหรับบริการ AWS ต่อไปนี้
- Amazon EBS
- Amazon EC2 (รวมถึง Windows applications)
- Amazon RDS และ Aurora
- Amazon EFS
- Amazon FSx
- Amazon Neptune databases
- Amazon DocumentDB (with MongoDB compatibility) databases
- Amazon S3
- Amazon Redshift
- AWS CloudFormation
- AWS Storage Gateway volumes
- VMware Virtual machine
ยิ่งไปกว่านั้น AWS Backup ยังรองรับการจัดการทำสำรองข้อมูล VMware virtual machine สำหรับ on-premises และ Amazon Outposts、VMware CloudTM on AWS ด้วย
โครงสร้างพื้นฐาน
โครงสร้างพื้นฐาน ของ AWS Backup จะมีรูปแบบตามตารางทางด้านล่างนี้ โดยจะเป็นการสร้าง Backup plan และทำการ Backup ข้อมูลของบริการต่างๆ
รายละเอียดเพิ่มเติมจากตารางทางด้านบน
คำอธิบายในแต่ละหัวข้อ
Backup Plan
เป็นส่วนที่รวบรวมการตั้งค่า Backup โดย Backup Plan จะประกอบไปด้วย "Backup rule" และ "Resource"
Backup rule
เป็นส่วนที่เก็บการตั้งค่าที่เกี่ยวข้องกับการ Backup อย่างเช่น Backup schedule เป็นต้น
โดยใน 1 Backup Plan สามารถตั้งค่าได้หลาย Backup rule
schedule
ส่วนนี้จะสามารถตั้ง schedule สำหรับการ Backup ข้อมูลได้
โดยการระบุ "Backup window" ซึ่งจะสามารถระบุ "ความถี่" เป็น รายวัน ,รายสัปดาห์ หรือ รายเดือน รวมไปถึง window และ เวลาที่จะเริ่มทำการ Backup
ถึงจะไม่ได้กล่าวในบทความนี้แต่ "on-demand backup" ก็สามารถตั้งค่าได้เหมือนกัน
life cycle
กำหนดวันหมดอายุสำหรับการสำรองข้อมูลที่สร้างขึ้น
นอกจากนี้ Backup ของบางบริการสามารถย้ายไป cold storage ได้ก่อนที่จะหมดอายุด้วยราคาที่ถูกลง
ระยะเวลาเก็บรักษา Backup ที่สร้างไว้ใน cold storage ขั้นต่ำจะเริ่มต้นที่ 90 วัน หากมีการลบข้อมูล Backup ก่อนถึงเวลา 90 วัน ค่าบริการพื้นที่การเก็บข้อมูลที่เหลือจาก 90 วันนั้นจะถูกคำนวณเฉลี่ยและเรียกเก็บเป็นรายวัน
Backup vaults
Backup vaults เป็น container สำหรับจัดการ Backup ตามบริการที่มีสำรองข้อมูลเอาไว้ โดย vaults จะมีหน้าที่เหมือนชามที่จะจัดกลุ่ม และเราสามารถควบคุมการเข้าถึงโดยกำหนด Access Policy ให้กับ vaults ได้อีกด้วย
- ข้อมูลเพิ่มเติม Encryption for Backups in AWS
Resource
คือ ทรัพยากร (Resource) ของแต่ละบริการที่รองรับการ Backup โดยเราสามารถระบุ Resource ID หรือ Tag ของบริการต่างๆที่รองรับเพื่อทำการ Backup ได้
ในการดึงข้อมูลการ Backup และ การทำ Restore บน Resource จำเป็นต้องมีการให้สิทธ์ดำเนินการด้วย IAM Roles
Default Role คือ AWSBackupDefaultServiceRole
AWSBackupServiceRolePolicyForBackup
AWSBackupServiceRolePolicyForRestores
ซึ่งจะมี 2 Managed policies ทางด้านล่างครับ
AWSBackupServiceRolePolicyForBackup
JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"dynamodb:DescribeTable",
"dynamodb:CreateBackup"
],
"Resource": "arn:aws:dynamodb:*:*:table/*",
"Effect": "Allow"
},
{
"Action": [
"dynamodb:DescribeBackup",
"dynamodb:DeleteBackup"
],
"Resource": "arn:aws:dynamodb:*:*:table/*/backup/*",
"Effect": "Allow"
},
{
"Effect": "Allow",
"Action": [
"rds:AddTagsToResource",
"rds:ListTagsForResource",
"rds:DescribeDBSnapshots",
"rds:CreateDBSnapshot",
"rds:CopyDBSnapshot",
"rds:DescribeDBInstances"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"rds:DeleteDBSnapshot"
],
"Resource": [
"arn:aws:rds:*:*:snapshot:awsbackup:*"
]
},
{
"Effect": "Allow",
"Action": [
"storagegateway:CreateSnapshot",
"storagegateway:ListTagsForResource"
],
"Resource": "arn:aws:storagegateway:*:*:gateway/*/volume/*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags",
"ec2:DeleteSnapshot"
],
"Resource": "arn:aws:ec2:*::snapshot/*"
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeSnapshots",
"ec2:DescribeTags"
],
"Resource": "*"
},
{
"Action": [
"elasticfilesystem:Backup",
"elasticfilesystem:DescribeTags"
],
"Resource": "arn:aws:elasticfilesystem:*:*:file-system/*",
"Effect": "Allow"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots"
],
"Resource": [
"arn:aws:ec2:*::snapshot/*",
"arn:aws:ec2:*:*:volume/*"
]
},
{
"Action": "kms:DescribeKey",
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "kms:CreateGrant",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
},
{
"Action": [
"tag:GetResources"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
AWSBackupServiceRolePolicyForRestores
JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"dynamodb:Scan",
"dynamodb:Query",
"dynamodb:UpdateItem",
"dynamodb:PutItem",
"dynamodb:GetItem",
"dynamodb:DeleteItem",
"dynamodb:BatchWriteItem",
"dynamodb:DescribeTable"
],
"Resource": "arn:aws:dynamodb:*:*:table/*",
"Effect": "Allow"
},
{
"Action": [
"dynamodb:RestoreTableFromBackup"
],
"Resource": "arn:aws:dynamodb:*:*:table/*/backup/*",
"Effect": "Allow"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateVolume",
"ec2:DeleteVolume"
],
"Resource": [
"arn:aws:ec2:*::snapshot/*",
"arn:aws:ec2:*:*:volume/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeSnapshots",
"ec2:DescribeVolumes"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"storagegateway:DeleteVolume",
"storagegateway:DescribeCachediSCSIVolumes",
"storagegateway:DescribeStorediSCSIVolumes"
],
"Resource": "arn:aws:storagegateway:*:*:gateway/*/volume/*"
},
{
"Effect": "Allow",
"Action": [
"storagegateway:DescribeGatewayInformation",
"storagegateway:CreateStorediSCSIVolume",
"storagegateway:CreateCachediSCSIVolume"
],
"Resource": "arn:aws:storagegateway:*:*:gateway/*"
},
{
"Effect": "Allow",
"Action": [
"storagegateway:ListVolumes"
],
"Resource": "arn:aws:storagegateway:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"rds:DescribeDBInstances",
"rds:DescribeDBSnapshots",
"rds:ListTagsForResource",
"rds:RestoreDBInstanceFromDBSnapshot",
"rds:DeleteDBInstance",
"rds:AddTagsToResource"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:Restore",
"elasticfilesystem:CreateFilesystem",
"elasticfilesystem:DescribeFilesystems",
"elasticfilesystem:DeleteFilesystem"
],
"Resource": "arn:aws:elasticfilesystem:*:*:file-system/*"
},
{
"Action": "kms:DescribeKey",
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "kms:CreateGrant",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}
โดยจะรักษาสิทธิ์ที่เกี่ยวข้องกับการทำ Backup/Restore ในทุกบริการที่รองรับ โดยพื้นฐานแล้ว Default Role ก็ใช้งานได้ไม่มีปัญหาแต่หากต้องการเพิ่มความปลอดภัยให้มากขึ้น ควรจำกัดบริการที่อนุญาตในการทำ Backup/Restore ให้แคบลงด้วย
รูปแบบการ Backup ในแต่ละบริการ
รูปแบบการ Backup บน AWS Backup จะแตกต่างกันไปในแต่ละบริการ
การเข้าใจรูปแบบการทำ Backup เป็นสิ่งที่สำคัญมาก เลยจะมายกตัวอย่างอธิบายส่วนพื้นฐานที่เกี่ยวกับรูปแบบการ Backup ของบางบริการให้ทุกคนได้เข้าใจกัน
Amazon EBS
การ Backup ของ EBS จะเป็นการใช้ Amazon EBS snapshots
ปัญหาที่ว่า "snapshot จะเป็น Backup รึเปล่า?" ประเด็นนี้เป็นจุดที่ผู้ใช้ต้องตรวจสอบให้แน่ใจว่าข้อมูลใน snapshot ต้องมีความสอดคล้องกันแม้ในขณะที่ใช้ AWS Backup ก็ตาม
เนื่องจากไม่มีข้อมูลเกี่ยวกับการจัดการที่เกี่ยวข้องกับการสอดคล้องเมื่อรับข้อมูล EBS Snapshot จาก AWS Backup จึงคิดว่าอาจจะเป็นการทำ EBS snapshot แบบ "ปกติ"
Amazon RDS
Backup ของ RDS จะมี 2 ประเภท คือ Creating a DB snapshot ที่จะดึงข้อมูลแบบ manual โดยผู้ใช้ และ การทำ automated backups สำหรับ Point-in-Time-Recovery ส่วนที่ AWS Backup สามารถจัดการได้คือ DB snapshot ครับ
ความสอดคล้องของ DB snapshot จะรับประกันโดยโครงสร้างของ RDS
Amazon DynamoDB
Backup ของ DynamoDB ก็จะมี 2 ประเภทเช่นกัน คือ on-demand backup ที่จะดึงข้อมูลแบบ manual โดยผู้ใช้ และ การทำ Backup แบบต่อเนื่องสำหรับ Point-in-Time-Recovery ซึ่งในส่วนที่ AWS Backup สามารถจัดการได้คือ on-demand backup โดยการทำ on-demand backup จะไม่ได้รับประกันความสอดคล้องของข้อมูลระหว่างรายการต่างๆ
บน DynamoDB backup จะไม่รับประกันความสอดคล้องระหว่างรายการ แต่ Skew ระหว่างการอัปเดต Backup โดยทั่วไปจะไม่เกิน 1 วินาที
Amazon EFS
Backup ของ Amazon EFS ที่ AWS Backup สามารถจัดการได้คือ on-demand backup และ Concurrent backups (การสำรองข้อมูลกึ่งปัจจุบัน) ซึ่งจะจำกัด 1 การสำรองนี้ต่อ Resource
และ Automatic backups
เกี่ยวกับความสอดคล้องของการ Backup
ความสอดคล้องของการ Backup
Amazon EFS ถูกออกแบบมาให้พร้อมใช้งาน โดยสามารถเข้าถึงและแก้ไขระบบของ Amazon EFS ได้แม้ AWS Backup กำลังทำการสำรองข้อมูลอยู่ อย่างไรก็ตาม การเปลี่ยนแปลงที่เกิดขึ้นกับระบบไฟล์ที่กำลังสำรองข้อมูลอยู่อาจทำให้เกิดความไม่สอดคล้องของข้อมูล เช่น ข้อมูลซ้ำซ้อนเกิดความแตกต่าง หรือข้อมูลบางส่วนขาดหายไป การปรับเปลี่ยนเหล่านี้อาจรวมไปถึงการทำงานในการเขียน, เปลี่ยนชื่อ, ย้าย และลบข้อมูล เพื่อให้แน่ใจว่าการสำรองข้อมูลมีความสมบูรณ์ แนะนำให้หยุดการทำงานแอปพลิเคชันหรือกระบวนการต่างๆในขณะที่ทำการสำรองข้อมูล หรือ ตั้งกำหนดการสำรองข้อมูลให้ทำงานในช่วงเวลาที่ไม่มีการแก้ไขระบบ
จากเนื้อหาทางด้านบน ผู้ใช้งานจึงหน้าที่ในการตรวจสอบความสมบูรณ์ของระบบอยู่เสมอ
Amazon Storage Gateway
บน AWS Backup ในบรรดาฟังก์ชันที่รองรับใน Amazon Storage Gateway เราสามารถสำรองข้อมูล Volume ของ Volume Gateway ได้ โดยการสำรองข้อมูลของ Storage Gateway จะทำด้วย EBS snapshot
ลองใช้งาน
เนื่องจากบทความนี้เป็นบทความสำหรับผู้เริ่มต้น เลยจะสาธิตสำรองข้อมูล volume ของ EBS ดูครับ
Dashboard
Dashboard ของ AWS Backup มีหน้าจอตามภาพนี้
สร้าง Backup plans
ที่เมนู "Backup plans" ทางด้านซ้ายมือ เลือก "Create backup plans"
เพื่อสร้างแผนสำรองข้อมูล
หลังจากที่เลือก "Create backup plans"
แล้ว จะเข้าสู่หน้าจอการสร้าง Backup plans โดยสามารถเลือกวิธีการสร้างได้ 3 วิธีดังนี้
- เริ่มต้นด้วยแผนที่มีอยู่แล้ว (Start with a template) เป็นวิธีการสร้างแผนใหม่จากเทมเพลตที่กำหนดไว้
-
สร้างแผนใหม่ (Build a new plan)
สร้างแผนใหม่เริ่มต้นตั้งแต่ศูนย์ -
สร้างแผนโดยใช้ JSON (Define a plan using JSON)
สร้างแผนจากข้อมูลรูปแบบ JSON
ในครั้งนี้จะเลือกเป็น "Build a new plan"
และจะสร้างแผนสำรองข้อมูลวันละครั้งและตั้งระยะเวลาเก็บข้อมูลที่ 7 วัน ในแผนที่ชื่อ piyachart-test
และระบุชื่อ Rules ที่หัวข้อ "Backup rule name"
ถ้ากำหนด "ความถี่" ของกำหนดการเป็น "รายวัน" การสำรองข้อมูลจะทำวันละครั้ง ซึ่งเรียกว่าการสำรองข้อมูลรายวัน และ "Backup windows" สามารถตั้งเวลาเริ่มต้นและเวลาของ windows ได้ตามเวลา UTC
โดยในครั้งนี้จะตั้งให้เริ่มในเวลา 21.20 PM (เวลาไทยประมาณ 14.20) และตั้งเวลา Retention period (ระยะเวลาเก็บข้อมูล) ไว้ที่ 7 วัน
และเราจะไม่ใช้ Backup vault เป็น default แต่จะสร้างใหม่โดยไปที่หัวข้อ Create new Backup vault
ทางด้านบน
หน้าต่างการสร้าง Backup vault ใหม่ จะแสดงขึ้นมาเป็น popup ให้ใส่ข้อมูลที่จำเป็นลงไป ในครั้งนี้จะตั้งชื่ออย่างเดียว ส่วนหัวข้ออื่นๆจะตั้งตามค่าเริ่มต้นแล้วเลือกที่ Create backup vault
เลย
จากนั้นเลือก Backup vault ใหม่ที่เราสร้างขึ้นมา
เมื่อระบุข้อมูลครบถ้วนแล้วให้เลือกที่ Create plan
ก็จะสร้าง Backup plan ได้แล้ว
ระบุ Resource
หลังจากสร้าง Backup plan แล้วจะเข้าสู้หน้าAssign resources
จากนั้นตั้งชื่อ Assign resources และเลือก IAM Role เป็น ค่าเริ่มต้น และระบุ EBS volume ID สำหรับการ Backup ที่ช่อง Resource type
เท่านี้การตั้งค่า Backup ก็จะเสร็จสมบูรณ์ทั้งหมดแล้ว
ตรวจสอบผลลัพธ์
สามารถตรวจสอบผลลัพธ์การทำงานได้จากหัวข้อ jobs
รายละเอียดของ jobs จะแสดงตามนี้
และสามารถตรวจสอบรายละเอียดของ Resource ที่ Backup แล้วได้ที่ Protected resources
เมื่อเข้าไปดูรายละเอียดจะระบุข้อมูล Backup ไว้ที่หัวข้อ Recovery point ID
โดยเราสามารถทำการ Restore backup ได้จากหัวข้อนี้
หากกดปุ่ม Restore
แล้วก็จะเข้าสู่หน้า Restore ข้อมูล EBS Volume จาก Snapshot
สามารถตรวจสอบ EBS Snapshot ได้จากหน้ารวม Snapshot ได้
(ในคำอธิบาย「This snapshot is created by the AWS Backup service.」
จะหมายถึง Backup นี้ถูกสร้างโดย AWS Backup โดยจะมีการติดแท็กเป็น aws:backup:source-resource
ไว้ด้วย)
และหากมีการลบ Snapshot ที่สร้างโดย AWS Backup จะแสดง error ทางด้านล่าง
หากต้องการลบข้อมูล Backup (Snapshot) ต้องทำการลบจาก AWS Backup เท่านั้น
ค่าบริการ
ค่าบริการ AWS Backup จะมีรายละเอียดดังนี้
AWS Backup จะเรียกเก็บค่าบริการเฉพาะปริมาณข้อมูลที่ทำการ Restore และปริมาณหน่วยความจำที่ใช้ไปในการ Backup ของเดือนนั้นๆเท่านั้น โดยไม่มีค่าแรกเข้าและค่าบริการขั้นต่ำ
ค่าบริการจะขึ้นอยู่กับปริมาณพื้นที่เก็บข้อมูลที่ใช้ไป และจะไม่เรียกเก็บค่าบริการทุกครั้งที่ทำการสำรองข้อมูล โดยค่าบริการของการสำรองข้อมูลสำหรับแต่ละบริการ (EBS Snapshot, DB Snapshot เป็นต้น) ก็จะเป็นค่าบริการของการสำรองข้อมูล AWS Backup ด้วย
Backup storage
ราคา ณ ปัจจุบัน (30/12/2022) ของ singapore region
Resource Type | Warm Storage | Cold Storage ^^ |
---|---|---|
Amazon EFS File System Backup† | $0.06 per GB-Month | $0.012 per GB-Month |
Amazon EBS Volume Snapshot | $0.05 per GB-Month | - |
Amazon RDS Database Snapshot | $0.095 per GB-Month | - |
Amazon Aurora Cluster Snapshot | $0.023 per GB-Month | - |
Amazon DynamoDB Table Backup | $0.114 per GB-Month | $0.0342 per GB-Month** |
AWS Storage Gateway Volume Backup | $0.05 per GB-Month | - |
Amazon FSx for Windows File Server Backup | $0.05 per GB-Month | - |
Amazon FSx for Lustre Backup | $0.05 per GB-Month | - |
Amazon Fsx for NetApp ONTAP Backup | $0.05 per GB-Month | - |
Amazon FSx for OpenZFS Backup | $0.05 per GB-Month | - |
Amazon DocumentDB Cluster Snapshot | $0.023 per GB-Month | - |
Amazon Neptune Cluster Snapshot | $0.023 per GB-Month | - |
Amazon S3 Backup†* | $0.06 per GB-Month | - |
VMware Backup^† | $0.06 per GB-Month | $0.012 per GB-Month |
Amazon Redshift Cluster Snapshot | ||
First 50 TB/Month | $0.025 per GB-Month | - |
Next 450 TB/Month | $0.024 per GB-Month | - |
Over 500 TB/Month | $0.023 per GB-Month | - |
Restore pricing
ราคา ณ ปัจจุบัน (30/12/2022) ของ singapore region
Resource Type | Warm Storage | Cold Storage ^^ | Item-level Restore |
---|---|---|---|
Amazon EFS File System Backup† | $0.024 per GB | $0.036 per GB | $0.60 per request |
Amazon EBS Volume Snapshot | Free | - | - |
Amazon RDS Database Snapshot | Free | - | - |
Amazon Aurora Cluster Snapshot | Free | - | - |
Amazon DynamoDB Table Backup | $0.171 per GB | $0.228 per GB | - |
AWS Storage Gateway Volume Backup | Free | - | - |
Amazon FSx for Windows File Server Backup | Free | - | - |
Amazon FSx for Lustre Backup | Free | - | - |
Amazon Fsx for NetApp ONTAP Backup | Free | - | - |
Amazon FSx for OpenZFS Backup | Free | - | - |
Amazon DocumentDB Cluster Snapshot | Free | - | - |
Amazon Neptune Cluster Snapshot | Free | - | - |
Amazon S3 Backup | $0.024 per GB | - | - |
VMware Backup^† | $0.024 per GB | $0.036 per GB | $0.60 per request† |
Amazon Redshift Cluster Snapshot | Free | - | - |
สุดท้าย
AWS Backup เป็นบริการสำรองข้อมูลของบริการต่างๆของ AWS ที่หลากหลาย และ เพิ่มความสะดวกในการใช้งาน และ ความปลอดภัยสูงให้กับข้อมูลที่ได้ทำการสำรองไว้อีกด้วย หวังว่าทุกคนที่ได้ลองใช้บริการ และได้อ่านบทความนี้จะได้ประโยชน์กันนะครับ