从ios应用程序连接到Amazon EC2实例

时间:2015-08-12 22:00:42

标签: ios amazon-web-services amazon-ec2

我正在尝试创建一个使用Amazon Web Services作为后端的ios应用程序。我在RDS中有一个MySQL数据库,并希望从应用程序中查询此数据库以检索应用程序的内容。经过一些研究,看起来我应该通过添加自己的API来查询数据库到EC2实例来解决这个问题。然后,我不是直接从应用程序访问RDS实例,而是访问EC2实例上的API,该实例为我访问RDS实例。首先,这是要走的路吗?我也对其他建议持开放态度。

这是我在阅读this帖子之后到目前为止所做的工作:

  1. 在我的EC2实例上安装了apache和php。
  2. 获取EC2实例的弹性IP地址。
  3. 添加了一个文件(让我们称之为retrieve-data.php)到apache,它使用我的RDS实例端点,用户名和密码来查询数据库并返回数据。
  4. 从我的ios应用程序中,我可以向 elastic_ip_address_of_my_ec2_instance / retrieve-data.php 发送http请求,以便从我的应用程序中的RDS数据库中获取数据。这是要走的路吗?这可以以任何方式得到改善吗?

2 个答案:

答案 0 :(得分:3)

编辑:在下面的评论中将此答案更改为最新内容;

解决方案是How to connect amazon RDS in iOS中建议的解决方案,即在EC2实例上安装网络服务器并编写网络应用程序以便为您拨打RDS电话。这将涉及某种类型的Web编程,在顶部注释中有一个简单的解释。然后,您可以使用RestKit实现从应用程序到EC2实例的调用:github.com/RestKit/RestKit

答案 1 :(得分:3)

对于可能会觉得有用的人,下面是您可以采取的所有步骤的摘要。

设置向上:

以下步骤涵盖三个选项:

A =无域名,无负载均衡

B = YES域名,无负载均衡

C = YES域名,YES负载平衡

  1. (A + B + C)创建EC2实例。
  2. (A + B + C)在您的实例上安装所有必需品。至少,您需要apache2以及您希望用于要在您的实例上运行的任何后端脚本的任何语言。我使用过PHP。
  3. (A + B)如果您不想获取用于访问EC2实例的域名,或者您想要域名但不需要负载均衡,那么您可以“我想为您的实例获取弹性IP地址。这可以通过AWS轻松完成。 (C)如果要使用域名和负载平衡,则不需要弹性IP地址。来吧,让自己一个域名。我用了namecheap.com。他们目前(2015年8月)只有1.18美元/年的.xyz TLD。
  4. (A + B + C)将您的后端文件添加到步骤2中安装在EC2实例上的Apache Web服务器上。
  5. (B + C)在Amazon Route 53中设置托管区域。注意:Route 53不包含在AWS免费套餐中,因此不是免费的。费用为here。 (仅限B)将一条记录添加到Route 53托管区域,该区域指向EC2实例的弹性IP。
  6. (B + C)将您的域名的名称服务器转移到路由53在完成步骤5后给您的3-5个名称服务器。转移将从您注册域名的站点进行。
  7. (C)在AWS中为您的EC2实例设置负载平衡。请注意您的负载均衡器的终点。
  8. (C)将别名记录添加到Route 53托管区域,指向负载均衡器的终点。
  9. 在EC2上访问您的文件

    假设您有一个php脚本myscript.php,您在步骤4中保存到服务器。要在完成设置后在EC2服务器上运行此脚本,您可以执行以下操作:

    A - 打开Web浏览器并在地址栏中输入以下内容:elastic_IP_of_your_EC2_instance / myscript.php

    B + C - 打开网络浏览器并在地址栏中输入以下内容:yourdomain.com/myscript.php

    希望这有用!