การกำหนด Hostname (Domain) ให้กับ Lightsail Bucket

Lightsail Bucket สามารถกำหนด Hostname (Domain) โดยการสร้าง Distribution และตั้งค่า SSL Certificate เพื่อให้เว็บไซต์มีความปลอดภัยและมีความน่าเชื่อถือในการเข้าใช้งานได้ โดยในบทความนี้จะมาแนะนำวิธีการกำหนด Hostname (Domain) ให้กับ Lightsail Bucket ใน Amazon Lightsail

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

สวัสดีครับ 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

คลิก Continue

แล้วรอ 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

คลิก I understand

เมื่อเสร็จแล้วจะแสดง 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) ครับ !

Link อ้างอิง