自 1920 以来,妇女选民联盟 (LWV) 这一无党派政治组织一直致力于通过教育和倡议来完善美国政府体制和影响公共政策。LWV 在全国各地拥有约 30 名全职员工和超过 750 家由志愿者领导的附属机构。LWV 教育基金 (LWVEF) 运营了网站 VOTE411.org,可以向公众提供无党派选举信息。该网站涵盖多个主题,包括投票地点、选举日期和注册截止日期、有关候选人和投票议案的信息、缺席者的投票过程和选举过程的其他方面。

作为一个专门用于选举的网站,在联邦选举年份,VOTE411.org 的访问量会在几天内激增。而在其余时间,VOTE411.org 的流量相对较少。

早期,该网站需要大量的基础设施投资和较高的成本才可以确保网站能够应对流量激增的情况。在计划 2012 年联邦选举时,LWVEF 希望迁移至一个经济高效、可靠、可扩展且灵活的托管解决方案,以应对流量波动。该托管解决方案需要能够在选举日为 50 万位唯一身份访客提供服务,并在投票结束后进行缩减。“选择迁移至云非常明智。”LWVEF 高级总监 Jeanette Senecal 说道,“如果在其他托管平台上构建这项服务,成本是采用云的三倍或四倍。”

从成本、支持选项、易于扩展性和可靠性方面对各个提案进行评估后,LWVEF 决定采用 Amazon Web Services (AWS)。“AWS 就是我们所需要的,即一个可无缝扩展的托管解决方案。”

LWVEF 使用 Amazon Relational Database Service (Amazon RDS) 构建了两个数据库。LWVEF 团队使用 Amazon Simple Storage Service (Amazon S3) 来存储 1200 份由当地联盟编写并通过 VOTE411.org 分享的选民指南和其他文献。使用 Amazon S3 来存储文件使该团队可以通过 Drupal 界面上传数据,同时确保文件对于 Amazon Elastic Compute Cloud (Amazon EC2) 实例仍然可用。New Mill Media 在适用于 PHP 的 AWS Elastic Beanstalk 上部署了 Web 应用程序,并使用 Amazon EC2 根据需求进行扩展。

Leage of Women Voters Architecture Diagram

图 1.AWS 上的 LWVEF 网站架构

New Mill Media 使用 Drupal 构建了 Web 应用程序,并将其部署在运行 Apache 和 PHP 的 Linux 服务器上。其数据库为在 Amazon RDS 上实施的 MySQL。LWVEF 使用 Amazon CloudWatch 来监控使用量。在使用量达到高峰时,LWVEF 团队使用 Apache JMeter 来跟踪可用性和加载时间。

2012 年 8 月,VOTE411.org 在 AWS 上重新启动。在 9 月和 10 月,该网站每天有 50000 个唯一身份访客。在选举前一天,访客数量增加到 300000 人。在选举当天,访客数量增加到 500000 人。数据最密集的页面会在 400ms 内加载完毕。其他页面会在 100ms 内加载完毕。在使用量达到高峰时,AWS 可将服务器实例的数量从 8 月份的 3 个扩展到选举当天的 60 个,从而确保网站的持续可用性。

“我们借助 AWS 创建了在传统环境中不可能实现的解决方案。”Senecal 说道,“我们可以根据需求创建实例来进行数据清理和导入。如果使用其他托管解决方案,我们不可能这么快速地创建解决方案。”

借助 AWS,LWVEF 可以快速启动并运行网站,从而无需在开始开发前调试一定数量的服务器。“由于我们可以根据需求进行扩展或缩减,因此我们的开发人员不必提前预测他们需要的服务器数量。”Senecal 说道,“如果使用其他环境,我们的开发时间会增加几个星期。”

AWS 对 LWVEF 的性能优化至关重要。“我们使用 Amazon EC2 实例来执行负载测试。”Senecal 说道,“这使我们可以很容易地测试网站、调整设置并再次进行测试。如果在网站启动后对网站做出更改,那么需要再次进行负载测试。在 AWS Elastic Beanstalk 中,我们可以轻松地创建与实时环境匹配的新环境。”

该团队正在探索如何使用 AWS 来托管其他 LWV 网站。

要了解有关使用 AWS 云进行 Web 托管的更多信息,请访问 http://aws.amazon.com/web-mobile-social/