繁体   English   中英

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

[英]Connect to an Amazon EC2 instance from an ios application

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

这是我在阅读这篇文章后到目前为止所做的事情:

  1. 在我的EC2实例上安装了apache和php。
  2. 获取EC2实例的弹性IP地址。
  3. 添加了一个文件(让我们称之为retrieve-data.php)到apache,它使用我的RDS实例端点,用户名和密码来查询数据库并返回数据。

从我的ios应用程序,我可以发送一个http请求到elastic_ip_address_of_my_ec2_instance / retrieve-data.php ,以便从我的应用程序中的RDS数据库中获取数据。 这是要走的路吗? 这可以以任何方式得到改善吗?

编辑:在下面的评论中将此答案更改为什么;

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

对于可能会发现此功能的任何人,下面是您可以采取的所有步骤的摘要。

建立:

以下步骤包含三个选项:

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月)的.xyz顶级域名(TLD)仅为1.18美元/年。
  4. (A + B + C)将后端文件添加到步骤2中安装在EC2实例上的apache Web服务器。
  5. (B + C)在Amazon Route 53中设置托管区域。注意:Route 53不包含在AWS免费套餐中,因此不是免费的。 费用在这里 (仅限B)将一条记录添加到Route 53托管区域,该区域指向EC2实例的弹性IP。
  6. (B + C)将您的域名的名称服务器转移到路由53在完成步骤5后给您的3-5个名称服务器。转移将从您注册域名的站点完成。
  7. (C)在AWS中为您的EC2实例设置负载平衡。 请注意您的负载均衡器的终点。
  8. (C)将别名记录添加到Route 53托管区域,该区域指向负载均衡器的终点。

在EC2上访问您的文件

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

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

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

希望这有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM