การติดตั้ง Microsoft IIS ใน Windows Server บน EC2 และทดลองใช้งาน

Internet Information Services (IIS) เป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ Windows ที่ให้บริการโดย Microsoft ซึ่งผมได้มีโอกาสทดลองใช้งานแล้ว จึงจะมาแนะนำวิธีการติดตั้ง IIS ใน Windows Server และทดลองใช้งานโดยสร้างไฟล์โปรเจกต์เพื่อเผยแพร่หน้าเว็บไซต์ผ่านเว็บเบราว์เซอร์ใน Windows Server และใน OS บนอุปกรณ์ของเราครับ

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

ครั้งนี้ผมจะมาแนะนำการติดตั้ง Microsoft IIS ใน Windows Server บน EC2 และทดลองใช้งาน

Microsoft IIS คืออะไร

Internet Information Services (IIS) คือซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่รวมอยู่ในซีรีส์ Windows Server ซึ่งเป็นระบบปฏิบัติการสำหรับเซิร์ฟเวอร์ของ Microsoft ที่ได้รับความนิยมมากที่สุด รองจาก Apache HTTP Server, NGINX, Cloudflare Server และ LiteSpeed

เราสามารถใช้เซิร์ฟเวอร์ที่ปลอดภัยและยืดหยุ่นนี้เพื่อโฮสต์ทุกอย่างบนเว็บ ตั้งแต่แอปพลิเคชันไปจนถึงการสตรีมสื่อได้ โดยมีสถาปัตยกรรมแบบเปิดที่ทำให้สามารถปรับขนาดได้และใช้งานได้หลากหลาย

IIS รองรับ Protocols ต่อไปนี้

  • Hypertext Transfer Protocol (HTTP)
  • Hypertext Transfer Protocol Secure (HTTPS)
  • File Transfer Protocol (FTP)
  • File Transfer Protocol Secure (FTPS)
  • Simple Mail Transfer Protocol (SMTP)
  • Network News Transfer Protocol (NNTP)

การเตรียม Windows Server

・สร้าง Windows Server ใน EC2 (ยังไม่ต้อง Login)
・เชื่อมโยง Elastic IP (EIP)
・Login ไปยัง Windows Server

สร้าง Windows Server ใน EC2

หมายเหตุ: เมื่อสร้าง Windows Server เสร็จแล้วยังไม่ต้อง Login

ดูวิธีการสร้าง Windows Server ใน EC2 ได้ที่ลิงก์ด้านล่างนี้

ตัวอย่างตั้งค่าการสร้าง Microsoft Windows Server ใน EC2

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

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

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-win-iis(key pair ที่สร้างขึ้นเมื่อสักครู่นี้)

Network settings
Firewall (security groups)
Security group name - required:tinnakorn-win-iis(ตั้งชื่อที่ต้องการ)
Description - required:tinnakorn-win-iis(ป้อนตามต้องการ)
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:30GiB 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

เหตุผลที่ต้องเชื่อมโยง 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

การติดตั้ง Server Manager

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

มาที่ช่องค้นหาด้านล่างซ้าย ค้นหาคำว่า Server Manager แล้วคลิก Server Manager

เมื่อเข้ามาหน้านี้แล้วให้ดูที่ ROLES AND SERVER GROUPS ด้านล่าง เมื่อมี File and Storage, Loacal Server และ All Servers แสดงขึ้นมาแล้ว ให้ดูที่ด้านขวาบน แล้วเลือกแท็บ Manage และเลือก Add Roles and Features

แล้วจะมีหน้าต่าง Add Roles and Features Wizard แสดงขึ้นมาเพื่อให้ติดตั้งโปรแกรม ครั้งนี้จะติดตั้ง Microsoft IIS
มาเริ่มที่หัวข้อ Before You Begin คลิก Next >

หัวข้อ Installation Type ใช้เป็นค่าเริ่มต้น ⦿ Role-based or feature-based installation แล้วคลิก Next >

หัวข้อ Server Selection คลิก Next >

หัวข้อ Server Roles เลื่อนลงมาล่างสุด ให้ติ๊ก ▢ Web Server (IIS) แล้วจะมีหน้าต่างคำถาม Add features that are required for Web Server (IIS)? แสดงขึ้นมา ให้คลิก Add Features

เมื่อเป็น ☑ Web Server (IIS) แล้ว ให้คลิก Next >

หัวข้อ Features ให้คลิก ▣ .NET Framework 4.8 Features (2 of 7 Installed) ขยายออกมา แล้วติ๊ก ☑ ASP.NET 4.8 แล้วคลิก Next >

หัวข้อ Web Server Role (IIS) คลิก Next >

หัวข้อ Role Services เลื่อนลงมาล่างสุด แล้วคลิก Application Development แล้วติ๊ก ▢ ASP.NET 4.8 แล้วจะมีหน้าต่างคำถาม Add features that are required for ASP.NET 4.8? แสดงขึ้นมา ให้คลิก Add Features

เมื่อเป็น ☑ ASP.NET 4.8 แล้ว ให้คลิก Next >

หัวข้อ Confirmation ตรวจสอบการตั้งค่าสำหรับการติดตั้งได้ที่หน้านี้ แล้วคลิก Install

ต้องรอการติดตั้งโปรแกรมสักครู่ จนกว่าจะเป็นสถานะ Installation succeeded on [your_hostname]. แล้วคลิก Close และปิดโปรแกรม Server Manager ไปได้เลย

เพียงเท่านี้การติดตั้ง Microsoft IIS ก็เสร็จเรียบร้อยแล้ว

การปิดใช้งาน Hide Extension

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

เข้ามาที่ File Explorer ที่ไหนก็ได้ แล้วเลือกแท็บ View และคลิกที่ไอคอนตรง Options ตามรูปภาพ

เลือกแท็บ View แล้วติ๊ก ✓ ตรง Hide extension for known file types ออก แล้วคลิก Apply และคลิก OK

เตรียมไฟล์

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

ให้ทำการเตรียมไฟล์ index.aspx เพื่อใช้ทดสอบการใช้งานในขั้นตอนถัดไป

เข้าไปที่ wwwroot ตาม path ด้านล่างนี้

C:\inetpub\wwwroot

แล้วสร้างไฟล์ index.aspx โดยคลิกขวาที่นี่ แล้วเลือก New > เลือก Text Document > เปลี่ยนชื่อเป็น index.aspx + Enter และคลิก OK

แล้วนำไฟล์ index.aspx ไปเปิดใน Notepad โดยเปิด Notepad ขึ้นมา แล้วลากไฟล์ index.aspx ลงไป ก็จะแสดงหน้าว่างและมีชื่ออยู่ที่ด้านซ้ายบนแบบนี้

คัดลอกโค้ดด้านล่างนี้วางลงในไฟล์ index.aspx แล้ว Save ให้เรียบร้อย
โค้ดนี้คือการแสดงข้อความ "Hello ASP.NET World." ในหน้าเว็บเบราว์เซอร์

<%@ Page Language="C#" %>
<script runat="server">
  private void Page_Load() {
    Msg.Text = "Hello ASP.NET World.";
  }
</script>
<html>
<body>
  <asp:Label runat="server" id="Msg" />
</body>
</html>

วิธีการเผยแพร่ไปยัง Internet

ทดสอบการใช้งานใน Windows Server (Remote Desktop)

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

เปิดเบราว์เซอร์ Edge ขึ้นมา แล้วเปิดหน้าเว็บไซต์ด้วย URL ด้านล่างนี้

http://localhost/index.aspx

ถ้าแสดงข้อความ "Hello ASP.NET World." แบบนี้ก็ถือว่าเสร็จเรียบร้อยแล้ว

การเผยแพร่ทางอินเทอร์เน็ต

ขั้นตอนนี้จะดำเนินการใน OS ที่เราใช้งาน (OS ที่ผมใช้คือ Windows 11)

ก่อนอื่นเราต้องเพิ่ม HTTP ใน Security Group ของ Instance ที่เรากำลังใช้งานก่อนเพื่อให้สามารถแสดงหน้าเว็บไซต์ของ Public IPv4 DNS ได้

เข้าไปที่ Instance ของเรา แล้วเลื่องลงมาตรงกลาง เลือกหัวข้อ Security แล้วคลิกที่ลิงก์ของ Security groups

มาที่หัวข้อ Inbound rules แล้วคลิก Edit inbound rules ด้านล่างขวา

คลิก Add rule ด้านล่างซ้าย แล้วเลือก Type: HTTP | Source: Anywhere-IPv4 และคลิก Save rules

กลับไปที่หน้า EC2 Instance ของเราอีกครั้ง แล้วคัดลอก Public IPv4 DNS เตรียมไว้ (Public IPv4 address ก็สามารถใช้ได้ แต่ครั้งนี้จะใช้ Public IPv4 DNS)

เปิดเบราว์เซอร์ที่เรากำลังใช้งานอยู่บนอุปกรณ์ของเราขึ้นมา แล้วเปิดหน้าเว็บไซต์ด้วย URL ด้านล่างนี้

http://[Your Public IPv4 DNS]/index.aspx

ถ้าแสดงข้อความ "Hello ASP.NET World." แบบนี้ก็ถือว่าเสร็จเรียบร้อยแล้ว

สรุป

จากที่ผมได้ลองใช้งานดูแล้ว ก็เป็นอีกหนึ่งซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่ใช้งานง่ายใน Windows Server นอกจากนี้ยังสามารถเผยแพร่หน้าเว็บไซต์โปรเจกต์ผ่านเว็บเบราว์เซอร์ใน Windows Server และใน OS บนอุปกรณ์ของเราโดยใช้ Public IP ของ EC2 Instance ได้อีกด้วย

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

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

Link อ้างอิง

ดูรายละเอียดเพิ่มเติมได้ที่นี่ สอบถามเพิ่มเติมเกี่ยวกับ AWS คลิกที่นี่