三个独立的虚拟机用于Web服务器,数据库和数据处理。 好主意?

我正在写一些量化的市场研究软件,在工作中有一些“盲目的盲目”的情况。

我并不习惯编写Web应用程序或configuration服务器; 我写的大部分代码只能在我的机器上执行。 老板说,时间已经到来,我的研究项目中一个企业范围的试点项目就成了一个漂亮的Web界面,我要指定这个架构。 该公司的服务员只是真正习惯于香草LAMP栈,渴望帮助,但依靠我的方向。 (?!)

以下是我想要做的事情:

  • 把一些产品和客户的电子邮件放在专用数据库中。
  • 从数据库中select客户电子邮件的一些子集和一些产品。
  • select一些产品并创build相关的调查网页。
  • 发送电子邮件给客户,要求他们做一个调查。
  • logging他们的调查答案。
  • 分析答案。
  • 在networking界面上呈现答案。

分析和界面是非常特定的行业,没有这样的市场研究软件的第三方供应商,因此DIY。

以下是我提出的build议:

  • 用于在公司Intranet上托pipe的产品和电子邮件插入的Web界面。 数据库只接受内部连接。 可能是服务器上的python脚本实际上做数据插入,因为很多错误检查和其他产品相关的处理必须首先发生,我不想在php中这样做。
  • 访问数据库中的电子邮件地址并创build请求参与调查的电子邮 再一次,在Python中写这个。 与Amazon SES接口,用于批量发送邮件。 我是唯一一个有执行权限的脚本。 在我的电脑上做这个。
  • 创build调查(在我的电脑上)。 将调查内容手动转储到租用的Azure堆栈,我将通过sFTP调用VM1。 我应该使用nginx这个堆栈吗? 服务器人只有configurationApache的经验。 在电子邮件发送的日子里,虚拟机必须每小时处理10k个连接(当然,我会开始缓慢地监视它)。
  • 服务调查html页面,使用php根据他们通过的散列调查idvariables向正确的人提供正确的内容。 写调查响应数据库存储在另一个Azure虚拟机(称为“VM2”)使用PHP。 通过两个虚拟机之间的VPN隧道进行访问。
  • 几天之后,通过运行R的另一个VM(从VM2到VM3的VPN隧道)读取调查响应。 在R中加载数据后,closuresVPN通道隔离VM3。 仍然在VM3上,使用R进行处理,并通过nginx,php和一个javascript图表模块插件通过SSL连接向公司其他感兴趣的人员提供服务。

我在这份名单上提出了什么愚蠢的做法吗? 将数据库隔离在一个单独的虚拟机,增加任何安全性,或者我只是愚弄自己?