iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0

步驟 1:登入 AWS 並進入 S3 服務

  1. 登入 AWS Management Console
  2. 在搜尋欄輸入「S3」或從服務列表中選擇「S3」
  3. 進入 S3 儲存貯體管理頁面

步驟 2:建立 S3 儲存貯體 (Bucket)

  1. 點擊「建立儲存貯體」按鈕
  2. 設定儲存貯體基本資訊:
    • 儲存貯體名稱:輸入唯一的名稱(例如:my-website-bucket-2025)
      • 注意:名稱必須全球唯一,只能包含小寫字母、數字和連字號
  3. 物件所有權設定
    • 選擇「ACL 已停用」(建議選項)
  4. 封鎖公開存取設定
    • 取消勾選「封鎖所有公開存取」
    • 勾選確認聲明,允許公開存取(網站需要)
  5. 儲存貯體版本控制
    • 保持「停用」(初學者可先不啟用)
  6. 加密設定
    • 保持預設的「使用 SSE-S3 加密」
  7. 點擊「建立儲存貯體」

https://ithelp.ithome.com.tw/upload/images/20250925/20106094I671YJ6JiG.png

https://ithelp.ithome.com.tw/upload/images/20250925/20106094Rk8I94dNON.png


步驟 3:上傳網站檔案

  1. 點擊剛建立的儲存貯體名稱
  2. 點擊「上傳」按鈕
  3. 並先建立好index.html 檔案
  4. 上傳您的網站檔案:
    • index.html(必要,首頁檔案)
    • 也可以有 CSS、JavaScript、圖片等其他資源檔案
  5. 點擊「上傳」完成

https://ithelp.ithome.com.tw/upload/images/20250925/20106094zFIboCaBqZ.png
範例 index.html:

<!DOCTYPE html>
<html lang="zh-TW">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的第一個 S3 網站</title>

</head>
<body>
    <h1>歡迎來到我的 S3 網站!</h1>
    <p>這是使用 AWS S3 架設的靜態網站</p>
</body>
</html>

步驟 4:啟用靜態網站託管

  1. 在儲存貯體頁面,點擊「屬性」標籤
  2. 捲動到最下方找到「靜態網站託管」區塊

https://ithelp.ithome.com.tw/upload/images/20250925/20106094kSqvWZlGr3.png
3. 點擊「編輯」
4. 設定靜態網站託管:
- 靜態網站託管:選擇「啟用」
- 託管類型:選擇「託管靜態網站」
- 索引文件:輸入 index.html

https://ithelp.ithome.com.tw/upload/images/20250925/201060944h6aOv860B.png

  1. 點擊「儲存變更」
  2. 再捲動到最下方找到「靜態網站託管」區塊記下「儲存貯體網站端點」URL(例如:http://my-website-bucket-2024.s3-website-ap-northeast-1.amazonaws.com)/)

基本設定已經完成,但此時若點擊儲存貯體網站端點,會無法連線並顯示「403 Forbidden」錯誤。這是因為 AWS S3 預設會封鎖所有公開存取,我們還需要透過「儲存貯體政策」來調整權限,允許訪客讀取網站內容。


步驟 5:設定儲存貯體政策(公開訪問)

  1. 點擊「許可」標籤

  2. 捲動到「儲存貯體政策」區塊

  3. 點擊「編輯」

  4. 貼上以下政策(記得替換 your-bucket-name 為您的儲存貯體名稱):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::your-bucket-name/*"
            }
        ]
    }
    
  5. 點擊「儲存變更」

https://ithelp.ithome.com.tw/upload/images/20250925/20106094X9SbOO7YnI.png


步驟 6:測試您的網站

  1. 複製「儲存貯體網站端點」URL
  2. 在瀏覽器中開啟該 URL
  3. 您應該能看到您的網站內容!
    https://ithelp.ithome.com.tw/upload/images/20250925/20106094FonH8IITwi.png

步驟 7:(選用)設定自訂網域

因為 S3 網站預設只提供 HTTP 連線,沒有 SSL/TLS 憑證,因此無法使用安全的 HTTPS 協定。

解決方案

為了讓網站顯示為「安全」並使用 HTTPS,您需要透過 AWS CloudFront 來為網站加上 SSL 憑證。

設定步驟簡單說明:

  1. 建立 CloudFront 分發 (Distribution)
    • CloudFront 是 AWS 的內容傳遞網路 (CDN) 服務
    • 它可以為您的網站提供免費的 SSL 憑證
  2. 設定來源 (Origin)
    • 將 CloudFront 的來源指向您的 S3 儲存貯體
    • CloudFront 會從 S3 取得網站內容,並透過 HTTPS 提供給訪客
      https://ithelp.ithome.com.tw/upload/images/20250925/20106094Y1w6hZJNT4.png

注意!!!這裡一定要貼s3屬性給你的url不能用選的,因為預設會是s3 api endpoint,需要修改成 website endpoint

https://ithelp.ithome.com.tw/upload/images/20250925/201060944C0SGQRUUJ.png
身為小資族這裡就選擇不開啟WAF(因為太貴XD),主要功用為可以設定policy阻擋IP或是限定字等做為相對應的response!

https://ithelp.ithome.com.tw/upload/images/20250925/20106094tu2U440trq.png

下一步的話就直接省略直接建立等待3~5分鐘就建立完成

https://ithelp.ithome.com.tw/upload/images/20250925/20106094SGtXjleKwX.png

測試一下~ 我的網站就這樣做好啦!!

https://ithelp.ithome.com.tw/upload/images/20250925/20106094fr79MMHwqT.png


小結

優點:

  • 無需管理伺服器
  • 高可用性和擴展性
  • 成本低廉(按使用量計費)
  • 快速部署

⚠️ 注意事項:

  • S3 只能託管靜態網站(HTML、CSS、JS)
  • 無法執行伺服器端程式碼(PHP、Python 等)
  • 預設 HTTP 端點不支援 HTTPS(需搭配 CloudFront)
  • 確保不要上傳敏感資訊到公開儲存貯體

成本估算

以一個小型網站為例(每月 10GB 儲存、10,000 次請求):

  • 儲存費用:約 $0.25 USD
  • 請求費用:約 $0.01 USD
  • 資料傳輸:前 1GB 免費
  • 總計:約 $0.26 USD/月(非常便宜!)

現在您已經成功在 AWS S3 上架設了第一個靜態網站!🎉


上一篇
Day 10 建立 API Gateway 串接 Lambda
下一篇
Day 12 讓 AI 開口說話2 :Bedrock 小試身手
系列文
來都來了,那就做一個AWS從0到100的微服務AI小平台!12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言