การสร้างเว็บเซิร์ฟเวอร์เครื่องแรกของคุณบน AWS - อธิบายทุกอย่างตั้งแต่การกำหนดค่าไปจนถึงบริการที่จำเป็น
เว็บเซิร์ฟเวอร์เป็นหนึ่งในตัวเลือกอันดับต้นๆสำหรับการเริ่มใช้งาน AWS ในขณะเดียวกันเรามักจะได้ยินผู้คนพูดว่า "ฉันต้องการย้ายจาก On-Premise ไปยัง AWS แต่ฉันไม่รู้ว่าจะต้องทำอย่างไรจริงๆ" เป็นเรื่องจริงที่ AWS มีแนวคิดและคำศัพท์เฉพาะของตัวเองซึ่งทำให้หลายคนเป็นกังวลในช่วงแรกๆ แต่แนวคิดของ AWS มีเนื้อหาที่ไม่ต่างไปจาก On-Premise เลย ในบทความนี้ เราจะอธิบายรายละเอียดองค์ประกอบพื้นฐานที่จำเป็นในการสร้างเว็บเซิร์ฟเวอร์บน AWS
สารบัญ
★โครงสร้าง Cloud(AWS) และ On-Premise ต่างกันอย่างไร
★บริการที่ใช้เมื่อสร้างเว็บเซิร์ฟเวอร์บน AWS
โครงสร้าง Cloud(AWS) และ On-Premise ต่างกันอย่างไร
ตามที่ได้กล่าวไว้ในตอนต้น ไม่ว่าจะเป็น On-Premise หรือในระบบคลาวด์ (AWS) ไม่มีความแตกต่างมากนักในการกำหนดค่าที่จำเป็นสำหรับเว็บเซิร์ฟเวอร์ เมื่อสร้างเว็บไซต์หรือเว็บแอปพลิเคชันบน On-Premise ให้วางโหลดบาลานเซอร์และเว็บเซิร์ฟเวอร์ใน DMZ จากนั้นวางฐานข้อมูล (DB) ไว้ใน internal network ด้านหลัง DMZ อีกที
เมื่อสร้างเว็บไซต์ทั่วไปหรือเว็บแอปพลิเคชันบน On-Premise , Load balancerและเว็บเซิร์ฟเวอร์จะถูกวางไว้ใน DMZ ซึ่งอยู่ด้านหน้า database (DB) อีกที ในทางกลับกัน ใน AWS การกำหนดค่าพื้นฐานเกือบจะเหมือนกัน โดยมี "ALB" ซึ่งเทียบเท่ากับload balancer, "Amazon EC2" ในการรันเว็บเซิร์ฟเวอร์ และ "Amazon RDS" ที่ทำหน้าที่เป็นฐานข้อมูลที่กำหนดค่าในลักษณะที่คล้ายกัน
แม้ว่าการกำหนดค่าเองจะไม่เปลี่ยนแปลงมากนัก แต่การย้ายไปยัง AWS จะทำให้คุณเป็นอิสระจากการจัดการการดำเนินงานด้านอินฟราฯ และลดภาระในการจัดการกับความล้มเหลวของฮาร์ดแวร์ ปัญหา การระงับใช้ไฟตามกฎหมาย ฯลฯ อีกทั้งยังสามารถปรับขนาดได้อย่างยืดหยุ่น ทำให้ง่ายต่อการเริ่มต้นจากเล็กๆ และปรับขนาดตามสถานการณ์ หรือเพิ่มสเปคเฉพาะในระหว่างแคมเปญเท่านั้น
นอกจากนี้ AWS ยังช่วยให้คุณปรับปรุงความพร้อมใช้งานภายใต้โครงสร้างที่มีหลาย AZ (Availability Zones) รองรับภายในรีเจียน ข้อดีอีกประการหนึ่งของ AWS ก็คือสามารถนำการเพิ่ม availability ในวงกว้างได้โดยมีต้นทุนที่ต่ำกว่า On Premise อย่างมาก
บริการที่ใช้เมื่อสร้างเว็บเซิร์ฟเวอร์บน AWS
VPC(Amazon Virtual Private Cloud)
บริการ network ส่วนตัวบน AWS เมื่อคุณใช้งาน AWS จะต้องเริ่มจากการสร้าง VPC ก่อน ด้วยการกำหนดที่อยู่ IP ที่จำเป็นในรูปแบบ เช่น "192.168.0.0/24" คุณสามารถกำหนดพื้นที่ network ส่วนตัว (เฉพาะบริษัทของคุณ) และสร้างเซิร์ฟเวอร์ที่จำเป็น ฯลฯ ภายในพื้นที่นั้นได้
คุณสามารถสร้าง VPC หลายรายการภายใต้บัญชี AWS เดียว และมีหลายกรณีที่ VPC ได้รับการจัดเตรียมและจัดการสำหรับแต่ละระบบ ด้วยการแบ่ง VPC คุณสามารถรันระบบในพื้นที่ที่แยกจากกัน ซึ่งจะช่วยยกระดับความปลอดภัยได้ แต่หากคุณแบ่งอย่างละเอียดเกินไปอาจจะทำให้คุณมีภาระในการจัดการและการดำเนินงานเพิ่มขึ้น ดังนั้นการจัดการอย่างความสมดุลจึงสำคัญ
สิ่งหนึ่งที่ควรทราบก็คือ ตามค่าเริ่มต้น VPC จะไม่อนุญาตให้มีการสื่อสารใดๆกับเครือข่ายภายนอก จำเป็นต้องมีบริการบางอย่างเพื่อช่วยในการสื่อสารกับ VPC อื่น หรือ อินเทอร์เน็ต ฯลฯ
Internet Gateway
บริการ Gateway เป็นบริการสำหรับเชื่อมต่อ VPC กับอินเตอร์เน็ต เมื่อมีการสร้าง Internet Gateway และเชื่อมโยงเข้ากับ VPC จะทำให้ VPC นั้นๆสามารถสื่อสารออกไปยังอินเตอร์เน็ตได้ จึงเป็นบริการที่สำคัญสำหรับเว็บเซิร์ฟเวอร์ที่จะเผยแพร่บนอินเตอร์เน็ต
นอกจาก Internet Gateway แล้ว ยังสามารถใช้บริการต่างๆได้ตามความต้องการ เช่น "VGW (Virtual Gateway)" สำหรับเชื่อม VPC กับเครือข่ายใน On-Premise และบริการสำหรับเชื่อมต่อกับ VPC อื่นอย่าง "VPC Peering" และ "AWS Transit Gateway"
Subnet
แม้แต่ภายใน AWS เราใช้งานบน Subnet ที่ถูกแบ่งย่อยๆใน VPC ซึ่งส่วนนี้เข้าใจไว้ได้เลยว่าเป็นแนวคิดเดียวกับ Subnet บน On-Premise เมื่อเราสร้าง Subnet ก็จะมีการติดตั้ง Load Balancer หรือ Virtual Machine อื่นๆเป็นลำดับต่อไป
โดยทั่วไปของ AWS เราจะเรียก Subnet ที่มีเส้นทางไปที่ Internet Gateway ว่า "Public Subnet" และ Subnet ที่ไม่มีเส้นทางไป Internet Gateway ว่า "Private Subnet"
ALB(Application Load Balancer)
ALB คือบริการ Load Balancer ประเภทหนึ่งที่ให้บริการโดย AWS ซึ่งทำหน้าที่ถ่ายโอน request จากฝั่ง Client ไป Server บริการ Load Balancer ของ AWS เป็น "ELB (Elastic Load Balancing)" ซึ่งประกอบไปด้วย ALB, NLB (Network Load Balancer), GWLB (Gateway Load Balancer) ฯลฯ เว็บเซิร์ฟเวอร์ทั่วไปจะใช้ ALB ที่ถูกติดตั้งบน Public Subnet ฯลฯ เว็บเซิร์ฟเวอร์ทั่วไป ALB จะถูกติดตั้งบน Public Subnet
ALB ได้รับการจัดการโดย AWS และใช้ในฐานะ Load Balancer เท่านั้น ดังนั้นการจัดการและการตั้งค่าโดยละเอียดจึงไม่สามารถทำได้ในฐานะเซิร์ฟเวอร์ ข้อแตกต่างประการแรกๆกับ On-Premise คือการที่เราไม่สามารถเชื่อมเชื่อมต่อกับเซิร์ฟเวอร์ที่ติดตั้ง ALB ผ่าน SSH และทำการตั้งค่าได้
Amazon EC2
Amazon EC2 เป็นบริการสำหรับการสร้างเซิร์ฟเวอร์เสมือนบน AWS เราสามารถใช้เป็นเซิร์ฟเวอร์เสมือนได้โดยเลือก machine image เช่น Windows หรือ Linux ตามวัตถุประสงค์ที่ต้องการ และสร้าง "EC2 อินแสตนซ์"
นอกจาก EC2 อินสแตนซ์จะสามารถเชื่อมต่อโดยใช้ SSH, RDP ฯลฯ ได้แบบเดียวกับเซิร์ฟเวอร์ On-Premise ยังมีฟังก์ชัน AWS Session Manager ที่ทำให้เราสามารถเชื่อมต่อจากหน้าคอนโซลได้โดยที่ไม่ต้องเตรียม jump server
หากต้องการใช้เป็นเว็บเซิร์ฟเวอร์ ให้ติดตั้งเว็บเซิร์ฟเวอร์ เช่น Apache บน EC2 อินสแตนซ์ที่สร้างขึ้น
Amazon RDS
Amazon RDS คือ managed service ที่ให้บริการ RDB นอกจาก DB หลัก เช่น MySQL, PostgreSQL, Maria DB, Oracle DB และ SQL Server แล้ว เรายังสามารถใช้ Amazon Aurora ที่พัฒนาโดย AWS ได้อีกด้วย
Managed Service คือบริการที่จัดการและดำเนินการโดย AWS รวมถึง OS และ DB ซึ่งจะจำกัดขอบเขตที่ผู้ใช้ต้องดำเนินการให้แคบลงและลดภาระในการปฏิบัติงาน
บทความที่เกี่ยวข้องกับ AWS Web Server
【Update】วิธีติดตั้ง Amazon Linux 2 บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTY (Thai)
วิธีติดตั้ง PHP 8.2 และ Apache ใน Amazon Linux 2023 บน EC2 (Thai)
วิธีการเชื่อมต่อเซิร์ฟเวอร์ Amazon Linux 2 ของ EC2 Instance ด้วย Tera Term (Thai)
การติดตั้ง Ubuntu 20.04 บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วย PuTTy (Thai)
วิธีตั้งค่า Time Zone ใน Amazon Linux 2 ของ EC2 (Thai)
วิธีเพิ่ม Storage บน Amazon Linux ใน EC2 (Thai)
วิธีสร้าง Swap Memory ใน Amazon Linux 2 ของ EC2 (Thai)
【Update】การสร้าง Microsoft Windows Server ใน Amazon EC2 (Thai)
วิธีการเปลี่ยน CPU และ Memory สำหรับ Windows Server 2019 บน EC2 (Thai)
บทความต้นฉบับ
【AWS・はじめてのWebサーバー構築】構成から必要なサービスまでを解説 (Japanese)