[Update] การสร้าง Microsoft SQL Server 2019 Standard ใน Windows Server 2019 บน EC2 บน AWS
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้ผมจะมาแนะนำการสร้าง Microsoft SQL Server 2019 Standard ใน Windows Server 2019 บน EC2
การสร้าง Key Pairs
Key Pair เป็นกุญแจสำคัญในการเชื่อมต่อกับ EC2 Instance ซึ่งก่อนที่จะสร้าง EC2 Instance เราจะต้องสร้าง Key Pair เตรียมไว้ล่วงหน้า เพราะว่าถ้าไม่มี Key Pair ก็จะไม่สามารถสร้าง EC2 Instance ได้ ดังนั้นเรามาเริ่มสร้าง Key Pair กันได้เลยครับ
ก่อนอื่นให้ Login เข้ามาที่หน้า AWS Management Console แล้วค้นหา ?︎ EC2
แล้วเลือก EC2
แล้วเลือก Key Pairs
จากเมนูด้านซ้าย
ใส่ชื่อที่ต้องการในช่อง Name เช่น tinnakorn-win-sqlserver
แล้วเลือก .pem
และคลิก Create key pair
หลังจากสร้าง Key Pair เสร็จแล้ว ไฟล์ .pem
จะถูกดาวน์โหลดมาที่คอมพิวเตอร์และชื่อไฟล์จะเปลี่ยนไปตามที่เราได้ตั้งชื่อไว้โดยอัตโนมัติ
การสร้าง Microsoft Windows Server 2019 with SQL Server 2019 Standard
เข้ามาที่ Service EC2
แล้วเลือก Instance
จากเมนูด้านซ้าย
มาที่หัวข้อ Name and tags
แล้วใส่ชื่อที่ต้องการในช่อง Name เช่น tinnakorn-win-sqlserver
ถัดมาหัวข้อ Application and OS Images (Amazon Machine Image) นี้คือ Instance จะมีเซิร์ฟเวอร์ให้เลือกใช้มากมาย เช่น macOS, Red Hat, SUSE Linux, Ubuntu, Microsoft Windows, Debian เป็นต้น ซึ่งในบทความนี้จะใช้ Microsoft Windows Server 2019 with SQL Server 2019 Standard ในการติดตั้ง
คลิก Windows
แล้วเลือก Amazon Machine Image (AMI) ที่ต้องการ โดยตัวอย่างนี้จะเลือก Microsoft Windows Server 2019 with SQL Server 2019 Standard
ถัดมาหัวข้อ Instance type นี้คือ เราสามารถเลือก Type CPU Memory ที่จะนำไปใช้งานได้ตามความต้องการ ไม่ว่าเว็บไซต์จะมีขนาดเล็กหรือขนาดใหญ่ ก็สามารถเลือกขนาดความจุของ CPU Memory ได้ตามความเหมาะสม
ค้นหา ?︎ t3a.xlarge
และเลือก t3a.xlarge
ก็จะได้สเปค Family: t3a | 4 vCPU | 16 GiB Memory
ตามนี้ (สเปคนี้เป็นแค่ตัวอย่างแนะนำการใช้งาน)
* Instance สำหรับใช้ SQL Server ต้องใช้ตั้งแต่ 4 vCPU ขึ้นไป
ถัดมาหัวข้อ Key pair (login)
เลือก Key pair name - required ที่สร้างไว้เมื่อสักครู่นี้
ถัดมาหัวข้อ Network settings
คลิก Edit
แล้วมาที่หัวข้อ Firewall (security groups)
จากนั้นเปลี่ยนชื่อ Security group name และ Description เป็นชื่ออะไรก็ได้ เช่น tinnakorn-win-sqlserver
ถัดมาหัวข้อ Inbound security groups rules นี้คือ การตั้งค่า My IP เพื่อจำกัดการเชื่อมต่อ rdp จากทุกตำแหน่ง ซึ่งในส่วนนี้จะทำให้สามารถเชื่อมต่อ rdp จาก My IP (ที่อยู่ IP ปัจจุบันของคุณ) ได้เท่านั้น
เปลี่ยน Source type ของ rdp ให้เป็น Source type: My IP
ถัดมาหัวข้อ Configure storage นี้คือ เราสามารถเพิ่ม Storage ในส่วนของ Size (GiB) ได้ โดยค่าเริ่มต้นจะเป็น 65 GB โดยตัวอย่างนี้จะใช้เป็นค่าเริ่มต้น ก็จะไม่ทำการตั้งค่าใดๆ
มาที่หัวข้อ Summary ด้านขวา แล้วตรวจสอบรายละเอียด แล้วคลิก Launch instance
หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตคำว่า Status Checks จะเห็นว่ามีสถานะเป็น ? Initializing
คือ Instance กำลังทำการสตาร์ทระบบขึ้นมานั่นเอง
เมื่อ Instance เริ่มต้นระบบเสร็จเรียบร้อยแล้ว จะมีสถานะเป็น ✅ 2/2 checks passed
การเชื่อมต่อกับ Instance เพื่อเข้าใช้งาน Windows ผ่านไฟล์ RDP
ในส่วนของ Connect to instance จะเป็นการ Download remote desktop file และ Get password
» เลือกหัวข้อ RDP client
» คลิก Download remote desktop file
แล้วตัวไฟล์จะถูกดาวน์โหลดมาที่คอมพิวเตอร์และเป็นชื่อตาม Instance ของเราโดยอัตโนมัติ
» คลิก Get password
ถ้าคลิก Get password แล้วแสดงหน้าจอแบบนี้ ต้องรอประมาณ 4 นาทีจนกว่าการเริ่มต้นระบบของ Windows จะเสร็จสมบูรณ์ จึงจะสามารถทำการ auto-generated password ได้
ถ้าคลิก Get password หลังจากเริ่มต้นระบบเสร็จแล้ว จะแสดงหน้าจอแบบนี้
แล้วคลิก Upload private key file
(เป็นการเพิ่มไฟล์ .pem
เข้ามายัง Instance เพื่อ Generate Password ขึ้นมา)
มาที่ไฟล์ .pem
ที่สร้างมาจาก Key pair (ของผมจะเป็นชื่อ tinnakorn-win-sqlserver
) จากนั้นคลิก Open
แล้วดูที่ Password ด้านล่าง จะเห็นว่า Password ถูก Generate ออกมา ให้คัดลอกเตรียมไว้เพื่อ Login เข้าไปยัง Windows ในขั้นตอนถัดไป
กลับมาที่ไฟล์ remote desktop
ที่ดาวน์โหลดมาจาก Connect to instance ของเรา (ตัวอย่างนี้เป็นชื่อ tinnakorn-win-sqlserver
) แล้วดับเบิ้ลคลิกที่ไฟล์ได้เลย
แล้วใส่ Password ที่คัดลอกมาเมื่อสักครู่นี้เพื่อ Login เข้าไปยัง Windows Server
เมื่อ Login ได้แล้ว จะแสดงหน้าจอเป็น Windows Server ตามรูปภาพด้านล่าง
การตั้งค่าพื้นฐาน SQL Server ใน Windows Server 2019
เปิดโปรแกรม SQL Server ตามนี้
» คลิกปุ่ม Windows
» คลิกที่โฟลเดอร์ Microsoft SQL Server Tools 18
» คลิกที่โปรแกรม Microsoft SQL Server Management...
มาที่เมนูด้านซ้าย คลิกขวาที่ EC2AMAZ-N1S5S42
แล้วเลือก Properties
ในส่วนของ EC2AMAZ-N1S5S42
นั้นจะเปลี่ยนแปลงไปทุกครั้งที่ทำการเริ่มต้นระบบ SQL Server ซึ่งจะคล้ายกับ ID Instance
ตั้งค่า Server Properties ตามนี้
» เลือก Security
» เลือก SQL Server and Windows Authentication mode
» คลิก OK
ข้อความ POPUP นี้บอกว่าการตั้งค่าจะไม่แสดงผลจนกว่าจะ Restart SQL Server » คลิก OK
คลิก ✕ กากบาท
เพื่อออกจากโปรแกรม
Restart SQL Server
เราจะ Restart SQL Server เพื่อเริ่มต้นการใช้งาน SQL Server and Windows Authentication mode ถ้าพร้อมแล้วเริ่มทำขั้นตอนถัดไปได้เลย
คลิกไอคอนค้นหา แล้วพิมพ์ Services
แล้วคลิก Services
ค้นหาชื่อ SQL Server (MSSQLSERVER)
ตามด้วยคลิกขวาที่ชื่อ และเลือก Restart
เข้าไปยังโปรแกรม SQL Server อีกครั้ง
» คลิกปุ่ม Windows
» คลิกที่โฟลเดอร์ Microsoft SQL Server Tools 18
» คลิกที่โปรแกรม Microsoft SQL Server Management...
เข้ามาตรวจสอบการตั้งค่า Security อีกครั้ง
มาที่เมนูด้านซ้าย คลิกขวาที่ EC2AMAZ-N1S5S42
แล้วเลือก Properties
» เลือก Security
» ดูที่ Server authentication จะเห็นว่าเป็น SQL Server and Windows Authentication mode
แล้ว
» คลิก Cancel
ตั้งค่าการ Login SQL Server
เราจะมาตั้งค่าการ Login SQL Server ใน Username ที่ชื่อว่า sa
ที่เป็น Administrator User ที่ใช้สำหรับ SQL Server ซึ่งเป็นระบบที่มีความปลอดภัยสูง ดังนั้นจำเป็นต้องให้ความสำคัญกับการตั้งค่าการใช้งาน ถ้าพร้อมแล้วเริ่มทำขั้นตอนถัดไปได้เลย
» คลิก + Security
» คลิก + Logins
» คลิกขวาที่ sa
» เลือก Properties
ตั้งค่าในส่วนของ Login Properties - sa ตามนี้
» คลิก General
» Password: P@ssW0rd
(ใส่ Password ของคุณ)
» Confirm password: P@ssW0rd
(ใส่ Password ของคุณ)
» เลือก Status
» เลือก Login: ให้เป็น Enabled
» คลิก OK
ทดสอบการใช้งาน SQL Server ด้วย Terminal CMD
เราจะมาทดสอบการใช้งาน SQL Server ด้วย Terminal CMD โดยการ Login เข้าไปใน SQL Server ตามด้วยสร้าง Database กับ Table และ Show Database ที่สร้างขึ้นมา ถ้าพร้อมแล้วเริ่มทำในขั้นตอนถัดไปได้เลย
การสร้าง Database ใน SQL Server Login
คลิกที่ icon ?︎ ค้นหา
ตามด้วยพิมพ์ ?︎ cmd
และคลิกที่ Command Prompt
Login เข้าไปยัง SQL Server ด้วยคำสั่งนี้
# "P@ssW0rd" คือ Password ที่เปลี่ยนตอนตั้งค่าการ Login SQL Server sqlcmd -S localhost -U sa -P P@ssW0rd
สร้าง Database ด้วยคำสั่งนี้
# "tinnakorn_win_sqlserver" คือชื่อสมมุติที่ใช้สร้าง Database create database tinnakorn_win_sqlserver; # การใช้คำสั่งใน SQL Server ต้องพิมพ์คำสั่ง "go" ปิดท้ายทุกครั้ง คำสั่งจึงจะใช้งานได้ go
ทดสอบการจัดการ SQL Server
เข้าไปยัง Database ที่สร้างเมื่อสักครู่นี้ด้วยคำสั่งนี้
use tinnakorn_win_sqlserver; go
จะเห็นว่ามี Database ที่ชื่อว่า tinnakorn_win_sqlserver
ถูกสร้างขึ้นมาแล้ว
สร้าง Table ด้วยคำสั่งนี้โดยใช้ชื่อ "test"
create table test (id int, string varchar(255)); go
ใส่ข้อมูลลงใน Table ด้วยคำสั่งนี้
insert into test values (1, 'test'); go
เรียกดูข้อมูลที่ใส่ไปด้วยคำสั่งนี้
select * from test; go
ออกจาก SQL Server Login ด้วยคำสั่งนี้
exit
ตรวจสอบการจัดการ SQL Server
ตรวจสอบข้อมูลใน Results ที่เพิ่มเข้าไปตามนี้
» คลิก + Databases
» คลิก + tinnakorn_win_sqlserver
» คลิก + Tables
» เลือก dbo.test
» เลือก Select Top 1000 Rows
จะเห็นว่าข้อมูลที่ใส่เข้ามา ก็สามารถตรวจสอบที่ Results นี้ได้เหมือนกัน
หลังจากใช้งานเสร็จแล้ว ก็ปิดเครื่องตามนี้ได้เลย (หลังจาก Shut down ไปแล้ว Instance ของเรา จะเป็นสถานะ Stopped โดยอัตโนมัติ)
» คลิกปุ่ม Windows
» เลือก Shut down
การ Terminate Instance, ลบ Key Pair และลบ Security Group ใน EC2
ดูวิธีการลบ Resource ต่างๆที่สร้างขึ้นใน EC2 ตามลิงก์ด้านล่างนี้ได้เลยครับ
สรุป
เราสามารถเลือกใช้งาน EC2 Instance ได้มากมาย ไม่ว่าจะเป็นการสร้าง Amazon Linux 2 มาเพื่อแสดงเว็บไซต์ หรือจะเป็นการสร้าง Windows Server ที่เป็นวินโดว์เสมือน (Visual Windows) ก็สามารถทำได้เช่นกัน และการทำงานของ EC2 Instance นั้น ก็มีประสิทธิภาพในการใช้งาน และตอบโจทย์ผู้ใช้งานมากๆ
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP จากบริษัท Classmethod (Thailand) ครับ !