什麼是 AWS Lightsail?
AWS Lightsail 是 AWS 提供的 虛擬私有伺服器(VPS) 服務。
如果不理解 VPS 是什麼的話可以將 VPS 想像成一個租用的電腦主機,但這台電腦並不是實際的硬體,而是存在雲端的虛擬電腦。這台電腦擁有自己的作業系統,你可以在這台電腦上運行軟體、存取檔案甚至將你的網站放在上面,所以 AWS Lightsail 服務就類似租用一個虛擬電腦。
而虛擬電腦是在一個大型的伺服器上運行的,這個大型的伺服器可能同時運行許多類似的虛擬電腦,但它們之間是獨立的不會互相影響。
VPS 通常用於託管網站、應用程式、資料庫等。它們比自己擁有一台完整的伺服器來得便宜,同時也比共享主機方案提供更多的自由度和性能,並且不必擔心硬體維護和管理的問題。
建立 Lightsail 實例:https://lightsail.aws.amazon.com/ls/webapp/create
首先需要擁有一個 AWS 帳號,註冊流程非常簡單所以就跳過了。
建立實例(Select your instance location)
首先我們需要建立一個實例(instance),實例是指你在VPS上運行的一個虛擬伺服器,它擁有自己的作業系統、應用程式和資源,就像一台獨立的實體伺服器一樣。
選擇實例位置(Select your instance location)
離實例距離越近延遲就越低,因此如果人在台灣的話建議選擇 首爾、東京、新加坡, 我個人是選擇東京,東京連線速度相較來說更快一些。
選擇實例鏡像(Pick your instance image)
鏡像(image)是一種虛擬伺服器的快照或模板。它是你設定好的虛擬伺服器的複本,包括作業系統、應用程式和配置。你下載某個軟體時的安裝檔和安裝作業系統時要用到的 .iso 檔都是鏡像。
旁邊的 WordPress Multisite 是大多數企業和機構使用的方案,允許你建立子網域或子目錄,比如說你的域名是
example.com
,你就可以建立多個子域site1.example.com
,site2.example.com
或者子目錄example.com/site1
,example.com/site2
,如果有這種需求可以選 Multisite,但如果你純粹只是要一個 Blog 的話選 WordPress 就夠了。
啟動自動快照(Enable Automatic Snapshots)
自動快照(automatic snapshot) 就是可以幫你的網站做鏡像備份,可以選擇在台灣時間凌晨來進行快照,免費的備份功能不要白不要,記得打勾。
選擇實例計畫(Choose your instance plan)
這部分就根據個人需求選擇即可,如果只是單純要架設 blog 的話,最基礎的 $3.5, $5 就夠了。
Identify your instance 就是你的實例名稱,單純用於個人識別。
取得 WordPress 後台密碼
創建完實例後會自動跳轉到 Lightsail 的實例頁面,左下角可以修改語言。
登入 WordPress 後台的默認密碼存儲在實例中,如果要獲取的話需要透過 SSH 連線才能獲取。
SSH(Secure Shell)連線是一種用於遠程安全訪問(虛擬)伺服器的方式。
點擊 SSH 圖示後會開啟 SSH terminal,輸入指令後即可獲取密碼:
cat $HOME/bitnami_application_password
登入 WordPress 後台
在你的公開 IP 後面加上 /wp-login.php
即可打開 WordPress 後台
- Username: 預設為
user
- Password: 剛剛 SSH 輸入指令獲取的預設密碼
公開 IP 就是實例下面顯示的 IP,以我的為例就是:
18.183.216.250/wp-login.php
修改後台語言
如果需要修改後台的語言,可以在左側菜單找到 Settings – General – Site Language 在最下方選擇繁體中文:
修改後台密碼
現在的後台密碼是隨機生成的,如果需要更改可以在左側菜單找到 使用者 – 全部使用者 – 編輯 user
最下方找到「設定新密碼」:
創建實例靜態 IP
是不是覺得到這一步就結束了?其實並沒有。當你把實例重啟之後會發現 IP 位址改了,總不可能每次訪問網站都需要換新的 IP,所以現在我們需要做的是建立靜態 IP。
在 Lightsail instances 中點擊實例進入實例的詳細頁面,上方標籤頁選擇「Networking」,在 PUBLIC IP 的下方點擊「Attach static IP」
輸入 static IP 的 ID,只要確保它是唯一即可:
建立之後可以嘗試重啟實例,確認IP是否不變。
使用自定義域名
目前我們需要透過 IP 來訪問網站,但 IP 實在是太難記了,所以我們需要使用自定義域名來代替 IP。
購買域名
AWS 就有提供域名註冊:AWS 域名註冊,不過我個人是在 spaceship 購買的域名。
域名比價
要想知道域名在哪個網站購買最便宜,可以參考這個網站:Domcomp,直接輸入想要的域名後就可以對比不同域名商的價格:
要特別注意的是,有的域名廠商初次購買折扣價和續約價會差滿多的,比如我想購買的域名在 GoDaddy 折扣價是 $4.99/年,但是續約價是 $11.99/年,這就差了 7 塊美金,所以建議購買之前要先中和考量折扣價和續約價。
- 如果域名是灰底的話就代表無法註冊。
- 域名比價網的價格不一定準確,建議大致比較後再去域名商官網查詢二次確認。
綁定域名
在 Lightsail 左側菜單找到 Domains & DNS,點擊 Create DNS zone
如果你不是在 Amazon Route 53 購買域名的話要選擇 Use a domain from another registrar,然後輸入購買的域名(不包括 https://www
和 /
):
在 DNS records 新增一筆 A 紀錄,record name 為 www
,resolves to IPv4 的位址:
回到實例中找到 Domains – Assign domain
選中剛剛新增的 DNS zone 後按 Assign
建立完成後,在域名供應商管理域名,添加 A
紀錄為實例的 IPv4
添加完紀錄之後等待約幾分鐘就可以正常訪問了,久一點的話可能需要到一天。
安裝 SSL 憑證,使用 HTTPS 訪問網站
現在訪問網站會提示我們的網站連線不安全,這是因為目前使用的是 HTTP 協議而不是 HTTPS:
為了使網站能夠更安全的訪問,我們需要安裝 SSL 憑證(免費的 Let’s Encrypt),憑證每 90 天會更新(它會自動更新),安裝的方式需要透過 SSL Terminal
輸入指令:
sudo /opt/bitnami/bncert-tool
這個指令代表使用最高權限執行 bitnami 底下的 bncert-tool,透過 bncert-tool 來安裝 SSL 憑證。
接著它會詢問你域名,輸入你的域名後按 Enter:
Domain list []: yourdomain.com
若和我一樣出現下方的 error 就代表域名還沒有傳播完成(可以在這裡查詢)
The domain 'www.yourdomain.com' does not resolve, please fix its DNS entries or remove it.
如果確定 DNS 配置都正常的話可以輸入指令強制跳過:
sudo /opt/bitnami/bncert-tool --perform_public_ip_validation 0 --perform_dns_validation 0
過程中會詢問你幾個問題,按照以下順序回答即可:
Enable HTTP to HTTPS redirection [Y/n]: Y
Enable non-www to www redirection [Y/n]: Y
Enable www to non-www redirection [y/N]: N
Do you agree to these changes? [Y/n]: Y
E-mail address []: 輸入你的 email
Do you agree to the Let's Encrypt Subscriber Agreement? [Y/n]: Y
完成之後訪問網站就會是安全連線了:
大功告成
至此網站的建置已經完成,剩餘的部分就交給各位自行探索啦!