วิธีการสร้าง RDS และเชื่อมต่อจาก EC2 บน AWS

Amazon RDS เป็นบริการที่ได้รับการจัดการที่ช่วยให้ผู้ใช้สามารถตั้งค่า ใช้งาน และปรับขนาดฐานข้อมูลเชิงสัมพันธ์ในระบบคลาวด์ได้อย่างง่ายดาย และสามารถเชื่อมต่อไปยัง MySQL MariaDB ของ RDS ผ่านโปรแกรม PuTTy เพื่อจัดการข้อมูลได้อย่างรวดเร็ว

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

มีบทความ Update สำหรับเวอร์ชันใหม่ที่รองรับ Amazon Linux 2023 โปรดดูบทความ Update ใหม่ล่าสุดที่ลิงก์นี้

ครั้งนี้ ผมจะมาแนะนำวิธีการสร้าง RDS และเชื่อมต่อจาก EC2 ต่อจากบทความ วิธีติดตั้ง Amazon Linux บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTy

ec2-rds

สิ่งที่ต้องมี

ต้องทำการสร้าง EC2 Instance ก่อน จึงจะสามารถเริ่มทำขั้นตอนการสร้าง RDS และเชื่อมต่อจาก EC2 ได้ สามารถดูวิธีการติดตั้ง EC2 Instance ได้ที่ลิงก์ด้านล่างนี้เลย

Amazon RDS คืออะไร

Amazon Relational Database Service (Amazon RDS) เป็นบริการที่ได้รับการจัดการที่ช่วยให้ผู้ใช้สามารถตั้งค่าใช้งาน และปรับขนาดฐานข้อมูลเชิงสัมพันธ์ในระบบคลาวด์ได้อย่างง่ายดาย บริการนี้จะมอบความจุที่คุ้มค่าและปรับขนาดได้ พร้อมกับจัดการงานการดูแลระบบฐานข้อมูลที่ใช้เวลานาน ปลดปล่อยคุณให้เป็นอิสระเพื่อที่จะสามารถพุ่งความสนใจไปยังแอปพลิเคชันและธุรกิจของคุณได้อย่างเต็มที่

การสร้าง Security Group สำหรับใช้กับ RDS

ขั้นตอนนี้เป็นการสร้าง Security Group โดยใช้ชื่อว่าtinnakorn-rds-test-db

มาที่เมนูด้านซ้ายหัวข้อ ▼ Network & Security แล้วคลิกSecurity Groups
sg_menu

คลิกCreate security group
sg_create-1

เมื่อเข้ามาหน้า Create security group แล้วให้ตั้งค่า Basic details ตามต้องการ ตัวอย่างนี้คือ
» Security group name:tinnakorn-rds-test-db
» Description:tinnakorn-rds-test-db
sg_create-2

การตั้งค่า Inbound rules นี้คือ
» Type:MYSQL/Aurora ▼
» ถัดจากช่อง Source ให้ค้นหา Security group ของ Instance ตัวอย่างนี้คือ?︎ tinnakorn-rds-test-ec2จากนั้นเลือก Security group ที่ตรงกับ Instance ของเรา
sg_create-3

เลื่อนลงมาด้านล่างสุด คลิกCreate security group
sg_create-4

เมื่อสร้างเสร็จแล้วจะได้หน้าตาแบบนี้
sg_create-5

การสร้าง RDS

ขั้นตอนนี้เป็นการสร้าง RDS โดยใช้ชื่อว่าtinnakorn-rds-test-dbจากนั้นเตรียมรหัสที่ต้องการไว้ไม่ต่ำกว่า 8 ตัว เป็นรหัสอะไรก็ได้ ตัวอย่างนี้คือ Password:Aws_2022เป็นต้น

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

คลิกCreate database
rds-1

เลือกMySQL
rds-2

การตั้งค่า Settings นี้คือ
» DB instance identifier:tinnakorn-rds-test-db
» Master username:admin
» Master password:Aws_2022
» Confirm password:Aws_2022
rds-3

การตั้งค่า DB instance class นี้คือ
» DB instance class:Burstable classes (includes t classes)
» เมื่อเลือกแล้วดูที่ช่องสีเขียวจะได้เป็น db.t3.micro
rds-4

สามารถตรวจสอบราคาของ Amazon RDS ได้ที่ https://aws.amazon.com/th/rds/postgresql/pricing/ โดยเปลี่ยนเป็นรีเจี้ยนใกล้กับประเทศไทยมากที่สุดคือเอเชียแปซิฟิก (สิงคโปร์)และค้นหา Instance DB ที่เราต้องการเพื่อดูราคา
rds-5

การตั้งค่า Storage นี้คือ
» Storage type:General Purpose SSD (gp2)
rds-6
หมายเหตุ : Storage autoscaling นี้คือแนะนำให้เปิดการใช้งานไว้ ไม่ต้อง Uncheckbox ออก เพราะว่า✅ Enable storage autoscalingจะช่วยปรับขนาดพื้นที่จัดเก็บให้เราเมื่อมีขนาดเกินกำหนดตามที่เราระบุไว้ เช่น ถ้ามี Storage 20 GiB แล้วใช้งานเกินไปที่ 30 GiB ตัว Storage autoscaling ก็จะปรับขนาดพื้นที่จัดเก็บให้เป็น 3i0 GB หรือเพียงพอต่อการใช้งาน โดยจะมี Maximum storage threshold หรือ เกณฑ์การจัดเก็บสูงสุดอยู่ที่ 1000 GiB นั่นเอง แต่ถ้าข้อมูลมีการปรับขนาดให้อัตโนมัติแล้ว ก็จะมีค่าใช้จ่ายตาม Storage แค่ในส่วนที่เกินมา


เลือกDo not create a standby instance
rds-7

การตั้งค่า Connectivity นี้คือ
» เลื่อนลงมาที่ Existing VPC security groups
» ใส่ชื่อ Security group ที่สร้างไว้เมื่อสักครู่นี้ ลงในช่อง Choose VPC security groups เช่นtinnakorn-rds-test-db
» เลือก Security group ของเรา
rds-8

คลิกที่ default ออก
rds-9

ให้เหลือแค่ Security group ของเรา ตัวอย่างนี้คือtinnakorn-rds-test-db
rds-10

เลื่อนลงมาด้านล่างสุด คลิกCreate database
rds-11

การสร้าง RDS เสร็จแล้ว แต่ต้องรอสตาร์ทระบบประมาณ 5 นาที
จากนั้นคลิกเข้าไปที่ชื่อ DB identifier ของเรา ตัวอย่างนี้คือtinnakorn-rds-test-db
rds-12

เมื่อเข้ามาที่ RDS ก็จะได้หน้าตาแบบนี้
rds-13

เมื่อ RDS สตาร์ทระบบเสร็จแล้ว ก็จะได้หน้าตาแบบนี้
rds-14

การ Login เชื่อมต่อไปยัง EC2

กลับมาที่ PuTTy แล้วทำการ Login เพื่อเชื่อมต่อไปยัง EC2 ดังนี้

เรียกใช้คำสั่งนี้เพื่อทำการเปลี่ยนจาก ec2-user เป็น root

sudo su -

rds_putty-1

เรียกใช้คำสั่งนี้เพื่อ Update server ให้เป็นปัจจุบัน

yum update -y

rds_putty-2

เรียกใช้คำสั่งนี้เพื่อติดตั้ง MariaDB

yum install -y mariadb

rds_putty-3

กลับมาที่เว็บไซต์ AWS หน้า RDS แล้วเลือกหัวข้อ Connectivity & security
จากนั้น Copy Endpoint มาบันทึกไว้ที่ Notepad หรือที่ไหนก็ได้
rds_putty-4

กลับมาที่ PuTTy แล้วเรียกใช้คำสั่งนี้เพื่อเชื่อมต่อเข้าไปยัง MariaDB

# -h (Host)
# -u (User)
# -p (Password)

# tinnakorn-rds-test-db.czh3xc0v8her.ap-southeast-1.rds.amazonaws.com (Endpoint)
# admin (User)
# Aws_2022 (Password)

# ตัวอย่างการใช้คำสั่ง Login MariaDB
# -h tinnakorn-rds-test-db.czh3xc0v8her.ap-southeast-1.rds.amazonaws.com
# -u admin
# -pAws_2022

# ↓

mysql -h tinnakorn-rds-test-db.czh3xc0v8her.ap-southeast-1.rds.amazonaws.com -u admin -pAws_2022

rds_putty-5

เรียกใช้คำสั่งนี้เพื่อเรียกดู Database

show databases;

rds_putty-6

เรียกใช้คำสั่งนี้เพื่อสร้าง Database ตัวอย่างนี้ใช้ชื่อว่าtinnakorn

create database tinnakorn;

rds_putty-7

เรียกใช้คำสั่งนี้เพื่อเรียกดู Database ก็จะเห็น Database ที่ชื่อว่าtinnakornที่สร้างไปเมื่อสักครู่นี้แสดงขึ้นมา

show databases;

rds_putty-8

เรียกใช้คำสั่งนี้เพื่อเข้าไปยัง Database ที่เราสร้างไว้เมื่อสักครู่นี้ ตัวอย่างนี้คือtinnakorn

use tinnakorn;

rds_putty-9

เรียกใช้คำสั่งนี้เพื่อสร้าง Table ตัวอย่างนี้ใช้ชื่อว่าtest

create table test (id int, message varchar(255));

rds_putty-10

เรียกใช้คำสั่งนี้เพื่อเพิ่มข้อมูลเข้าไปยัง Tabletestที่สร้างมาเมื่อสักครู่นี้

insert into test value (1, 'test');

rds_putty-11

เรียกใช้คำสั่งนี้เพื่อเพิ่มข้อมูลเข้าไปยัง Tabletestอีกครั้ง

insert into test value (2, 'test2');

rds_putty-12

เรียกใช้คำสั่งนี้เพื่อเรียกดูข้อมูลจาก Tabletestจะเห็นว่าข้อมูลที่เพิ่มมา 2 ครั้งเมื่อสักครู่นี้ ได้เข้าไปยัง Tabletestแล้ว

select * from test;

rds_putty-13

วิธีการลบ RDS

ก่อนที่เราจะลบ RDS เราต้องตั้งค่า Deletion protection ก่อน จึงจะสามารถลบ RDS ได้ ซึ่งวิธีการทำง่ายๆ เพียงไม่กี่คลิก สามารถทำได้ดังนี้

มาที่หน้า RDS คลิกที่Modify
delete_rds-1

เลื่อนลงมาด้านล่างสุดมาที่หัวข้อ Deletion protection
Uncheck☐ Enable deletion protectionออกให้เหมือนกับรูปภาพ
จากนั้นคลิกContinue
delete_rds-2

เลือกApply immediatelyและคลิกModify DB instance
delete_rds-3-fix

เข้ามาที่ DB identifier ของเรา ตัวอย่างนี้คือtinnakorn-rds-test-db
delete_rds-4

มาที่Action ▼เลือกDelete
delete_rds-5

ทำการ UncheckCreate final snapshot?และRetain automated backupsออกให้หมด
delete_rds-6

จากนั้น Check✅ I acknowledge that upon instance deletion,...ตามรูปภาพ
ใส่คำว่าdelete meตามด้วยคลิกDelete
delete_rds-7

รอสักครู่จนกว่าจะขึ้น Status:✕ Deleting เพียงเท่านี้ก็สามารถลบ RDS เสร็จเรียบร้อยแล้ว
delete_rds-8

สรุป

วิธีการสร้าง RDS และเชื่อมต่อจาก EC2 นั้นสามารถทำได้ง่ายๆ เพียงแค่มี Instance และ Security Group ที่ใช้สำหรับ RDS จากนั้นก็สร้าง RDS ขึ้นมา แล้วก็ Login เข้าไปยัง PuTTy เพื่อเชื่อมต่อ MySQL MariaDB ของ RDS ผ่าน Server Amazon Linux 2 ด้วย Command เพียงเท่านี้ก็สามารถจัดการข้อมูล RDS โดยใช้ Command ได้แล้ว