【實作紀錄】AWS S3 雲端佈署 × Angular

Ray
Dec 2, 2021

--

嘗試過Heroku以及GitHub Page的佈署,最後使用AWS S3佈署。原因是

Heroku在一段時間沒有被使用後會被伺服器unloaded,所以下次啟動時需要再重新加載,就需要等待那段加載的時間。

GitHub Page若要託管靜態網站,則需要Open Source,意即一般狀態下若要託管,則倉庫必須不能是Private。

AWS S3,沒有以上兩個問題,只是要流量用超過要付錢。(費率文檔)

Amazon S3 是 AWS 免費方案的一部分,您可以免費開始使用。註冊後,AWS 的新客戶可獲得一年期每月 5 GB 的 S3 標準儲存類別 Amazon S3 儲存;20,000 個 GET 請求;2,000 個 PUT、COPY、POST 或 LIST 請求;以及 15 GB 的資料傳出。

主要流程:

  1. 建立存放網頁的AWS貯體
  2. 將Angular專案上傳到AWS上
  3. 設定存取權
  4. 啟用

建立存放網頁的AWS貯體

1. 到Amazon S3 建立儲存貯(ㄓㄨˇ)體

2.填寫貯體名稱跟存放的地方

兩個欄位填完後直接拉到最下面,點擊儲存貯體

上傳Angular專案

選擇一個已有的專案(或建立一個新專案)打包後上傳

ng build --prod 

回到AWS

1.選擇剛剛建立的貯體

2.上傳

選擇上傳檔案,把"dist/<資料夾>”下的都選起後,拉到最底案上傳

設定存取權

1.打開許可

2.點擊編輯後把所有存取權打開後按儲存變更

3.接著在同頁編輯儲存貯體政策

預設的規則

把他替換為

{     
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<貯體名稱>/*"
}
]
}

啟用

回到屬性找到靜態網頁託管,點編輯後勾選啟用

設定要開啟的預設檔案名稱

回到最下面就可以找到佈署後的網址

補充

網頁的圖片顯示不出來?因為上傳檔案的時候asset資料夾沒傳到...

參考

[Day28] 前端部署網頁的方式 (Vercel, AWS S3 & Netlify)

--

--

No responses yet