Articles of 亚马逊 EC2

设置托pipe和扩展SaaS应用程序的最佳方式

我是一名具有丰富经验的软件开发人员,他们为小型应用程序设置托pipe环境,每天的点击量不超过5k次。 我刚刚构build了一个SaaS应用程序,我想知道如何设置和规划我的服务器configuration,以便随业务扩展和增长。 我想从一开始就这样做,所以我需要正确的方式来build立和托pipe一个SaaS Web应用程序的build议。 信息: SaaS网站应用程序将成为业务的主要网站,因此需要处理这种stream量。 单个和单独的数据库为每个网站。 (有特定的原因,它不是所有网站的单一数据库) 我的想法: 可以在最大的AWS服务器上安装,并在单个实例上托pipe数百个站点? 如果是这样,我应该使用最大的内存服务器或CPU? 我caching了大量的数据,所以我倾向于记忆。 可以设置亚马逊更小的服务器和负载平衡整个堆栈? 我应该在实际的networking服务器本身上设置数据库,还是应该在RDS上执行? 我应该甚至使用亚马逊? 感谢您的时间和帮助。

EC2实例 – 多个启动模式(维护/生产)

我的理解是,为了使用EC2实例实例,必须将实例的AMIconfiguration为在启动时立即开始执行任何操作,并继续执行直到完成或实例终止。 这本身并不是一个问题,但是我将需要定期用新的软件和/或configuration脚本来更新AMI,所以偶尔我需要调出一个定期的实例,我可以ssh和修改,而不会发挥启动脚本立即开始尝试做东西(例如,当我更新一堆计算工作者的AMI,相关的控制服务器可能会closures)。 有没有办法为同一个AMIconfiguration两个(或更多)启动模式? 有点像老式的SysV运行级别…这对于这个应用程序来说工作得很好,事实上,除了我没有看到从EC2 web或CLI接口上控制内核命令行的方法。 (AMI内部的操作系统是Linux,如果有的话)。

AWS EC2 PHP session_start权限被拒绝

我有一个与PHP有关的会话保存path的奇怪问题。 我在我的php.ini中configuration了session.save_path =“/ tmp”,并且我知道这是正确configuration的,因为在服务器中我可以input以下命令并且命令结果似乎很好。 $ php -i | grep session.save_path session.save_path => /tmp => /tmp 但是,当我试图从PHP代码开始一个会话,我收到以下错误: Warning: session_start(): open(/var/lib/php/session/sess_7ktfe84jqca3ga6ftk6fsrurv6, O_RDWR) failed: Permission denied (13) 所以这里的path与php.ini中configuration的/ tmp完全不同。 这种行为有什么理由吗? 我已经检查了在我的代码中没有任何调用session_save_path来更改默认的保存path。 出现此问题的服务器是AWS EC2实例。

无法使用自定义密钥对login到Amazon AWS自定义AMI

我成功地创build了一个AMI,并能够成功从我的AWS账户的这个映像启动实例。 但是,只要我尝试从其他AWS账户中指定密钥对,而不是AMI authorized_keys中的内容,从这个AMI启动一个实例,它就不会让我使用新的密钥对(出于显而易见的原因)login实例。 我假设我需要实现某种机制,将Amazon AWS的实例创build向导中指定的自定义密钥对下载到新创build的实例的authorized_keys中。 寻找关于如何实现这一点的提示! 谢谢。

networking大于networking出?

Stat Image: http : //carzz.co/network.png 在EC2上运行一个小图片网站,没有太多的stream量可言(每天800个用户会话)。 在查看新创build的实例的EC2监控时,我发现Network In比Network Out高出很多。 我应该注意到数据库服务器是外部的。 所以我假设networkinginput数据由访问者浏览器信息/请求和数据库数据(微小logging集)组成。 传出数据显然是数据库查询,HTTP内容,站点文件和图像内容。 那么,传入的数据怎么会比传出的数据大呢? 我唯一的想法是一个DDOS的情况。 也许我非常不幸,并且分配了一个有针对性的弹性IP。

最好的办法删除旧日志没有阻止CPU

我有3个AWS EC2机器,使用每个500G的EBS存储。 在他们身上,我有SolrCloudsearch引擎在Jetty上运行,并提供大量的查询。 docker日志已经形成了巨大的,高达200G的大小。 我想删除,但不放弃我的solr系统的可用性。 如果我做rm -rf logfile那么CPU等待高达99%,并且该机器上的节点不再响应,直到负载减less。 有没有办法删除这些日志文件没有这个巨大的负载增加? 谢谢 后来编辑:所以,我已经find了清空大文件的在线方式,但没有比较,所以我不知道哪个满足我的问题。 他们每个人的利弊? 1.> largefile.txt 2. truncate -s 0 {filename.txt} 3. logrotate 4. cat /dev/null > largefile.txt

快照 – 他们在哪里运行?

我有一个奇怪的“问题”。 我觉得有点哑巴问。 就在2013年的圣诞节之后,我在其中一个EC2实例上添加了一个cronjob,以快照所有具有backup = true的标记的EBS卷,并将其设置为在30天后删除。 我使用aws-missing-tool脚本这样做了 ec2-automate-backup.sh -s tag -t "backup=true" -k 31 快照仍在制作中:迄今为止非常好。 但是我需要对该脚本进行更改。 而我找不到他们正在运行的主机… 我想到了一个我认为应该运行的shell:它不在那里,也不在crontab中。 我已经仔细检查了VPC中的其他可能的ec2实例:没有骰子。 现在,我可以find一份工作来find备份脚本。 但是… EC2是否有一个“方法”来告诉我哪个主机的快照请求是从哪里来的? ec2是否有可能为我拍摄快照? 我不这么认为 ,但是现在已经很晚了,而且当你感到疲倦的时候,任何事情都是可能的。 谢谢。

使用storm-deploy获取org.jclouds.rest.config错误

我想使用storm-deploy在Amazon EC2上创buildStorm实例。 我已经使用Oracle Java7-JDK安装在Ubuntu 13.04系统上,并根据wiki设置configuration文件。 我打电话后: lein deploy-strom –start –nametesting 我得到以下错误: debuggingjclouds – findjclouds sshj驱动程序 DEBUG jclouds – 扩展(:log4j:slf4j:sshj) DEBUG jclouds – options [:jclouds.regions“eu-west-1a”:blobstore-provider“aws-s3”] 错误logging – 线程“main”中的exception 错误logging – com.google.inject.CreationException:Guice创build错误: 1)org.jclouds.rest.config.SyncToAsyncHttpApiProvider不能用作关键字; 它没有完全指定。 我试图从源代码中找出来,但是我没有使用Clojure的经验。 谁能告诉我为什么我得到这个错误? 我会很感激。

为什么我的网站不能用www前缀访问

我知道这是一个古老而“业余”的问题,但是我觉得自己需要提出这个问题,因为我真的不知道发生了什么事情。 我的网站无法访问www前缀…实际上,它有时有效,有时它不。 如果我没有www访问网站,那么它会突然开始与www工作。 在“做功课”之后,我按照下面的步骤来解决: – 在我的域名服务提供商中,我添加了一个A Record和一个C NAMElogging,指向我的网站,字面上看起来像这样,我假设GoDaddy正在parsing@到我的url, – 在我的虚拟主机configuration文件(httpd-vhost.conf在我的情况下)我有这样的结构: NameVirtualHost *:80 <VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot my_htdocs_path <Directory my_htdocs_path> Option Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 我有4块,它们都是完美的,但最重要的一块! (墨菲法则)。 这是怎么回事? 有人可以给我一个提示吗? 其他有用的信息: 运行Amazon EC2 我正在使用Route53作为子域名 一切正常工作

为EC2实例selectEBS卷作为根

启动EC2实例时,您可以select为您的系统select存储空间,但似乎会自动为您select一个根卷。 有没有办法从您的EBS卷中select一个根卷? 我希望能够启动一个具有根卷的实例(没有选中“在终止时删除”),进行更改,终止该实例,并在稍后用以前的相同根卷启动一个新实例。 我知道我可以用一个新的根卷启动一个实例,然后挂载旧的文件并复制文件,但这是我想避免的一些额外的步骤。 我也知道可以从快照启动,但是,如果根卷发生了变化,我不得不每次创build一个新的快照(然后在下次启动时更改根卷的快照ID)。 CLI命令ec2run似乎没有任何额外的function比networking。 是否有可能以root身份启动一个EBS卷的实例?