將傳統的 ASP.NET 應用程序部署到 Elastic Beanstalk - AWS 搭配 Amazon Q 的工具組

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將傳統的 ASP.NET 應用程序部署到 Elastic Beanstalk

本節說明如何使用發佈至 Elastic Beanstalk 精靈 (做為 Toolkit for Visual Studio 的一部分所提供),透過 Elastic Beanstalk 部署應用程式。若要練習,您可以使用 Visual Studio 內建的 Web 應用程式入門專案執行個體,也可以使用自己的專案。

注意

此精靈也支援部署 ASP.NET 核心應用程式。如需 ASP.NET 核心的相關資訊,請參閱 AWS.NET 部署工具指南和更新的部署至AWS目錄。

注意

您必須先下載並安裝 Web 部署,才能使用「發佈成 Elastic Beanstalk」精靈。精靈依賴 Web 部署將 Web 應用程式和網站部署到網際網路資訊服務 (IIS) Web 伺服器。

建立範例 Web 應用程式入門專案

  1. 在 Visual Studio 中,從 [檔案] 功能表中選擇 [新增],然後選擇 [案]。

  2. New Project (新增專案) 對話方塊的導覽窗格中,展開 Installed (已安裝)、展開 Templates (範本),展開 Visual C#,然後選擇 Web

  3. 在 Web 專案範本的清單中,選擇其描述中包含文字 WebApplication 的任何範本。在此範例中,請選擇 ASP.NET Web 表單應用程式

    New Project window showing ASP.NET web application templates for Visual C# in .NET Framework 4.5.
  4. Name (名稱) 方塊中,輸入 AEBWebAppDemo

  5. 在 [位置] 方塊中,輸入開發電腦上方案資料夾的路徑,或選擇 [瀏覽],然後瀏覽並選擇解決方案資料夾,然後選擇 [選取資料夾]

  6. 確認已選取 Create directory for solution (為方案建立目錄) 方塊。在 [解決方案] 下拉式清單中,確認已選取 [建立新方案],然後選擇 [確定]。視覺工作室將創建一個基於 ASP.NET Web 窗體應用程序項目模板的解決方案和項目。然後 Visual Studio 將顯示解決方案資源管理器,其中新的解決方案和項目出現。

    Solution Explorer window showing project structure with folders and files for a web application.

使用發佈至 Elastic Beanstalk 精靈部署應用程式

  1. 在 [方案總管] 中,針對您在上一節中建立的專案開啟 AEBWebAppDemo 專案資料夾的內容 (按一下滑鼠右鍵) 功能表,或為您自己的應用程式開啟專案資料夾的內容功能表,然後選擇 [發佈至 EAWS lastic Beanstalk]。

    Solution Explorer context menu showing "Publish to AWS..." option for AEBWebAppDemo project.

    Publish to Elastic Beanstalk (發佈至 Elastic Beanstalk) 精靈隨即顯示。

    Publish to AWS Elastic Beanstalk wizard interface for creating or redeploying an application environment.
  2. 設定檔中,從要用於部署的帳戶設定檔下拉式清單中,選擇要用於部署的AWS帳戶設定檔。

    或者,如果您有要使用的AWS帳戶,但尚未為其建立AWS帳戶設定檔,則可以選擇帶有加號 (+) 的按鈕來新增AWS帳戶設定檔。

  3. 從「區域」下拉式清單中,選擇您要 Elastic Beanstalk 部署應用程式的目標區域。

  4. 部署目標中,您可以選擇建立新的應用程式環境來執行應用程式的初始部署,或選擇重新部署至現有環境以重新部署先前部署的應用程式。(先前的部署可能是使用精靈或已取代的「獨立部署工具」來執行)。如果您選擇重新部署至現有環境,精靈可能會從目前正在執行的先前部署擷取資訊時發生延遲。

    注意

    如果您選擇「重新部署至現有環境」,請在清單中選擇環境,然後選擇「下一步」,精靈會直接帶您進入「應用程式選項」頁面。如果您採用此路線,請略過本節稍後說明如何使用「應用程式選項」頁面的指示。

  5. 選擇 Next (下一步)。

    Application Environment setup page for AWS with fields for name, environment, and URL.
  6. 在 [應用程式環境] 頁面的 [應用程式] 區域中,[名稱] 下拉式清單會建議應用程式的預設名稱。您可以從下拉式清單中選擇其他名稱來變更預設名稱。

  7. 在「環境」區域的「名稱」下拉式清單中,輸入 Elastic Beanstalk 環境的名稱。在此內容中,「環境」一詞指的是您應用程式的基礎結構 Elastic Beanstalk 條款。此下拉式清單中可能已建議預設名稱。如果尚未建議使用預設名稱,您可以鍵入一個或從下拉式清單中選擇一個名稱 (如果有其他名稱)。環境名稱長度不可超過 23 個字元。

  8. URL 區域中,方塊會提出一個預設子網域,.elasticbeanstalk.com該子網域將會是您 Web 應用程式的 URL。您可以輸入新的子網域名稱來變更預設子網域。

  9. 選擇 [檢查可用性] 以確定 Web 應用程式的 URL 尚未在使用中。

  10. 如果您的 Web 應用程式的 URL 可以使用,請選擇 [下一步]。

AWS EC2 launch configuration settings for deploying an application to Amazon Web Services.
  1. 在 [選AWS項] 頁面的 Amazon EC2 啟動組態中,從容器類型下拉式清單中選擇將用於您的應用程式的 Amazon 機器映像 (AMI) 類型。

  2. 執行個體類型下拉式清單中,指定要使用的 Amazon EC2 執行個體類型。在此範例中,我們建議您使用 Micro。這將將執行個個體相關的成本降至最低。如需 Amazon EC2 成本的詳細資訊,請前往 EC2 定價頁面。

  3. key pair 下拉式清單中,選擇 Amazon EC2 執行個體金鑰配對,以登入將用於應用程式的執行個體。

  4. 或者,在 [使用自訂 AMI] 方塊中,您可以指定將覆寫 [容器類型] 下拉式清單中指定的 AMI 的自訂 AMI。如需有關如何建立自訂 AMI 的詳細資訊,請前往 EAWS lastic Beanstalk 開發人員指南中的使用自訂 AM I,並從 Amazon EC2 執行個體建立 AMI。

  5. 您可以選擇性地選擇您想要在 VPC 中啟動您的執行個個個體,請選擇 Telete VPC (使用 VPC) 方塊。

  6. 或者,如果您想要啟動單一 Amazon EC2 執行個體,然後將應用程式部署到該執行個體,請選取「單一執行個體環境」方塊。

    如果您選取此核取方塊,Elastic Beanstalk 仍會建立 Auto Scaling 群組,但不會對其進行設定。如果您想要稍後配置「Auto Scaling」群組,可以使用AWS Management Console.

  7. 或者,如果您要控制將應用程式部署至執行個體的條件,請選取啟用滾動式部署方塊。僅當您尚未選取「單一例證」環境方塊時,才可以選取此方塊。

  8. 如果您的應用程式使用 Amazon S3 和 DynamoDB 等AWS服務,提供登入資料的最佳方式就是使用 IAM 角色。在「已部署的應用程式許可」區域中,您可以選擇現有的 IAM 角色,也可以建立精靈將用來啟動環境的角色。使用的應用程式AWS SDK for .NET會在向AWS服務提出要求時,自動使用此 IAM 角色提供的登入資料。

  9. 如果您的應用程式存取 Amazon RDS 資料庫,請在關聯式資料庫存取區域的下拉式清單中,選取精靈將更新的任何 Amazon RDS 安全群組旁邊的方塊,以便 Amazon EC2 執行個體可以存取該資料庫。

  10. 選擇 Next (下一步)。

    • 如果您選取 [使用 VPC],將會顯示 [VPC 選項] 頁面。

    • 如果您選取了「啟用輪替部署」,但未選取「使用 VPC」,則會顯示「滾動式部署」頁面。請跳至本段落稍後說明如何使用「機動式建置」頁面的指示。

    • 如果未選取「使用 VPC」或「啟用輪替部署」,將會顯示「應用程式選項」頁面。請跳至本節稍後說明如何使用「應用程式選項」頁面的指示。

  11. 如果您選取 [使用 VPC],請在 [VPC 選項] 頁面上指定資訊,以將應用程式啟動到 VPC 中。

    VPC Options interface for configuring AWS Elastic Beanstalk application deployment settings.

    VPC 必須已建立了 VPC。如果您在 Visual Studio 的工具組中建立 VPC,Toolkit for Visual Studio 將會為您填入此頁面。如果您在AWS管理主控台中建立 VPC,請在此頁面中輸入 VPC 的相關資訊。

部署到 VPC 的關鍵注意事項

  • 您的 VPC 需要至少一個公有私有私有私有 VPC 需要的私有 VPC

  • ELB 子網路下拉式清單中,指定公用子網路。Visual Studio 的工具組會為您的應用程式部署 Elastic Load Balancing 負載平衡器至公用子網路。公有有有有一個指向網際網路由閘道的路由資料表相關聯。您可以辨識網際網路閘道,因為它的 ID 開頭為igw- (例如,igw-83cddaex)。您使用 Visual Studio 的工具組所建立的公用子網路具有可將其識別為公用的標記值。

  • 執行個體子網路下拉式清單中,指定私有子網路。適用 Toolkit for Visual Studio 會將您應用程式的 Amazon EC2 執行個體部署到私有子網路。

  • 應用程式的 Amazon EC2 執行個體透過執行網路位址轉譯 (NAT) 的公有子網路中的 Amazon EC2 執行個體,從私有子網路與網際網路通訊。若要啟用此通訊,您需要一個允許流量從私有子網路流向 NAT 執行個體的 VPC 安全群組。在 [安全性群組] 下拉式清單中指定此 VPC 安全性群組

如需有關如何將彈性 Beanstalk 應用程式部署到 VPC 的詳細資訊,請前往 EAWS lastic Beanstalk 開發人員指南

  1. 在 [VPC 選項] 頁面上填寫完所有資訊之後,請選擇 [下一步]。

    • 如果您選取「啟用輪替部署」,將會顯示「輪替部署」頁面。

    • 如果未選取「啟用滾動式部署」,則會顯示「應用程式選項」頁面。請跳至本節稍後說明如何使用「應用程式選項」頁面的指示。

  2. 如果您選取「啟用輪替式部署」,您可以在「機動部署」頁面上指定資訊,以設定如何將應用程式的新版本建置到負載平衡環境中的執行處理。舉例來說,您可以將環境設定為一次變更兩個執行個個個個體的執行個個個個體的環境,您可以將該環境設定成一次變更兩個執行個個個個體的執行個個 這有助於確保您的應用程式在進行變更時仍在執行。

    Rolling Deployments configuration interface for AWS application updates and environment settings.
  3. 在 [應用程式版本] 區域中,選擇一個選項,一次控制部署為某個百分比或數目的執行個體。指定所需的百分比或數字。

  4. 或者,如果您要指定部署期間保留在服務中的執行個體數目,請選取 [環境組態] 區域中的核取方塊。如果選取此方塊,請指定一次應修改的執行處理數目上限、一次應保持使用中的執行處理數目下限,或同時指定兩者。

  5. 選擇 Next (下一步)。

  6. 在 [應用程式選項] 頁面上,您可以指定組建、網際網路資訊服務 (IIS) 和應用程式設定的相關資訊。

    Application Options interface for configuring build and deployment settings for AWS.
  7. 在 [組建和 IIS 部署設定] 區域的 [專案組建設定] 下拉式清單中,選擇目標組建組態。如果精靈可以找到它,否則會出現釋放,使用中的組態會顯示在此方塊中。

  8. 在 [應用程式集區] 下拉式清單中,選擇應用程式所需的 .NET Framework 版本。應該已顯示了正確的 .NET 架構版本。

  9. 如果您的應用程式是 32 位元,請選取啟用 32 位元應用程式方塊

  10. 在 [應用程式路徑] 方塊中,指定 IIS 將用於部署應用程式的路徑。依預設,會指定「預設網站/」,通常會轉譯為路徑c:\inetpub\wwwroot。如果您指定預設網站/以外的路徑,精靈會將重新導向放置在指向您指定的路徑的預設網站/路徑中。

  11. [應用程式設定] 區域的 [Health 全狀況] 核取方塊中,輸入 Elastic Beanstalk 的 URL 以檢查,以判斷您的 Web 應用程式是否仍有回應。此 URL 是相對於根伺服器 URL 的 URL。根伺服器 URL 預設為指定。例如,如果完整的 URL 是example.com/site-is-up.html,您可以輸入/site-is-up.html

  12. 在「」和「」區域中,您可以指定要新增至應用程式Web.config檔案的任何索引鍵和值配對。

    注意

    雖然不建議使用,但您可以使用「」和「」區域來指定應用程式執行的AWS認證。偏好的方法是在 [AWS選項] 頁面的 [Identity and Access Management 角色] 下拉式清單中指定 IAM 角色。但是,如果您必須使用AWS登入資料而非 IAM 角色來執行應用程式,請在「金鑰」列中選擇AWSAccessKey。在「」列中,輸入存取金鑰。對重複這些步驟AWSSecretKey

  13. 選擇 Next (下一步)。

    Review window for publishing an application to AWS Elastic Beanstalk with deployment details.
  14. 在 [複查] 頁面上,複查您設定的選項,然後選取 [精靈關閉時開啟環境狀態視窗] 方塊。

  15. 如果各個項目都正確,請選擇 Deploy (部署)

    注意

    當您部署應用程式時,作用中帳戶會對應用程式使用的AWS資源產生費用。

    有關部署的資訊將顯示在 Visual Studio 狀態列和 [出] 視窗中。可能需要幾分鐘的時間。部署完成後,「輸出」視窗中會顯示確認訊息。

  16. 若要刪除部署,請在AWS Explorer (檔案總管) 中,展開 Explorer Elastic Beanstalk 節點的內容 (右鍵) 功能表,開啟部署的子節點的內容 (右鍵) 功能表,開啟部署的子節點的內容 ( 刪除程序可能需要幾分鐘的時間才會完成。