การเชื่อมต่อจาก EC2 (Windows Server) ไปยัง Postgres บน RDS และ Import ข้อมูลตัวอย่าง

เราสามารถ Import ข้อมูลจาก EC2 (Windows Server) ไปยัง Postgres บน RDS (Amazon Aurora PostgreSQL) ได้โดยการคลิกเพียงแค่ไม่กี่คลิก เนื่องจากเป็นวิธีการ Import ข้อมูลที่สะดวกและน่าสนใจ จึงอยากจะมาแนะนำในบทความนี้

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

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

pgAdmin 4 คืออะไร

pgAdmin เป็นเครื่องมือการจัดการสำหรับ PostgreSQL และฐานข้อมูลเชิงสัมพันธ์เชิงอนุพันธ์ เช่น EnterpriseDB's EDB Advanced Server อาจเรียกใช้เป็นเว็บหรือแอปพลิเคชันเดสก์ท็อป

OS ที่รองรับ pgAdmin

  • Windows
  • MacOS
  • Linux

เป้าหมาย

ดำเนินการใน AWS Management Console
สร้าง EC2 (Windows Server) และสร้าง Amazon Aurora PostgreSQL

ดำเนินการใน Windows Server
Login เข้าไปที่ EC2 (Windows Server) แล้วติดตั้ง pgAdmin 4 แล้วเชื่อมต่อกับ Amazon Aurora PostgreSQL และ Import ข้อมูลไปยัง Amazon Aurora PostgreSQL

การดำเนินการในบทความนี้จะทำบน OS: Windows 11 (AWS Management Console) และบน Remote Desktop Connection (Windows Server)

การสร้าง Microsoft Windows Server ใน Amazon EC2

ขั้นตอนนี้ดำเนินการใน Windows 11 (AWS Management Console)

ดูตัวอย่างการเริ่มต้น Windows Server ได้ที่ลิงก์ด้านล่างนี้ครับ (แนะนำให้ดู ตัวอย่างตั้งค่าการสร้าง Microsoft Windows Server ใน EC2 ของบทความครั้งนี้ ประกอบด้วย)

ตัวอย่างตั้งค่าการสร้าง Microsoft Windows Server ใน EC2 ของบทความครั้งนี้

※Create Key pairs
Key pairs: tinnakorn-pg-win (ตั้งชื่อที่ต้องการ)
Key pair type: RSA
Private key file format: ◉ pem

※Launch instances
Name and tags
Name: tinnakorn-pg-win (ตั้งชื่อที่ต้องการ)

Application and OS Images (Amazon Machine Image)
Amazon Machine Image (AMI): Microsoft Windows Server 2022 Base

Instance type
Instance type: t3a.medium

Key pair (login)
Key pair name - required: tinnakorn-pg-win (key pair ที่สร้างขึ้นเมื่อสักครู่นี้)

Network settings
Firewall (security groups)
Security group name - required: tinnakorn-pg-win (ตั้งชื่อที่ต้องการ)
Description - required: tinnakorn-pg-win (ป้อนตามต้องการ)
Inbound security groups rules
Security group rule 1 (TCP, 3389, xxx.xxx.xxx.xxx/32)
Type: rdp | Source type: My IP | Source: xxx.xxx.xxx.xxx/32

Configure storage
1x: 30 GiB gp2 Root volume (Default)

เชื่อมโยง Elastic IP (EIP)

Instance ที่ไม่มีการใช้งาน EIP นั้น หลังจาก Stop การใช้งานไปแล้ว และทำการ Start Instance นั้นอีกรอบ ตัวระบบจะเปลี่ยนแปลง IP ใหม่ทุกครั้งที่มีการ Start และ Stop Instance ดังนั้นจำเป็นต้องเชื่อมโยง EIP ให้กับ Instance เพื่อทำการล็อก IP แล้วการใช้งานหลังจากนั้น เมื่อทำการ Start และ Stop Instance ก็จะเป็น IP เดิมทุกครั้งที่เราใช้งาน

ดูวิธีการเชื่อมโยง Elastic IP (EIP) ได้ที่ลิงก์ด้านล่างนี้

แนะนำยังไม่ต้อง Login ไปยัง Windows Server ซึ่งจะอธิบายในภายหลัง !
ระหว่างรอ EC2 (Windows Server) เริ่มต้นระบบ ให้เริ่มสร้าง Amazon Aurora PostgreSQL เตรียมไว้ก่อนได้เลย

การสร้าง Amazon Aurora PostgreSQL

ขั้นตอนนี้ดำเนินการใน Windows 11 (AWS Management Console)

ตัวอย่างนี้ผมใช้ Aurora Serverless V1 (Amazon Aurora PostgreSQL) ซึ่งเราสามารถใช้ RDS ตามประเภทที่ต้องการหรือทำการติดตั้ง MySQL ใน Windows Server ก็ได้

ดูตัวอย่างการเริ่มต้น Aurora Serverless ได้ที่ลิงก์ด้านล่างนี้ (เนื่องจากลิงก์บทความด้านล่างนี้เป็นแค่ตัวอย่าง แนะนำให้ดู ตัวอย่างตั้งค่าการสร้าง Amazon Aurora PostgreSQL ของบทความครั้งนี้ ประกอบด้วย)

ตัวอย่างตั้งค่าการสร้าง Amazon Aurora PostgreSQL ของบทความครั้งนี้

※Create Security Group สำหรับ Amazon Aurora PostgreSQL
Basic details
Security group name: tinnakorn-pg-db (ตั้งชื่อที่ต้องการ)
Description: tinnakorn-pg-db (ป้อนตามต้องการ)

Inbound rules
Type: PostgreSQL | Source: Custom | tinnakorn-pg-win (พิมพ์ค้นหาชื่อ EC2 ที่จะใช้แล้วเลือก) → sg-ab12cd34xxxx

※Create RDS Aurora
Engine options
Engine type: Amazon Aurora
Edition: Amazon Aurora PostgreSQL-Compatible Edition
Available versions: Aurora PostgreSQL (Compatible with PostgreSQL 11.13) (ต้องใช้เวอร์ชัน "11.13" ในการเลือก Aurora PostgreSQL Serverless V1)

Templates
◎ Production

Settings
DB instance identifier: tinnakorn-pg-db
Credentials Settings
Master username: postgres (ระวังส่วนนี้ด้วย เนื่องจาก username จะเปลี่ยนไปตามที่เราเลือก Edition)
Master password: PassW0rd (รหัสผ่านนี้เป็นแค่ตัวอย่าง ให้ตั้งรหัสผ่านที่ต้องการ)
Confirm password: PassW0rd

Instance configuration
DB instance class
◎ Serverless
Serverless v1 ▼
Capacity range
Minimum ACUs: 2 ACU (Aurora Postgres Serverless V1 ต้องใช้ ACU ตั้งแต่ 2 ขึ้นไปหรือมากกว่า)
Maximum ACUs: 2 ACU
Additional scaling configuration
Autoscaling timeout and action: 00:05:00
Pause after inactivity: ✅ Scale the capacity to 0 ACUs when cluster is idle
00:05:00

Connectivity
Existing VPC security groups: tinnakorn-pg-db (เลือก security group ที่เราสร้างสำหรับ Amazon Aurora PostgreSQL)
Additional configuration
Web Service Data API: ✅ Data API

Login ไปยัง Windows Server

เหตุผลที่ต้องเชื่อมโยง EIP ก่อนก็เพราะว่าหลังจากที่เชื่อมโยง EIP เสร็จแล้ว Public IPv4 address (Public IP) ของ EC2 Instance จะเปลี่ยนไปเป็นอันเดียวกับ EIP และในตัวไฟล์ Remote Desktop ก็จะเป็น Public IP เดียวกับ EC2 Instance เสมอ ดังนั้นถ้าเราเชื่อมโยง EIP เราจะสามารถ Login เข้าไปยัง Windows Server ผ่านไฟล์ Remote Desktop ที่ดาวน์โหลดมาหลังจากเชื่อมโยง EIP ได้ตลอด ! แต่ถ้าไม่เชื่อมต่อ EIP ไว้ ทุกครั้งที่ Start EC2 Instance เราต้องดาวน์โหลดไฟล์ Remote Desktop ทุกครั้งเพื่อ Login เข้าไปยัง Windows Server

ดูตัวอย่างที่นี่เฉพาะหัวข้อนี้: การเชื่อมต่อกับ Instance เพื่อเข้าใช้งาน Windows ผ่านไฟล์ RDP (หากคลิกไปแล้วไม่ไปที่หัวข้อนี้ให้โดยอัตโนมัติ ให้คลิกที่หัวข้อนี้จากเมนูด้านซ้ายของบทความ)

การติดตั้ง pgAdmin 4

ขั้นตอนนี้ดำเนินการใน Remote Desktop Connection (Windows Server)

ดาวน์โหลด pgAdmin 4

ตัวอย่างนี้จะใช้เว็บเบราว์เซอร์ Edge ใน Windows Server เนื่องจากสามารถเริ่มต้นใช้งานได้ทันที

คัดลอก URL ด้านล่างนี้ไปเปิดที่เว็บบราวเซอร์ใน Windows Server แล้วเลือก Windows (เนื่องจากครั้งนี้จะติดตั้งใน OS Windows Server)

https://www.pgadmin.org/download/

เลือกเวอร์ชันใหม่ล่าสุด pgAdmin 4 v6.16 (released Nov. 19, 2022) (เวอร์ชันมีการอัปเดตเรื่อยๆ)

คลิกดาวน์โหลด pgadmin4-6.16-x64.exe

ติดตั้ง pgAdmin 4

ดับเบิ้ลคลิกที่ตัวติดตั้ง แล้วเลือก → Install for me only (recommended)

คลิก Next

เลือก ◎ I accept the agreement แล้วคลิกNext

คลิกNext

คลิกNext

คลิก Install

รอการติดตั้งสักครู่

คลิก Finish

เริ่มต้นโปรแกรม pgAdmin 4

เมื่อเข้าใช้งานครั้งแรก ต้องทำการ Set Master Password ก่อน จึงจะสามารถใช้งานได้

กดปุ่ม Windows แล้วเลือกโฟลเดอร์ pgAdmin 4 แล้วคลิก pgAdmin 4 v6 แล้วรอโปรแกรมเริ่มต้นสักครู่

เมื่อเข้ามาที่โปรแกรม(ครั้งแรก)แล้ว จะแสดงหน้าจอโปรแกรมและ Popup Set Master Password แบบนี้ จากนั้นให้ทำการตั้งรหัสผ่านที่ต้องการ แล้วคลิก OK

ต่อไปให้รีสตาร์ทโปรแกรมเพื่อทดสอบการเข้ารหัสโดยปิดและเปิดโปรแกรมขึ้นมาใหม่ แล้วจะเห็นว่า Popup เปลี่ยนเป็น Unlock Saved Passwords ทีนี้ให้ป้อนรหัสผ่าน Master Password ที่ตั้งค่าจากขั้นตอนที่แล้ว และคลิก OK

เมื่อแสดงหน้าจอแบบนี้ถือว่าการ Set Master Password เสร็จสิ้น

การเชื่อมต่อ Database Amazon Aurora PostgreSQL

ขั้นตอนนี้ดำเนินการใน AWS Management Console

เข้าไปที่ Database Amazon Aurora PostgreSQL บน AWS Management Console ของเรา แล้วคัดลอก Endpoint เตรียมไว้

ขั้นตอนนี้ดำเนินการใน Remote Desktop Connection (Windows Server)

กลับมาที่ Windows Server แล้วคลิก Servers จะเห็นว่ายังไม่มีอะไร เราต้องเชื่อมต่อกับ Database ก่อน

คลิกขวา Servers เลือก Register และเลือก Server...

ในแท็บ General ให้ตั้งชื่อ Server ที่ต้องการ (แนะนำให้ตั้งชื่อที่เข้าใจง่าย)
ตัวอย่างนี้จะตั้งชื่อเหมือนกับ Amazon Aurora MySQL คือ Name: tinnakorn-pg-db เนื่องจากจำง่าย

ในแท็บ Connection มีการตั้งค่าดังนี้
Host name/address: ป้อน Endpoint ของ Amazon Aurora PostgreSQL ที่คัดลอกมาเมื่อสักครู่นี้
Username: postgres (ถ้าไม่มีการเปลี่ยนแปลงในขณะที่สร้าง Aurora PostgreSQL ก็จะเป็น Username ค่าเริ่มต้นแบบนี้)
Password: PassW0rd ป้อน Password ของ Amazon Aurora PostgreSQL
คลิก Save แล้วรอการเชื่อมต่อกับ Amazon Aurora PostgreSQL สักครู่

ถ้าเกิด Error แบบนี้ ให้ป้อน Password ของ Amazon Aurora PostgreSQL ใหม่อีกครั้ง แล้วคลิก Save อีกครั้ง (เนื่องจาก Amazon Aurora PostgreSQL หยุดทำงานตามเวลาที่ตั้งค่าไว้ใน Additional scaling configuration)

เมื่อแสดงหน้าจอแบบนี้ ถือว่าการเชื่อมต่อกับ Amazon Aurora PostgreSQL สำเร็จ

เมื่อลองคลิกดูข้อมูลข้างในแล้ว จะเห็นข้อมูลเริ่มต้นของ postgres ใน Databases

การ Import ข้อมูลจาก EC2 (Windows Server) ไปยัง Amazon Aurora PostgreSQL

ขั้นตอนนี้ดำเนินการใน Remote Desktop Connection (Windows Server)

Download the PostgreSQL sample database

คัดลอก URL ด้านล่างนี้ไปเปิดที่เว็บบราวเซอร์ใน Windows Server แล้วเลื่องลงมาด้านล่างที่หัวข้อ Download the PostgreSQL sample database แล้วคลิกดาวน์โหลดที่ Download DVD Rental Sample Database

https://www.postgresqltutorial.com/postgresql-sample-database/

แล้วให้แตกไฟล์ที่ดาวน์โหลดมา (ในตัวอย่างนี้แตกไฟล์ไว้ที่หน้า Desktop)

Import ข้อมูลไปยัง Amazon Aurora PostgreSQL

ก่อนอื่นให้สร้าง Database ก่อน โดยคลิกที่ Server ของเรา แล้วคลิกขวาที่ Databases แล้วเลือก Create และคลิก Database...

ป้อนชื่อ Database ที่ต้องการ เช่น tinnakorn แล้วคลิก Save

เมื่อเสร็จแล้วเราก็จะได้ Database ที่เป็นของเรา จากนั้นให้คลิกขวาที่ Database ของเรา ตัวอย่างนี้คือ tinnakorn แล้วเลือก Restore...

คลิกไอคอนโฟลเดอร์ที่ Filename แล้วเพิ่มไฟล์ที่แตกออกมาเมื่อสักครู่นี้ ไฟล์ตัวอย่างนี้คือ dvdrental.tar แล้วคลิก Restore

เมื่อการ Import เสร็จแล้ว จะแสดงการแจ้งเตือน "Process completed" แบบนี้

ตรวจสอบข้อมูลที่ Import เสร็จแล้ว

คลิกเข้าไปที่ Table ตาม path นี้ tinnakorn (Database ของเรา)SchemasTables

คลิกขวา Table ที่ต้องการตรวจสอบ เช่น actor แล้วเลือก View/Edit DataFirst 100 Rows

เมื่อแสดงหน้าจอแบบนี้ถือว่าการ Import ข้อมูลสำเร็จ

สรุป

ผมได้ทำการติดตั้งโปรแกรม pgAdmin 4 ลงใน EC2 (Windows Server) แล้ว Import ข้อมูลตัวอย่างไปยัง Amazon Aurora PostgreSQL ซึ่งผมคิดว่าเป็นช่องทางที่สามารถสร้างฐานข้อมูลขนาดใหญ่ได้อย่างรวดเร็วมากๆ ไม่ว่าจะเป็นการสร้างฐานข้อมูลใหม่ การนำเข้าข้อมูล การแสดงข้อมูล การแก้ไขข้อมูล ก็สามารถทำได้โดยการคลิกเพียงแค่ไม่กี่คลิก

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP จากบริษัท Classmethod (Thailand) ครับ !

Link อ้างอิง