การกำหนด Hostname (Domain) ให้กับ Lightsail Bucket
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
เป้าหมาย
ครั้งนี้จะมาทำการกำหนด Hostname (Domain) ให้กับ Lightsail Bucket
สิ่งที่ต้องมี
※สร้าง Bucket และอัปโหลดไฟล์ HTML ลงใน Object list แล้ว
※เผยแพร่เว็บไซต์แบบ Static ด้วย Lightsail Bucket แล้ว
ดูตัวอย่างได้ที่ลิงก์ด้านล่างนี้
การซื้อ Domain บน Route 53
ครั้งนี้ผมได้ซื้อ Domain บน Route 53 ที่ชื่อว่า cmth-train-ls.link
ล่วงหน้าไว้แล้ว
การจดทะเบียน Domain อาจใช้เวลาถึง 3 วันจึงจะเสร็จสมบูรณ์
ดูตัวอย่างการซื้อ Domain บน Route 53 ตามลิงก์ด้านล่างนี้
การสร้าง DNS Zone
เข้ามาที่ Service Amazon Lightsail
แล้วเลือกแท็บ Domains & DNS
จะเห็นว่ามี Registered domains ที่ซื้อไว้ล่วงหน้าแสดงอยู่ด้านล่าง ทีนี้ให้คลิกที่ Create DNS zone
เลื่อนลงมาด้านล่างที่หัวข้อ Domain configuration แล้วตั้งค่าดังนี้
» Domain source: ◎ Use a domain that is registered with Amazon Route 53
» Domain: เลือก Domain ที่ซื้อไว้ล่วงหน้า เช่น cmth-train-ls.link
» แล้วคลิก Create DNS zone
เมื่อสร้างเสร็จแล้วจะแสดงหน้าจอแบบนี้
การตั้งค่า Registered domains
กลับไปที่หน้าแรกของ Amazon Lightsail โดยคลิกแท็บ Home
ด้านบนซ้าย แล้วเลือกแท็บ Domains & DNS
อีกครั้ง
แล้วเลื่อนลงมาด้านล่างที่หัวข้อ Registered domains แล้วคลิก Domain ที่ซื้อไว้ล่วงหน้า เช่น cmth-train-ls.link
ให้เลื่อนลงมาด้านล่างสุด แล้วคลิก Edit name servers
ในหัวข้อ Name servers
หากแสดง "✅ Using Lightsail name servers" แบบนี้ ให้ทำขั้นตอนถัดไปได้เลย
*แต่ถ้าไม่แสดงแบบนี้ ให้คลิก
Use Lightsail name servers
แล้วจะมีป๊อปอัพแสดงขึ้นมาถามว่า "Replace name server?" ให้คลิกYes, replace
และคลิกSave
เพียงเท่านี้การตั้งค่า Registered domains ก็จะเสร็จสิ้น
กลับมาที่หน้า DNS Zone ที่สร้างไว้เมื่อสักครู่นี้ โดยคลิกแท็บ Home
ด้านบนซ้าย แล้วเลือกแท็บ Domains & DNS
แล้วคลิก DNS zone ของเราในหัวข้อ DNS zone เช่น cmth-train-ls.link
ก็จะเห็นว่า Domain ของเราแสดงอยู่ในหัวข้อ Domain แบบนี้ ครั้งนี้คือ Domain: cmth-train-ls.link
เพียงเท่านี้เราก็สามารถใช้ DNS zone นี้เพื่อจัดการ Domain ของเราได้แล้ว
การใช้ Distribution เพื่อใช้ SSL
เข้าไปที่แท็บ Networking โดยคลิกแท็บ Home
ด้านบนซ้าย
แล้วเลือกแท็บ Networking
แล้วคลิกปุ่ม Create distribution
มาที่หัวข้อ Choose your origin แล้วตั้งค่าตามนี้
» เปลี่ยนรีเจี้ยนตรงคำว่า "! You have no available origins in Virginia ⌵ (us-east-1)." ให้ตรงกับที่เราสร้าง Bucket ไว้ ครั้งนี้คือ Singapore
» เลือก Bucket ของเรา ครั้งนี้คือ tinnakorn-bucket
» คลิก Yes, apply
ก็จะได้ Bucket แบบนี้
ต่อไปหัวข้อ Choose your distribution plan
ให้เลือกปริมาณการถ่ายโอนข้อมูล(Data transfer) ที่ต้องการ ครั้งนี้จะเลือก 50 GB/month
(ใช้งานได้ฟรีใน 1 ปีแรก)
ต่อไปหัวข้อ Identify your distribution
ให้ป้อนชื่อ Distribution ที่ต้องการ ครั้งนี้คือ tinnakorn-bucket-dist
แล้วคลิก Create distribution
เมื่อตั้งค่าเสร็จแล้วจะแสดงหน้าจอแบบนี้ โดยมี Status: In progress... (กำลังเริ่มต้นเปิดใช้งาน Distribution) และ Default domain แสดงอยู่ด้านขวาบน
สำหรับ Status ไม่ต้องรอจนเสร็จก็ได้ ให้เริ่มทำขั้นตอนถัดไปได้เลย
การตั้งค่า Distribution
เลือกแท็บ Custom domains
แล้วคลิก + Create certificate
ในหัวข้อ Attached certificates
เมื่อมีป๊อปอัพ Create certificate แสดงขึ้นมา ให้ป้อน Certificate name ที่ต้องการ ครั้งนี้คือ tinnakorn-bucket-ssl
แล้วคลิก Continue
แล้วป้อน domains or subdomains ที่ต้องการโดยสามารถระบุได้ถึง 10 domains or subdomains ครั้งนี้คือ tinnakorn-bucket.cmth-train-ls.link
แล้วคลิก Create certificate
แล้วรอ Pending certificates (1) สักครู่ ซึ่งจะแสดง Status: Attempting to validate your certificate…
ใน Certificate ของเราแบบนี้ (หลังจากผ่านไปสัก 1-2 นาทีแล้วถ้ายังแสดงหน้าจอแบบเดิมอยู่ แนะนำให้ Reload หน้าเว็บไซต์)
แล้วคลิก Attach certificate (1 available)
แล้วเลือก Certificate ที่สร้างเมื่อสักครู่นี้ ครั้งนี้คือ Select a certificate: tinnakorn-bucket-ssl
แล้วคลิก Attach
เมื่อเสร็จแล้วจะแสดง Domain
ใน Custom domains และ Status: ✅ Valid, in use
อยู่ใน Certificate ของเราแบบนี้
การตั้งค่า DNS Zone
ไปที่หน้า DNS Zone โดยคลิกแท็บ Home
ด้านบนซ้าย แล้วเลือกแท็บ Domains & DNS
แล้วคลิก DNS zone ของเราในหัวข้อ DNS zone เช่น cmth-train-ls.link
แล้วเลือกแท็บ Assignments
แล้วคลิก + Add assignment
ในหัวข้อ Domain assignments
แล้วตั้งค่า Assignments ตาม domain name ของเราดังนี้
» Select a domain name: แนะนำให้ป้อนชื่อเหมือนกับตอนที่ตั้งค่า domains or subdomains เช่น tinnakorn-bucket
.cmth-train-ls.link
» Select a resource: เลือก Distribution ที่สร้างไว้ก่อนหน้านี้ ครั้งนี้คือ tinnakorn-bucket-dist
» แล้วคลิก Assign ✅
เมื่อ Assign เสร็จแล้วจะแสดงหน้าจอแบบนี้ แล้วให้คัดลอก Record name เพื่อใช้ทดสอบในขั้นตอนถัดไป ครั้งนี้คือ tinnakorn-bucket.cmth-train-ls.link
(Record name นี้ผมจะเรียกว่า Hostname
ในขั้นตอนถัดไป)
การทดสอบ Hostname
ตรวจสอบว่าเราสามารถเข้าถึง Hostname จากเว็บเบราว์เซอร์ได้หรือไม่ โดยเปิด URL บนเว็บเบราว์เซอร์ที่เราใช้งานตามนี้
https://[subdomain].cmth-train-ls.link/test.html
ถ้าแสดงหน้าจอแบบนี้ถือว่าเราสามารถเข้าถึง Hostname สำเร็จ
สุดท้ายนี้
การตั้งค่า Hostname (Domain) และ SSL ใน Amazon Lightsail นี้มีกระบวนการทำงานเหมือนกับการตั้งค่า Free SSL กับ DNS ใน CloudFront โดยใช้ ACM กับ Route 53 ใน AWS Management Console แต่สำหรับการตั้งค่า Hostname ใน Amazon Lightsail จะตั้งค่าง่ายกว่าใน AWS Management Console
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP จากบริษัท Classmethod (Thailand) ครับ !