作者:Thomas Deml
介绍
通过 Visual Studio 2010,Web 开发人员能够使用其现有技能集为 Microsoft Web 平台编写出色的应用程序。 但是,我们经常听到 Web 开发人员和管理员,特别是那些提供网站设计和咨询服务的人说,他们需要快速建立一个实时网站,网站运行速度要快,并且他们需要能够完全控制服务器,以获得最大的灵活性和可伸缩性。 今天的帖子提供了有关如何在 Amazon EC2 上运行最新 Microsoft Web 服务器开发堆栈的快速演练。 完整 Web 服务器开发堆栈映像是一个配置完备的 IIS 7.0 或更高版本的 Web 服务器,可用于将 Web 应用程序直接从 Visual Studio 2010 部署到此 EC2 实例。
下面是必须遵循的步骤的快速摘要:
- 注册 Amazon EC2
- 通过 Amazon Web Services 管理控制台启动“Microsoft Web 平台 - 完整 Web 服务器开发堆栈”实例。
- 检索管理员密码
- 从 Visual Studio 2010 创建 ASP.NET 4.0 应用程序并将其部署到 EC2 实例。
- 浏览到实时 Web 应用程序
1.Amazon EC2 注册
注册 Amazon EC2 的过程非常简单。 你只需要
- 一个有效的电子邮件地址,
- 可以联系到你的有效电话号码(确保电话就在附近,注册时我们会打电话给你!),
- 以及有效的信用卡号
注册 URL 为 http://aws.amazon.com/ec2。 如果你已经是 Amazon 客户,那就更容易了,因为你可以使用现有的信用卡信息和电子邮件地址。
注意:计费数据验证通常在几分钟内完成。 也可能需要几个小时。 目前(2010 年 4 月)你收到的错误消息意义不大:
“你似乎没有 EC2 帐户*。 若要使用 Amazon EC2 控制台,必须首先注册 Amazon EC2。 注册过程快捷、免费。”
请耐心等待一段时间。
2.启动“Microsoft Web 平台 - 完整 Web 服务器开发堆栈”实例
成功注册后,你将有权访问 Amazon EC2 管理控制台。 该 URL 为 https://console.aws.amazon.com/ec2/home。
登录后,请确保将区域切换到“美国西部”。 Microsoft Web 平台映像目前仅在美国西部区域可用。 在我们执行任何操作之前,请为 Web 开发堆栈实例设置防火墙规则(在 Amazon 行话中称为“安全组”)。
防火墙规则
选择左侧的“安全组”项。 现有安全组将显示在中心窗格中。 单击顶部的“创建安全组”按钮。
为要创建的新组命名,例如“Microsoft Web 平台防火墙规则”。
若要配置以下规则:
- 需要 RDP,以便你可以通过远程桌面连接到 Amazon EC2 实例。 当前的“源(IP 或组)”设置允许来自任何 IP 地址的这些连接。 如果有更严格的安全要求,请锁定此设置。
- 需要 HTTP,以便客户可以通过 HTTP 连接你的 Amazon EC2 实例。
- 如果计划使用 SSL,则需要 HTTPS。 如果不打算使用 SSL,则不需要此设置。
- 打开端口 8172,以允许远程管理 IIS 并通过 Visual Studio 2010 发布内容。 如果计划在 Visual Studio 2010 中使用新的 Web 发布功能,则需要打开此端口。
现在,我们已准备好启动 EC2 Web 服务器开发堆栈实例。
启动 Web 服务器开发堆栈映像
现在,在显示的对话框中选择“社区映像”。
通过在“社区 AMI”对话框中输入“microsoft/”,可将选择范围减少为四个 Microsoft 映像:
在“Microsoft Web 平台 - 完整 Web 服务器开发堆栈...”行中单击“选择”。
在下一个对话框页(实例详细信息)中,可以选择Web 服务器开发堆栈实例所需的计算能力。 为了谨慎起见,最好从预选的最小选项开始。 单击“继续”按钮。 下一页也没什么可担心的。 只需单击“高级实例选项”对话框底部的“继续”即可。 现在,我们将进入“创建密钥对”对话框。
如果已有密钥,只需使用它即可。 如果没有,必须输入密钥对的名称并单击“创建和下载密钥对”按钮来创建密钥对。 单击该按钮后,Amazon 就会创建密钥对,浏览器会请求下载该密钥对。 将文件保存在稍后可找到的位置。 创建的密钥对可用于解密 Amazon 为媒体服务器实例创建的管理员密码。 单击“继续”按钮。
注意:Internet Explorer 可能不会显示询问密钥对文件保存位置的下载对话框。 如果遇到这种情况,请在 Internet Explorer 临时文件文件夹中查找该文件(<密钥对名称>.pem)。 在 Windows 7 上,在 %userprofile%\ AppData\Local\Microsoft\Windows\Temporary Internet Files
中搜索 *.pem。 请确保将 .pem 文件复制到更永久的目录。
创建密钥对后,可以配置防火墙规则。 例如,可以只允许对计算机的 HTTP 请求。 亚马逊将防火墙规则称为“安全组”,这有点令人费解。 对于此演示,我们将选择“默认”安全组,该安全组不会对实例施加任何防火墙限制。 稍后,你可能需要将这些设置配置得更严格一些。
单击“继续”转到“启动”页。 在摘要页面上,唯一要做的就是按下大大的“启动”按钮。 完成此操作后,Amazon EC2 将启动完整 Web 服务器开发堆栈映像的个人虚拟实例。 很好! 是时候喝点咖啡了。 启动实例需要一些时间,通常大约 3 到 5 分钟。
3.检索管理员密码
完成“启动实例”向导后,应返回到 AWS 管理控制台的主页。 单击“实例”链接,了解媒体服务器实例的运行情况。
你应看到与下面类似的内容:
右键单击该行,然后选择“获取 Windows 密码”菜单项。
现在,可以使用之前创建的密钥对文件(<密钥对名称>.PEM)。 如果密码已经可用(如前所述,可能需要等待几分钟),你将看到以下对话框:
在记事本中打开 .PEM 文件,将其复制到剪贴板(Ctrl+A 全选,Ctrl+C 将其复制到剪贴板)。 现在,将内容粘贴到对话框的文本框中 (Ctrl+V)。 单击“解密”按钮。
注意:由于解密是一项非常占用 CPU 的操作,因此如果使用 Internet Explorer,则可能会遇到以下安全对话框: 与直觉相反,必须按“否”才能继续操作。 可能需要多次点击“否”才能解密密码。 有关此安全功能的更多详细信息,请访问:https://support.microsoft.com/kb/175500
如果对更永久的修复感兴趣,可以在命令行上执行以下命令:
reg add "HKCU\Software\Microsoft\Internet Explorer\Styles" /v MaxScriptStatements /t REG_DWORD /d 0x5F5E100
通过将 MaxScriptStatements 设置为 100,000,000 (0x5F5E100),可以不再看到任何安全弹出窗口。
解密密码后,将其写下来或复制到剪贴板并关闭对话框。 最后,我们的 Web 服务器开发堆栈实例已准备就绪。
4.创建和部署 ASP.NET 4.0 应用程序
现在切换到 Visual Studio 2010。 如果还没有副本,可以从 https://www.microsoft.com/visualstudio 下载 Express Edition。
Visual Studio 2010 为基于 Microsoft Web 部署工具的 Web 应用程序提供了全新的一键式部署模型。 我们将利用 Web 部署工具将我们即将创建的 Web 应用程序部署到实时 EC2 服务器上。 开始吧!
在 Visual Studio 2010 中创建一个 Web 应用程序项目
启动 Visual Studio 2010 后,选择“文件”-“新建”-“项目”,然后选择“ASP.NET 应用程序”(确保选择“Web”项目模板)。 使用“HelloEC2”作为项目名称。
创建项目后打开 site.master 文件,并将 h1 标记中的文本更改为“EC2 上的 ASP.NET 应用程序”<>
配置发布
我们需要做的就是配置发布。 为此,我们需要
- 已在上一步中检索的 EC2 实例的管理员密码
- EC2 实例的 DNS 名称或 IP 地址。
若要获取这两段数据,需要回退到 AWS 管理控制台。 AWS 控制台将公共 DNS 名称或 IP 地址显示为实例的属性之一。 可以将地址复制到剪贴板或将其写下来。 如果需要更永久的 DNS 地址,则必须注册 DNS 名称,并从 Amazon 获取弹性 IP 地址。 但这是后话。
有了这两条信息,我们就可以发布我们刚刚创建的 ASP.NET Web 应用程序项目了。 若要发布,必须返回 Visual Studio,右键单击项目并选择“发布”菜单项。
在接下来的对话框中,必须输入多条数据。 但是,让我们一步一步来:
- 单击“重命名”按钮,将“Profile1”重命名为“我的 EC2 发布配置文件”
- 在“服务 URL:”文本框中复制 EC2 实例的 DNS 名称。 它无需显式指定“https://”即可运行,如下所示。
- 在“站点/应用程序”文本框中指定“默认网站”(不带引号)。 如果不希望将“Hello EC2”Web 应用程序发布到“默认网站”的根目录,可以指定其他应用程序名称,例如“默认网站/helloEC2”。
- EC2 实例使用自签名 SSL 证书,以确保客户端与 EC2 实例之间的流量已加密。 自签名证书尚不受信任,必须选中“允许不受信任的证书”复选框。
- 指定 EC2 实例的管理凭据。 用户名为“管理员”,你在上一步中检索了 EC2 实例的密码。
剩下的就是点击“发布”按钮,状态栏将指示发布过程成功。 应用程序已成功发布到 EC2 实例!
浏览 Web 应用程序
让我们看看吧! 如果剪贴板中仍有 DNS 名称,只需将其粘贴到 Internet Explorer 的地址栏即可。
瞧!
通过远程桌面连接到 EC2 实例
如果需要在服务器本身上配置某些内容,可以轻松使用远程桌面连接到它。 甚至还安装了 Visual Web Developer 2010,以便在遇到无法在本地重现的问题时可以在远程计算机上进行调试。
下面介绍如何通过 RDP 连接到 EC2 实例:
右键单击实例,然后选择“连接”。
在随后出现的对话框中单击“下载快捷方式文件”:
要下载的文件是一个 .RDP 文件,其中包含连接到云中 EC2 实例所需的所有正确设置。 如果使用 IE,请单击“打开”,如果使用 Firefox,则在“下载”窗口中双击该文件,即可建立远程桌面会话。 当远程桌面要求输入凭据时,只需输入用户名“Administrator”和之前检索到的密码即可。
连接后,你将登录到远程计算机。
总结
现在,在互联网上获得一个专用 Web 服务器并开始使用,竟然如此容易。 我们刚刚将一个可正常运行且配置完备的 ASP.Net 4.0 应用程序部署到云中。 太神奇了,对吗?
请告诉我们你对此的看法:有问题或反馈? 请发送至 ec2@microsoft.com。