使用 AWS 進行 Web 託管時的重要考量 - AWS 雲端的 Web 應用程式託管

使用 AWS 進行 Web 託管時的重要考量

AWS 雲端與傳統 Web 應用程式託管模型之間存在一些重要差異。上一節強調的是在將 Web 應用程式部署到雲端時應考慮的許多重要領域。本節指出在將任何應用程式引入雲端時需要考慮的一些重要架構轉變。

不再有實體網路設備

您無法在 AWS 中部署實體網路設備。例如,AWS 應用程式的防火牆、路由器和負載平衡器不能再置於實體裝置上,而必須以軟體解決方案取代。有各種企業級軟體解決方案,無論是負載平衡或建立 VPN 連接。這不是對 AWS 雲端上可以執行項目的限制,但如果您現今使用這些裝置,則會是對您的應用程式的架構變更。

防火牆無所不在

如果您曾經有一個簡單的非軍事區 (DMZ),然後在傳統託管模型中開啟主機之間的通訊,AWS 會強制執行一種更安全的模型,其中的每個主機都被鎖定。規劃 AWS 部署的其中一個步驟是分析主機之間的流量。此分析將引導您進行需要開啟的確切連接埠的決策。您可以為架構中的每個類型主機建立安全群組。您還可以建立多種簡單和分層的安全模型,以實現架構內主機之間的最低存取權。Amazon VPC 內使用的網路存取控制清單可協助您在子網路層級鎖定您的網路。

考慮多個資料中心的可用性

AWS 區域內的可用區域視為多個資料中心。不同可用區域中的 EC2 執行個體在邏輯上和實體上都是分離的,而它們為跨資料中心部署應用程式提供一個易於使用的模型,以實現高可用性和可靠性。Amazon VPC 作為區域服務,使得您能夠利用可用區域,同時將所有資源保留在同一邏輯網路中。

將主機視為暫時性和動態

在建置 AWS 應用程式方面,最重要的轉變可能是應該將 Amazon EC2 主機視為暫時性和動態。為 AWS 雲端建置的任何應用程式都不應假設主機將一律可用,而且在設計時應瞭解,在 EC2 執行個體出現故障時,EC2 即時存放區中的任何資料都會遺失。

啟動新主機時,您不應假設主機的 IP 地址或在主機可用區域內的位置。您的組態模型必須靈活,而且自舉主機的方法必須將雲端的動態本質納入考量。這些技術對於建置和執行高度可擴展和容錯應用程式來說極為重要。

考慮容器和無伺服器

本白皮書主要聚焦於較傳統的 Web 架構。但是,請考慮透過移至容器無伺服器技術來實現 Web 應用程式的現代化,利用 AWS FargateAWS Lambda 之類的服務,使您能夠將使用虛擬機器抽離來執行運算任務。利用無伺服器運算,基礎設施管理任務,如容量佈建和修補,會由 AWS 處理,因此您可以建置使您能夠更快速創新並回應變化的更敏捷應用程式。

考慮自動化部署

  • Amazon Lightsail 是一種易於使用的虛擬私有伺服器 (VPS),可為您提供建置應用程式或網站所需的一切內容,外加符合成本效益的每月計劃。Lightsail 非常適合較簡單的工作負載、快速部署以及在 AWS 上開始使用。設計用於協助您從小規模開始,然後隨增長擴展。

  • AWS Elastic Beanstalk 是一項簡單易用的服務,可供您在常見的伺服器 (如 Apache、NGINX、Passenger 和 IIS) 上,針對使用 Java、.NET、PHP、Node.js、Python、Ruby、Go 與 Docker 開發的 Web 應用程式和服務進行部署及擴展作業。您只需上傳程式碼,Elastic Beanstalk 即可為您自動處理部署,包括容量佈建、負載平衡、自動擴展,以及應用程式運作狀態監控。同時,您也能完全控制支援應用程式的 AWS 資源,且可隨時存取基礎資源。

  • AWS App Runner 是一項全受管服務,可讓開發人員輕鬆快速地大規模部署容器化 Web 應用程式和 API,而無需事先具備基礎設施經驗。從原始程式碼或容器映像開始。App Runner 會自動建置和部署 Web 應用程式,並透過加密來負載平衡流量。App Runner 還會自動擴展或縮減以滿足您的流量需求。

  • AWS Amplify 是一套可以結合使用或單獨使用的工具和服務,用於協助前端 Web 和行動開發人員採用 AWS 技術建置可擴展的完整堆疊應用程式。藉助 Amplify,您可以在幾分鐘內設定應用程式後端並連接您的應用程式,按幾下即可部署靜態 Web 應用程式,以及在 AWS Management Console 外部輕鬆管理應用程式內容。