如何将Linux应用程序迁移到Amazon云
基础设施即服务(Infrastructure as a Service,IaaS)是一个极好的概念:您使用计算资源并支付费用。需要的资源越多,支付的费用也就越高。这个模式的不足之处在于,您看不到正在使用的计算机,您对那些计算机真的知之甚少。但一旦克服这一点,使用 IaaS 可以带来很多好处。
由于 IaaS 模式与传统的购买服务器的模式差别很大,因此您管理您的虚拟计算机的方法也随之发生改变。这还意味着,您在云中运行应用程序的方式也发生了改变。以前想当然的东西,比如服务器之间无足轻重的延迟,现在不再理所当然。
本系列文章将跟随一个 Web 应用程序从一个单一物理服务器到 Amazon Elastic Compute Cloud (Amazon EC2) 的迁移过程。途中,您将了解如何调整您的应用程序以适应云环境,以及如何利用云提供的特性。首先,您将看到从一个物理服务器到一个云服务器的直接迁移。
使用 Amazon EC2
Amazon EC2 允许拥有信用卡的任何人按小时支付服务器费用,通过一个应用程序编程接口(API)来打开和关闭服务器。您可以选择各种各样的服务器 — 取决于您的主要考虑因素是内存、磁盘还是 CPU — 以及从永久性磁盘到负载平衡器的一套附件。您只需为使用的资源付费,这使得 Amazon 服务成为您的应用程序的一个颇具吸引力的选择。
与 Amazon EC2 产品一起提供的还有其他一些服务,它们向您提供付款处理、数据库和消息排队等功能。在本文中,您将使用 Amazon Simple Storage Service (Amazon S3),该服务基于即用即付模式提供磁盘空间访问。
应用程序
本系列用作示例的 Web 应用程序是一个称为 SmallPayroll.ca 的工资表服务,使用 Ruby on Rails 框架和一个 PostgreSQL 后端编写。它是一个典型的 Web 应用程序:拥有一个数据库层、一个应用程序层、以及一组静态文件,比如层叠样式表(CSS)和 JavaScript 文件。用户导航各种表单以输入和操作数据,这些表单将用于生成报告。