阿里雲 Web+ (Aliyun Cloud Web Plus) 使用筆記 {id="Aliyun-Cloud-Web-Plus-Usage-Notes"}
Alibaba Cloud web+ 紀錄使用心得
專案命名原則
Web+ 應用架構 同一個應用會共用上傳的部屬包版本 也就是說如果你專案 TestProject 有分前後端 Web 與 API 應該是要開兩個不同的應用 Web App 與 API App 然後各自應用裡面去分不同的部屬環境 Prod 與 Staging
ABC-Web/Prod
ABC-Web/Staging
ABC-API/Prod
ABC-API/Staging
部屬環境命名 部屬環境名稱會被拿來當作實例名稱中的某一段字節 假設你有兩個應用 TestProject-Web 與 TestProject-API 分別有各自的兩個環境 Prod 與 Staging 自動生成的實例名稱會長程以下這樣
ECS
ABC-Web/Prod => WebPlus-ProdABC-API/Prod => WebPlus-ProdABC-Web/Staging => WebPlus-StagingABC-API/Staging => WebPlus-Staging
SLB
ABC-Web/Prod => WebPlus-slb-ProdABC-API/Prod => WebPlus-slb-ProdABC-Web/Staging => WebPlus-slb-StagingABC-API/Staging => WebPlus-slb-Staging
這樣會導致很多地方的名稱都會長一樣 想像一下你有一百個應用,環境都有Prod與Staging 你就會看到一百個ESC都叫一樣的名字
目前傾向 應用名稱/環境名稱 都把專案名稱放進去
ABC-Web/ABC-Web-Prod
ABC-Web/ABC-Web-Staging
ABC-API/ABC-API-Prod
ABC-API/ABC-API-Staging
踩坑紀錄
RDS 從WEB+配置介面內啟用RDS代購時選擇 標準 MSSQL 2019 高可用版 會建立失敗 目前開工單得到的回應是,要自己去RDS產品頁面購買後,再來配置這邊選擇導入
SLB 從WEB+控制台點擊SLB時,都會導到北京區域的SLB頁面, 如果SLB其實不在北京區域,可能會產生找不到資源的問題, 比如:綁定上海EIP時找不到已購買EIP,因為她是列出北京EIP
SLB 502 配置 SLB 後可能會得到 502 Bad Gateway 錯誤, 預設健康檢查會去訪問 Web 根目錄 如果無法正確回傳 2xx 或 3xx 狀態 SLB 會視為服務不可用,而得到 502 解決辦法:到 SLB 設定 健康檢查網址 改到可以正常回傳 2xx 或 3xx 的 URL
主機實例 公網IP 此時,主機實例將能夠訪問公網也可以被公網訪問,請注意網絡安全。 配置主機時預設會配一組外網 IP,如果不需要給外網呼叫,可以選擇關閉外網 IP But, 關閉外網 IP 同時也會無法訪問外網! 所以如果應用不需要訪問外網,只需要提供內網IP給其他服務呼叫,才能關閉外部 IP
新建環境失敗 (失败原因为通过云助手安装Web+ Agent失败, 系统等待超过1分钟仍然没有收到Agent的心跳, 可能是由于通过云助手下发命令失败。) 解決辦法:Web+ 控制台 右上角 重建
安全組 預設 22 Port 對外全開? 解決辦法:到安全組移除 0.0.0.0,改為公司 IP
日誌 日誌檔案路徑設定一個以上時會無法蒐集日誌
專案設定
Dotnet Core 目前版本最新只支援到 3.1
HTTPS Redirect SLB 往後拋時預設走 HTTP,強制轉 HTTPS 會連不到 解決辦法:Startup.cs 中移除 app.UseHttpsRedirection
Port 反向代理預設會將 80 Port 導到 5000 Port (dotnet core default port) 更改 Web Application listen port 可能會造成連不到的情況 解決辦法:移除 appsettings.json 中的 Kestrel.EndPoints.Http(s).Url 改用 LaunchSettings.json 或 appsettings.Development.json 來指定 Port
發布 目標執行階段 因為 Runtime 環境是 linux,預設 目標執行階段 Portable 可能會啟動失敗 解決辦法:發布時將目標執行階段,改成 linux-x64
備註
Web+ 預設硬碟 100G,用不到那摸多可以設到40G
Web+ 主機實例最小可以設到共享型 1 Core 0.5 G Ram
SLB 如果不想重建時 IP 跑掉,可以綁定 EIP 但是 EIP 只能綁到沒有外網 IP 且為 專有網路 的 內網 SLB 由 Web+ 代購的公網 SLB 是經典網路且已預分配公網 IP 無法再綁定 EIP 結論:配置內網 SLB 後再綁定 EIP 來固定 IP 位置
缺點
不太成熟的產品 配置RDS代購有問題,連結SLB的地區也有問題,甚至新建環境還會失敗
不太靈活 配置外網SLB無法綁定EIP來固定IP,反而要藉由內網SLB才能達成, 無法自動依照負載彈性伸縮ECS,一定要外網IP才能連外
自家服務新版本整合不易 無法搭配SLB新版ALB來使用,RDS 最新版 MSSQL 2019 無法代購只能導入
工具支援度低 Web+ 專用命令操作 Cli 不支援 Windows,VsCode的 Ali 擴充功能也不支援 Web+
結論
還有蠻多進步的空間
延伸閱讀
阿里雲 Web+ 使用 Cli 部署 DotnetCore 3.1 專案筆記
Drone 阿里雲 Web+ DotnetCore 3.1 CI/CD & DockerHub Images CI/CD
參考文件: Drone 阿里雲 Web+ DotnetCore 3.1 CI/CD & DockerHub Images CI/CD

PS5
阿里雲
Web+
阿里雲
回首頁
本文章從點部落遷移至 Writerside