tl; dr: 为什么从EC2获取请求时,从RDS获取10000次SELECT语句的结果时间如此不均匀? 用小型和中型RDS服务器的结果更新了问题 在尝试使用AWS来检查获取SQL查询结果所花费的时间时,我得到了以下非常不均匀的结果: 我写了一个PHP代码来向我报告从服务器获取n次SELECT查询所需的时间。 while($flag<n) { $t=microtime(true); $result=$con->query($q); $t=microtime(true)-$t; $total+=$t; $flag++; } Enviornment: 所有交易都是在AWS的专用vpc内完成的 所有的服务器都在不同的区域 每台服务器上MySQL的configuration是:EC2上的MySQL:版本= 5.6,RDS:5.5,query_cache_size = 16777206,query_cache_state = ON。 数据库一个大的数据库〜5GB,查询表有〜20000行。 服务器: EC2 A,可用区域:us-east-1e,types:t2.micro。 EC2 B,可用区域:us-east-1b,types:t2.micro。 RDS可用区域:us-east-1c,types:db.t2.micro,db.t2.small(已更新),db.t2.medium(已更新) 结果: 执行SELECT查询的10,000个循环所需的时间: 请求服务器B,数据库服务器B 5次试验的结果是:20,21,20,20,21(均为秒) 请求服务器A,数据库服务器B 5次试验的结果是:33,33,33,33,3(全部秒) 请求服务器A,数据库服务器RDS(微) 11项试验的结果分别为: 272,709,49,48,711,593,47,316,153,47,636 (均为秒) 请求服务器A,数据库服务器RDS(小型) 5次试验的结果是: 53,54,53,158,698 (全部秒) 请求服务器A,数据库服务器RDS(中) 5次试验的结果是: 96,123,579,252 (全部秒) 为什么RDS在SELECT语句的10,000个循环testing中花费的时间如此不均匀? 为什么它比EC2服务器高呢? [我不认为它是由networking引起的,因为当我用较小的循环(1000个循环)进行实验时,EC2-> RDS的读数是4,5,5, 当我logging每个提取请求的时间时,我注意到以下内容: 对于RDS上的10,000个循环需要153秒的情况: 平均时间每个查询采取:0.015419 […]
所以我试图使用AWS EFS和EC2在多个实例之间进行持久存储。 我使用sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://IPADDRESSHERE/latest/meta-data/placement/availability-zone).FILESYSTEMIDHERE.ZONEHERE.amazonaws.com:/ /mydir驱动器, sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://IPADDRESSHERE/latest/meta-data/placement/availability-zone).FILESYSTEMIDHERE.ZONEHERE.amazonaws.com:/ /mydir 。 出于安全原因,我用占位符replace了一些关键信息。 运行后没有任何反应,它只是回到terminal没有成功的消息,没有错误消息,所以我假设它的工作。 我在/mydir和ls /mydir里创build一个文件夹或文件,一切都显示正常。 然后我使用sudo umount /mydir卸载驱动器。 运行后,再次没有错误,但没有成功的消息,所以我假设它的工作。 所有的文件保持在文件夹中,运行后没有任何变化。 然后,我创build一个新的目录,并将驱动器挂载到该新目录,并且没有任何创build的文件或文件夹出现在该新文件夹中。 因此,如果挂载到新文件夹,它甚至不会同步文件,甚至不会保存到EFS驱动器。 任何想法如何得到这个工作? 非常感谢。
我真的不明白为什么我需要IAM用户。 文档说有两种访问EC2的方法。 一个是为您的AWS账户创build访问密钥。 另一个是使用IAM。 亚马逊推荐IAM。 于是我login了主帐号,在IAM页面上,我创build了一个IAM用户,然后创build了一个IAM组,然后使用AdministratorAccess策略将用户添加到IAM组中。 我还在“安全证书”选项卡下分配了自定义密码。 当我然后select用户,它导航到一个摘要页面。 在摘要页面上,有一个“用户ARN:”定义,其中包括帐户ID和用户名: arn:aws:iam::account_id:user/username 有了这些信息,我可以使用为用户创build的IAM用户名和密码登出主AWS账户并以IAM用户身份login。 https://account_id.signin.aws.amazon.com/console/ 现在文档说Linux实例没有密码。 启动实例时必须指定密钥对的名称,并在使用SSHlogin时提供私钥。 所以作为IAM用户,我在“networking和安全”下创build了一个密钥对。 我将私钥文件保存在一个安全的地方。 最后,当我启动一个实例时,它会提示我input密钥对,所以我select了我创build的密钥对。 一旦实例正在运行,我尝试从ssh连接: $ ssh -i ~/.aws/username-key-pair-useast.pem [email protected] 它不起作用。 我必须指定用户名为ubuntu: $ ssh -i ~/.aws/username-key-pair-useast.pem [email protected] 然后它工作。 但为什么不允许我用IAM用户连接到服务器? 我认为IAM用户的全部目的是为了我的实例的额外安全。 但是,如果我使用Ubuntu超级用户login,并且IAM用户没有添加到实例的操作系统,那么IAM提供了哪些额外的安全性? 此外,我使用IAM用户完成的所有工作都可以通过主AWS账户完成。 例如,我可以login主AWS账户并创build密钥对并启动实例。 所以看来IAM只是多余的。 我真的不明白为什么我需要IAM用户。
我有一个在Amazon EC2上运行的Ubuntu 9.10镜像,我已经build立了一个备份脚本ec2-consisten-snapshot。 我能够从SSH运行脚本,一切都很好用。 sudo ec2-consistent-snapshot –mysql –xfs-filesystem /vol vol-xxxxxxx >>/mnt/backup.log 2>&1 但是,当我在sudo crontab -e中安排一个cron作业时,脚本会运行但是会给我带来错误。 12 18 4 2 * ec2-consistent-snapshot –mysql –xfs-filesystem /vol vol-xxxxxxx >>/mnt/backup.log 2>&1 ec2-consistent-snapshot:错误:无法在/ usr / bin / ec2-consistent-snapshot第76行findAWS访问密钥或秘密访问密钥。xfs_freeze:无法解冻安装在/ vol上的文件系统:无效参数ec2-consistent-snapshot :错误:xfs_freeze -u / vol:失败(256) AWS访问密钥位于$ HOME / .awssecret下,如果您不从cron运行它,它将正常工作 有人可以指出我需要做什么,我一直在试图弄清楚这个过去一周。 另外如何解决从命令行工作正常的xfs_freeze。 非常感谢你!
我们有一个低负载但高可用性要求的Web应用程序。 它由一个单一的前端负载均衡器和一对后端服务器组成。 负载均衡器主要用于屏蔽故障,而不是传播负载。 后端服务器通过跨两个可用区域的复制而变得高度可用。 但是,如何使前端提示本身高度可用? 这是目前单一的失败点。 我们可能会使用AWS Elastic Load Balancing,但有点昂贵,我们再也没有真正需要负载均衡的部分,所以:您将如何以另一种方式解决这个问题? 接近的一个想法是用ping或心跳监视前端; 超时时,将前端的Elastic IP切换到另一台configuration为前端的机器。 我主要关心的是,弹性IP分配显然需要10分钟才能传播。 任何比这种方法更快的响应时间? 认为零停机是可能的? 以另一种方式旋转这个问题:您将如何在常规的自托pipe数据中心中完成此任务,而您没有AWS Elastic Load Balancing?
我已经在rails网站上部署了一个ruby到一个ec2微型实例。 有人可以提供一些关于这个实例可以“处理”多less的input(例如,每秒用户和/或事务的数量等) 谢谢!
亲爱的EC2 / Ubuntu / SSH的领主。 请帮助我了解如何解决我的SSH问题: 我可以SSH到我的EC2实例运行Ubuntu 10.10“Maverick Meerkat”没有问题: $ ssh -i MyEC2Key.pem [email protected] 当我用我创build的新用户尝试同样的事情时,出现了我的问题: $ ssh -i MyEC2Key.pem [email protected] 不幸的是,当试图这个我得到以下错误信息: 权限被拒绝(publickey)。 我不明白我失去了什么,对于这些东西大部分都是比较新的。 我只想让这个新用户拥有pipe理权限和完整的SSH访问权限。 这些都是我所经历的步骤,都以用户ubuntu的身份远程login,并使用vim进行编辑。 如果有人能让我知道我错过了什么,或者误解了这里,我将不胜感激。 谢谢阅读。 我创build了一个名为robert的新用户 我已经将该用户添加到组pipe理员 我已经添加到/ etc / sudoers下面 根ALL =(ALL)ALL(该行已经存在) 罗伯特所有=(所有)所有(该行是我所加) 我已将以下行添加到/ etc / ssh / sshd_config AllowUsers罗伯特Ubuntu的根 我已经重新启动了ssh守护进程 我已经login为Ubuntu,并尝试在新的terminal作为罗伯特ssh回来 仍然卡住。 只是为了理智检查,是的,我可以login为罗伯特通过SSHing作为Ubuntu和使用sudo苏罗伯特,但是这不是我所需要的 – 我需要能够作为罗伯特直接SSH。 这里是debugging的东西从尝试SSH作为罗伯特与debugging标志: $ ssh -i -v MyEC2Key.pem […]
我打算主办一个网站,在第一阶段我将瞄准30,000个用户。 它在php中,并在Apache服务器上运行。 假设8000个用户在最坏的情况下可以上网,其中1000个用户将上传照片。 客户端照片大小将调整到1MB左右,一个HTTP请求只能上传一张照片。 我的计划: 2个运行Apache httpd的小型EC2实例 2个小EC2实例到DB(Postgresql)。 我写数据和其他只读副本。 数据库的EBS卷 最后,亚马逊S3上传照片。 我的问题在这里 是小的EC2实例比我所需要的更多。 我的意思是我应该去微观 是8000同时用户一个正确的没有。 (决定select什么样的EC2实例) 或者,我应该去小实例,使其能够尖峰
我是AWS的新手,只是安装了一个Ubuntu的EC2,我已经build立了一个安全组,允许我ssh进入,现在已经完成了。 我该怎么做才能做到这一点,我也可以ping我的实例?
我新build了一个Amazon EC2实例。 它带有Ruby 1.8.7,我使用YUM卸载了RVM和Ruby 1.9.3。 但是,每次通过SSH连接到实例时,都会出现以下错误: find: '/opt/aws/amitools': No such file or directory 有什么办法可以恢复amitools(最好不要删除RVM和Ruby 1.9.3)?