我有 2 个运行 WAMP 堆栈的 Amazon EC2 实例。它们都位于同一个 Amazon 帐户中,但位于不同的区域。通常,如果我在 GoDaddy 上进行了此设置,我会使用 SOAP 服务从一个实例访问另一个实例的数据。我的问题是如何从另一个实例访问 Mysql db?
答案1
问题中再详细一点会更好。但是,如果您只尝试单向访问数据(即每个数据库只有一个数据库服务器),则可以直接访问 MySQL:
- 在 MySQL 实例上设置弹性 IP 地址
- 在安全组中打开端口 3306
- 配置(my.cnf)MySQL 绑定到所有接口(而不仅仅是 127.0.0.1)
- 设置 MySQL 权限以允许远程地址的用户访问
- 使用 MySQL 实例的 DNS 地址访问数据库
由于您位于两个不同的区域,您将在实例上使用公共地址,并且实例之间传输的任何数据都会产生全部数据费用。使用弹性 IP 将使您不必设置另一个系统来跟踪实例 IP 地址的变化。(这可以通过设置您自己的 DNS 服务器来完成,但这需要做更多的工作,而且没有明显的收益。)
您可以设置安全组以仅允许来自同一安全组中的其他实例的访问,以防止外部访问 MySQL。
使用 DNS(而不是 IP)的原因是,如果您确实将实例移动到同一区域,DNS 将映射到内部 IP,从而降低数据传输成本。
如果您尝试设置两台服务器,均提供相同的数据库,那么您将需要在实例之间设置复制,并实现上述操作。