[Update] การสร้าง Microsoft SQL Server 2019 Standard ใน Windows Server 2019 บน EC2 บน AWS

SQL Server บน AWS มี TCO ที่ต่ำกว่า และมีประสิทธิภาพที่สูงขึ้น รวมไปถึงความสามารถที่มากมาย ซึ่ง Amazon Machine Image (AMI) ของ SQL Server นี้สร้างโดย Amazon Web Services (AWS) เพื่อใช้งานบน Amazon EC2 อีกทั้งยังเป็นที่ได้รับการพิสูจน์แล้ว เชื่อถือได้ และปลอดภัยสำหรับ SQL Server

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

สวัสดีครับ 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 จากเมนูด้านซ้าย

คลิก Create key pair

ใส่ชื่อที่ต้องการในช่อง Name เช่น tinnakorn-win-sqlserver แล้วเลือก .pem และคลิก Create key pair

หลังจากสร้าง Key Pair เสร็จแล้ว ไฟล์ .pem จะถูกดาวน์โหลดมาที่คอมพิวเตอร์และชื่อไฟล์จะเปลี่ยนไปตามที่เราได้ตั้งชื่อไว้โดยอัตโนมัติ

การสร้าง Microsoft Windows Server 2019 with SQL Server 2019 Standard

เข้ามาที่ Service EC2 แล้วเลือก Instance จากเมนูด้านซ้าย

คลิก Launch instances

มาที่หัวข้อ 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 ปัจจุบันของคุณ) ได้เท่านั้น

คลิก Remove ที่ Type: MSSQL

เปลี่ยน Source type ของ rdp ให้เป็น Source type: My IP

ถัดมาหัวข้อ Configure storage นี้คือ เราสามารถเพิ่ม Storage ในส่วนของ Size (GiB) ได้ โดยค่าเริ่มต้นจะเป็น 65 GB โดยตัวอย่างนี้จะใช้เป็นค่าเริ่มต้น ก็จะไม่ทำการตั้งค่าใดๆ

มาที่หัวข้อ Summary ด้านขวา แล้วตรวจสอบรายละเอียด แล้วคลิก Launch instance

คลิก View all instances

หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตคำว่า Status Checks จะเห็นว่ามีสถานะเป็น ? Initializing คือ Instance กำลังทำการสตาร์ทระบบขึ้นมานั่นเอง

เมื่อ Instance เริ่มต้นระบบเสร็จเรียบร้อยแล้ว จะมีสถานะเป็น ✅ 2/2 checks passed

การเชื่อมต่อกับ Instance เพื่อเข้าใช้งาน Windows ผ่านไฟล์ RDP

คลิก Instance ID ของเรา

คลิก Connect

ในส่วนของ 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

คลิก Decrypt Password

แล้วดูที่ Password ด้านล่าง จะเห็นว่า Password ถูก Generate ออกมา ให้คัดลอกเตรียมไว้เพื่อ Login เข้าไปยัง Windows ในขั้นตอนถัดไป

กลับมาที่ไฟล์ remote desktop ที่ดาวน์โหลดมาจาก Connect to instance ของเรา (ตัวอย่างนี้เป็นชื่อ tinnakorn-win-sqlserver) แล้วดับเบิ้ลคลิกที่ไฟล์ได้เลย

คลิก Connect

แล้วใส่ Password ที่คัดลอกมาเมื่อสักครู่นี้เพื่อ Login เข้าไปยัง Windows Server

คลิก Yes

เมื่อ Login ได้แล้ว จะแสดงหน้าจอเป็น Windows Server ตามรูปภาพด้านล่าง

การตั้งค่าพื้นฐาน SQL Server ใน Windows Server 2019

เปิดโปรแกรม SQL Server ตามนี้
» คลิกปุ่ม Windows
» คลิกที่โฟลเดอร์ Microsoft SQL Server Tools 18
» คลิกที่โปรแกรม Microsoft SQL Server Management...

แล้วรอโปรแกรม Start สักครู่

คลิก Connect

มาที่เมนูด้านซ้าย คลิกขวาที่ 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

คลิก Yes

เข้าไปยังโปรแกรม SQL Server อีกครั้ง
» คลิกปุ่ม Windows
» คลิกที่โฟลเดอร์ Microsoft SQL Server Tools 18
» คลิกที่โปรแกรม Microsoft SQL Server Management...

คลิก Connect

เข้ามาตรวจสอบการตั้งค่า 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

คลิก Continue

การ Terminate Instance, ลบ Key Pair และลบ Security Group ใน EC2

ดูวิธีการลบ Resource ต่างๆที่สร้างขึ้นใน EC2 ตามลิงก์ด้านล่างนี้ได้เลยครับ

สรุป

เราสามารถเลือกใช้งาน EC2 Instance ได้มากมาย ไม่ว่าจะเป็นการสร้าง Amazon Linux 2 มาเพื่อแสดงเว็บไซต์ หรือจะเป็นการสร้าง Windows Server ที่เป็นวินโดว์เสมือน (Visual Windows) ก็สามารถทำได้เช่นกัน และการทำงานของ EC2 Instance นั้น ก็มีประสิทธิภาพในการใช้งาน และตอบโจทย์ผู้ใช้งานมากๆ

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

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

Link อ้างอิง