将传统的 ASP.NET 应用程序部署到 Elastic Beanstalk - Amazon Toolkit for Visual Studio
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将传统的 ASP.NET 应用程序部署到 Elastic Beanstalk

本节介绍如何使用作为 Visual Studio 工具包一部分提供的 “发布到 Elastic Beanstalk” 向导通过 Elastic Beanstalk 部署应用程序。要进行练习,您可使用 Visual Studio 中内置的 Web 应用程序初学者项目的实例,也可使用您自己的项目。

注意

此向导还支持部署 ASP.NET 内核应用程序。有关 ASP.NET Core 的信息,请参阅 Amazon.NET 部署工具指南和更新后的 “部署到Amazon目录”。

注意

必须先下载并安装 Web Deploy,然后才能使用 “发布到 Elastic Beanstalk” 向导。此向导依赖 Web Deploy 将 Web 应用程序和网站部署到 Internet Information Services (IIS) Web 服务器。

创建示例 Web 应用程序初学者项目

  1. 在 Visual Studio 中,从 File (文件) 菜单中,选择 New (新建),然后选择 Project (项目)

  2. New Project (新建项目) 对话框的导航窗格中,依次展开 Installed (已安装)Templates (模板)Visual C#,然后选择 Web

  3. 在 Web 项目模板的列表中,选择其说明中包含 WebApplication 字样的任何模板。在本示例中,请选择 ASP.NET Web Forms Application (ASP.NET Web 表单应用程序)

  4. Name (名称) 框中,键入 AEBWebAppDemo

  5. Location (位置) 框中,键入您的开发计算机上的解决方案文件夹的路径或选择 Browse (浏览),然后浏览并选择解决方案文件夹,再选择 Select Folder (选择文件夹)

  6. 确认选中了 Create directory for solution (为解决方案创建目录) 框。在 Solution (解决方案) 下拉列表中,确认选择了 Create new solution (创建新解决方案),然后选择 OK (确定)。Visual Studio 将基于 ASP.NET Web 表单应用程序项目模板创建解决方案和项目。随后,Visual Studio 将显示解决方案资源管理器,其中将显示新的解决方案和项目。

使用 Publish to Elastic Beanstalk 向导部署应用程序

  1. 在 “解决方案资源管理器” 中,打开您在上一节中创建的项目的 AEBWebAppDemo 项目文件夹的上下文(右键单击)菜单,或者打开您自己的应用程序的项目文件夹的快捷菜单,然后选择 “发布到 EAmazon lastic Beanstalk”。

    随即显示 Publish to Elastic Beanstalk (发布到 Elastic Beanstalk) 向导。

  2. 在 “配置文件” 中,从 “用于部署的帐户配置文件” 下拉列表中,选择要用于部署的Amazon帐户配置文件。

    (可选)如果您有想要使用的Amazon账户,但尚未为其创建Amazon账户资料,则可以选择带有加号 (+) 的按钮来添加Amazon账户资料。

  3. 区域下拉列表中,选择您希望 Elastic Beanstalk 将应用程序部署到的区域。

  4. Deployment Target (部署目标) 中,您可选择 Create a new application environment (创建新应用程序环境) 执行应用程序的初始部署或选择 Redeploy to an existing environment (重新部署到现有环境) 重新部署之前已部署的应用程序。(之前的部署可能是使用向导或已过时的独立部署工具执行的。) 如果您选择 Redeploy to an existing environment (重新部署到现有环境),则当向导从当前正在运行的之前的部署中检索信息时可能会出现延迟。

    注意

    如果您选择 Redeploy to an existing environment (重新部署到现有环境),再选择列表中的环境,然后选择 Next (下一步),则向导会将您定向至 Application Options (应用程序选项) 页面。如果您执行此过程,请向前跳至此部分中后面描述如何使用 Application Options (应用程序选项) 页面的说明。

  5. 选择 Next(下一步)

  6. Application Environment (应用程序环境) 页面上的 Application (应用程序) 区域中,Name (名称) 下拉列表将为应用程序建议默认名称。您可通过选择此下拉列表中的其他名称来更改默认名称。

  7. 环境区域的名称下拉列表中,键入您的 Elastic Beanstalk 环境的名称。在这种情况下,“环境” 一词是指适用于您的应用程序的基础设施 Elastic Beanstalk 规定。此下拉列表中可能已建议默认名称。如果未建议默认名称,您可键入一个名称或从下拉列表中选择一个名称(如果提供了任何其他名称)。环境名称的长度不得超过 23 个字符。

  8. URL 区域中,此框会建议将作为您的 Web 应用程序 URL 的默认子域 .elasticbeanstalk.com。您可键入新的子域名来更改默认子域。

  9. 选择 Check availability (检查可用性) 以确保您的 Web 应用程序 URL 未在使用中。

  10. 如果您的 Web 应用程序 URL 可以使用,请选择 Next (下一步)

  1. Amazon选项页面的 Amazon EC2 启动配置中,从容器类型下拉列表中选择将用于您的应用程序的亚马逊系统映像 (AMI) 类型。

  2. 实例类型下拉列表中,指定要使用的 Amazon EC2 实例类型。在本示例中,我们建议您使用 Micro (微型)。这将最大程度降低相关的实例运行成本。有关 Amazon EC2 Amazon Ser vic2 C

  3. key pair 下拉列表中,选择一个 Amazon EC2 实例密钥对,用于登录将用于您的应用程序的实例。

  4. (可选)在 Use custom AMI (使用自定义 AMI) 框中,您可指定将覆盖 Container type (容器类型) 下拉列表中指定的 AMI 的自定义 AMI。有关如何创建自定义 AMI 的更多信息,请转到 Elasti Amazonc Beanstalk 开发人员指南中的使用自定义 AM I 和从 Amazon EC2 实例创建 AMI

  5. (可选)如果您要在 VPC 中启动实例,请选中 Use a VPC (使用 VPC) 框。

  6. (可选)如果您想启动单个 Amazon EC2 实例,然后将应用程序部署到该实例,请选中 “单实例环境” 复选框。

    如果您选中此复选框,Elastic Beanstalk 仍会创建 Auto Scaling 组,但不会对其进行配置。如果您想稍后配置 Auto Scaling 组,则可以使用Amazon Web Services Management Console。

  7. (可选)如果您希望控制将应用程序部署到实例时的条件,请选中 Enable Rolling Deployments (启用滚动部署) 框。只能在未选中 Single instance environment (单个实例环境) 框时选中此框。

  8. 如果您的应用程序使用 Amazon S3 和 DynamoDB 等Amazon服务,则提供证书的最佳方法是使用 IAM 角色。在 “已部署应用程序权限” 区域中,您可以选择现有的 IAM 角色,也可以创建向导将用于启动环境的角色。使用的应用程序在向Amazon服务发出请求时Amazon SDK for .NET将自动使用此 IAM 角色提供的证书。

  9. 如果您的应用程序访问 Amazon RDS 数据库,请在关系数据库访问区域的下拉列表中,选中向导将更新的任何 Amazon RDS 安全组旁边的复选框,以便您的 Amazon EC2 实例可以访问该数据库。

  10. 选择 Next(下一步)

    • 如果您已选择 Use a VPC (使用 VPC),则将显示 VPC Options (VPC 选项) 页面。

    • 如果您已选择 Enable Rolling Deployments (启用滚动部署),但未选择 Use a VPC (使用 VPC),则将显示 Rolling Deployments (滚动部署) 页面。向前跳至此部分中后面描述如何使用 Rolling Deployments (滚动部署) 页面的说明。

    • 如果您未选择 Use a VPC (使用 VPC)Enable Rolling Deployments (启用滚动部署),则将显示 Application Options (应用程序选项) 页面。向前跳至此部分中后面描述如何使用 Application Options (应用程序选项) 页面的说明。

  11. 如果您已选择 Use a VPC (使用 VPC),请在 VPC Options (VPC 选项) 页面上指定信息以在 VPC 中启动应用程序。

    必须已创建 VPC。如果您在 VToolkit for Visual Studio 中创建了 VPC,则 VToolkit for Visual Studio 将为您填充此页面。如果您在Amazon管理控制台中创建了 VPC,请在此页面中键入有关您的 VPC 的信息。

针对 VPC 的部署的主要注意事项

  • 您的 VPC 需要至少一个公有子网和一个私有子网。

  • ELB Subnet (ELB 子网) 下拉列表中,指定公有子网。Toolkit for Visual Studio 将应用程序的弹性负载平衡负载均衡器部署到公有子网。公有子网与具有指向 Internet 网关的入口的路由表关联。您可识别 Internet 网关,因为它具有以 igw- 开头的 ID(例如,igw-83cddaex)。您使用适用于 Visual Studio 的工具包创建的公用子网具有可将其标识为公共子网的标签值。

  • Instances Subnet (实例子网) 下拉列表中,指定私有子网。适用于 Visual Studio 的工具包将您的应用程序的 Amazon EC2 实例部署到私有子网。

  • 您的应用程序的 Amazon EC2 实例通过公有子网中执行网络地址转换 (NAT) 的 Amazon EC2 实例从私有子网与互联网通信。要启用此通信,您需要允许流量从私有子网流至 NAT 实例的 VPC 安全组。在 Security Group (安全组) 下拉列表中,指定此 VPC 安全组。

有关如何将 Elastic Beanstalk 应用程序部署到 VPC 的更多信息,请访问 EAmazon lastic Beanstalk 开发者指南

  1. 在填充 VPC Options (VPC 选项) 页面上的所有信息后,请选择 Next (下一步)

    • 如果您已选择 Enable Rolling Deployments (启用滚动部署),则将显示 Rolling Deployments (滚动部署) 页面。

    • 如果您未选择 Enable Rolling Deployments (启用滚动部署),则将显示 Application Options (应用程序选项) 页面。向前跳至此部分中后面描述如何使用 Application Options (应用程序选项) 页面的说明。

  2. 如果您已选择 Enable Rolling Deployments (启用滚动部署),请在 Rolling Deployments (滚动部署) 页面上指定信息以配置新版本的应用程序部署到负载均衡环境中的实例的方式。例如,如果您的环境中有 4 个实例,并且您需要更改实例类型,则可将环境配置为一次更改 2 个实例。这可帮助确保您的应用程序在执行更改时仍处于运行状态。

  3. Application Versions (应用程序版本) 区域中,选择用于控制一次部署的实例的百分比或数量的选项。指定所需百分比或数量。

  4. (可选)在 Environment Configuration (环境配置) 区域中,如果要指定在部署期间保持运行的实例数量,请选中此框。如果选中此框,请指定一次应修改的实例的最大数目和/或一次应保持运行的实例的最小数目。

  5. 选择 Next(下一步)

  6. Application Options (应用程序选项) 页面上,指定有关版本、Internet Information Services (IIS) 和应用程序设置的信息。

  7. Build and IIS Deployment Settings (生成和 IIS 部署设置) 区域的 Project build configuration (项目生成配置) 下拉列表中,选择目标版本配置。如果向导可以找到它,则 Release (发布) 将显示,否则此框中将显示有效配置。

  8. App pool (应用程序池) 下拉列表中,选择您的应用程序所需的 .NET Framework 版本。应已显示正确的 .NET Framework 版本。

  9. 如果您的应用程序是 32 位的,请选中 Enable 32-bit applications (启用 32 位应用程序) 框。

  10. App path (应用程序路径) 框中,指定 IIS 将用来部署应用程序的路径。默认情况下,指定 Default Web Site/,它通常会转换为路径 c:\inetpub\wwwroot。如果您指定了 Default Web Site/ 之外的路径,向导将在 Default Web Site/ 路径中放置指向您指定的路径的重定向。

  11. “应用程序设置” 区域的 “Healt h 检查 URL” 框中,键入 Elastic Beanstalk 的 URL 以检查以确定您的 Web 应用程序是否仍在响应。此 URL 相对于根服务器 URL。默认情况下,已指定根服务器 URL。例如,如果完整 URL 为 example.com/site-is-up.html,则键入 /site-is-up.html

  12. Key (键)Value (值) 的区域中,可指定要添加到应用程序的 Web.config 文件的任何密钥和值对。

    注意

    尽管不推荐,但您可以使用密钥区域来指定应用程序应在哪些Amazon证书下运行。首选方法是在Amazon选项页面的Id entity and Access Management 角色下拉列表中指定 IAM 角色。但是,如果您必须使用Amazon证书而不是 IAM 角色来运行应用程序,请在密钥行中选择AWSAccessKey。在 Value (值) 行中,键入访问密钥。重复这些步骤AWSSecretKey

  13. 选择 Next(下一步)

  14. Review (查看) 页面上,查看您配置的选项,然后选中 Open environment status window when wizard closes (在向导关闭时打开环境状态窗口) 框。

  15. 如果一切正常,请选择 Deploy (部署)

    注意

    部署应用程序时,活动账户将为应用程序使用的Amazon资源付费。

    有关部署的信息将显示在 Visual Studio 状态栏和 Output (输出) 窗口中。该过程可能需要几分钟。部署完成后,Output (输出) 窗口中将显示确认消息。

  16. 要删除部署,在Amazon Explorer 中,展开 E lastic Beanstalk Beanstalk 节点,为部署的子节点打开上下文(右键单击)菜单(右键单击)菜单,然后选择 Delete Delete Delete (删除) 此删除过程可能需要几分钟。