Articles of amazon web services

Amazon RDS实例的性能不佳

我正在对Small RDS数据库实例所支持的PHP Web应用程序进行一些负载/压力testing。 当我用约50个并发的Web请求来访问网站时,RDS数据库仅停止响应所有连接请求约10秒(两者均来自我的Web应用程序以及使用来自其他机器的命令行mysql客户端)。 PHP提供了以下错误: Could not connect to database. Lost connection to MySQL server at 'reading initial communication packet', system error: 110 我认为这只是在Web应用程序中占用资源很less/很慢的SQL,但是这样的性能看起来非常糟糕,所以我挖了一点深。 我在具有相同版本的mysql,数据库的克隆和默认configuration的EC2微型实例上设置另一个mysql服务器。 EC2实例的执行性能要好几倍(包括延迟时间和在呱呱声之前的并发web请求数量)。 我的RDS实例和我的EC2实例使用的是与默认configuration相同的MySQL版本,尽pipe我已经尝试调整RDS实例以增加各种缓冲区,max_connections和max_connection_errors,但都无济于事。 是什么赋予了? 为什么具有更好的“磁盘”I / O,3倍内存和更多专用CPU的RDS实例的性能优于懦弱的EC2实例? 我怀疑这是AWS怪癖还是MySQL / RDSconfiguration问题 – 希望任何一个主题上的guru都可以照亮这个问题…谢谢!

无法使用SSMS在AWS EC2实例上远程连接到SQLServer Express 2008

每次尝试连接到AWS服务器上的远程SQLServer Express实例时,都会收到networking或实例特定的错误。 我到目前为止所尝试的: 我确保应用于该实例的安全组具有所有源连接的端口1433的入站规则(0.0.0.0/0) 我最初为TCP 1433的Windows防火墙添加了一个例外,并最终禁用了Windows防火墙,以避免这个问题。 目前它仍然是禁用的。 我以为我会需要一个公共IP地址,所以我分配一个弹性IP的实例。 我可以使用这个弹性IP RDP到服务器,所以我知道这个协会是好的。 我启用了TCP作为SQL Server实例的客户端连接协议。 当我进入服务器的RDP并做一个IPCONFIG /所有我认为我会看到IP地址要分配的弹性IP相同,但事实并非如此,我仍然看到私人的内部IP地址,我不是当然,如果这是我的问题的一部分,你从我下面的本地连接testing看到。 当远程进入服务器时,我可以成功地连接到SQL Server Management Studio,使用本地环回地址+实例名称:127.0.0.1 \ SQLEXPRESS。 我也可以使用私有IP +实例名称xxx.xxx.xxx.xxx \ SQLEXPRESS成功连接到SSMS。 这似乎表明SQLServer的TCP客户端协议已启用并正常工作。 但是,当我尝试本地连接SSMS,但使用我的弹性IP地址+实例名称时,我得到了同样的networking连接错误,当我尝试从本地PC远程连接时, 因此,尽pipe我可以使用弹性IP地址build立到服务器的RDP连接,但是它显示Elastic IP没有在内部或与SQL Server关联。 有任何想法吗?

Amazon EC2 – 如何在AWSconfiguration的Windows实例(IIS / SQL Server Express AMI以外的版本)上运行IIS

我在这里错过了什么? 亚马逊EC2看起来不错,我试图find一个合适的AMI为我build立一个新的Windows服务器。 我不太想使用迄今为止所见到的社区共享AMI,因为您在select时显示的信息有限,而且我认为使用其他人configuration的映像存在安全风险。 看看AMI的快速入门,唯一明确指出包含IIS的是: 带有SQL Server Express和IIS的Microsoft Windows Server 2008 R2 但是…我想要SQL Servernetworking版。 我用SQL Server Web运行了微软Windows Server 2008 R2的一个小实例,假设这样做会有IIS,但是这并没有预先安装IIS。 我试图通过“添加程序和function”来添加,但是这个过程并不像我习惯的那样,当我试图运行一个简单的testing网站时,我遇到了类似“Service WAS not running”(或类似的)的错误。 任何意见赞赏。

使用EC2和Route 53pipe理许多外部主机

寻找“最佳实践”的答案来pipe理使用Amazon EC2和Amazon Route 53组合的外部可寻址主机, 而无需为每个主机使用弹性IP。 在我的情况下,我将有30多个主机需要从外部EC2访问,所以直接使用内部DNS将无法正常工作。 过去,我通过给主机分配一个弹性IP(比方说55.55.55.55),然后创build一个关联的Alogging来解决主机问题。 例如,假设我想创build“ec2-corp01.mydomain.com”我可能会这样做: ec2-corp01.mydomain.com. A 55.55.55.55 300 然后在EC2实例上,我将分配弹性IP为55.55.55.55,一切工作正常。 当然,要做到这一点,我需要每个实例都有一个弹性IP,这是我想尽可能避免的。 我希望基础设施更具活力。 所以我的想法是尝试像这样: 创build一个查询内部EC2工具的脚本来确定一个实例的私有主机名 在实例引导中,调用该脚本以确定其主机名,然后使用命令行Route 53接口查找该主机名并将其更新为其当前内部主机名 由于主机的TTL相对较低(比如说300或5分钟),它应该很快生效 这是一个好主意吗? 有更好或更广泛接受的方式来处理它吗? 如果这是一个好主意,我应该创build什么types的logging? 指向内部主机的CNAME,例如ec2-55-55-55-55.compute-1.amazonaws.com? Alogging是好还是坏? 谢谢!

官方的Ubuntu AMI映像与ISO基本安装有什么区别?

在AWS上使用官方Ubuntu 12.04服务器AMI创build新实例时,与我在自己的计算机上执行标准服务器安装相比有什么不同? 例如,默认用户是'ubuntu'。 将SSH公钥添加到该用户authorized_keys文件。 Sudo是该用户的密码。 PasswordAuthentication在SSH中被禁用。 等等 configuration已经从他们的默认值改变了,我想知道是否有一个列表,或者我可以find所做的修改。

AWS安全组不足作为防火墙的示例?

目前,我正在使用一个AWS安全组作为我的一个EC2实例,但也考虑过为此堆栈添加防火墙。 我会考虑使用iptables,或者可能将整个系统迁移到Ubuntu(不涉及这个问题),所以可能只是最终使用ufw。 如果我只用安全组保护这台机器,我是否错过了一些保护措施? 与传统的* nix软件防火墙相比,我一直无法获得它的防护级别。

性能数据收集短期,短暂的服务器

我们正在构build一个医学image processing软件栈,目前托pipe在各种AWS资源上。 作为这个应用程序的一部分,我们有一些长期运行的服务器(数据库,负载平衡器,Web应用程序等)。 在这些服务器上收集性能数据非常简单 – 我使用Nagios(用于监视/通知)和Munin(用于收集性能数据和显示趋势)的配方工作得很好。 但是,作为此应用程序的一部分,我们不断启动和终止EC2上的计算实例。 在典型用法中,这些计算实例启动,configuration自己,从消息队列接收作业,然后开始处理该作业,这需要15分钟到8小时以上的时间。 工作完成后,这些实例被终止,永远不会再被听到。 在这些短暂的实例中收集性能数据的体面战略是什么? 我不一定需要对他们进行监控 – 如果他们因为某种原因失败了,我们的应用程序会检测到这个情况,并处理另一个实例的重新启动工作,或者提升这个标志,这样pipe理员就可以看看事情了。 但是,收集CPU(用户,空闲,iowait等),内存使用情况,networkingstream量,磁盘读写数据等信息仍然是有用的。在我们的内部数据库中,我们跟踪机器的实例ID运行每个作业,查找特定实例ID的性能数据以进行故障排除和分析将非常有帮助。 Munin似乎不是一个好的候选人,因为它需要在文本文件中保留一个munin节点的列表 – 对于stream量大的环境来说,这并不理想,而且每个节点运行的时间很短,我宁愿保留全分辨率的数据,也不愿意随着时间的推移使RRD数据下降。 最后,我的猜测是,这将需要一个监控引擎: 使用数据库(MySQL,SQLite等)进行configuration和数据存储 公开了用于添加/删除主机和服务的API 评估选项时,我应该考虑其他事情吗? 但是,也许我正在过度思考这个问题,而且应该每隔1分钟在这些短暂的实例上运行sar ,并在终止之前收集sar db文件。

从Cron执行时,AWS API工具“未find命令”

我创build了这个bash脚本来生成我的EBS卷的快照 #! /usr/bin/bash ec2-create-snapshot -d "My Snapshot" vol-XXXXXXX -O <MyKey> -W <MyOtherKey> 当我在连接到服务器时在terminal中运行这条线时,它就起作用了 bash myscript.sh 然后我创build了这个crontab PATH=/bin:/home/usr/bin/bash:/usr/bin/bash 0 * * * * (bash ~/../bash/myscript.sh) #ALSO TRIED THESE LINES #0 * * * * ~/../bash/myscript.sh #0 * * * * (/usr/bin/bash ~/../bash/myscript.sh) 我在电子邮件中收到这条消息 /home/ec2-user/../bash/myscript.sh: line 4: ec2-create-snapshot: command not found 我没有关于如何使这项工作的想法。 问题似乎是从crontab执行时,脚本找不到AWS API工具。 任何想法将非常感激。 为了清楚起见,这里是结束了工作。 谢谢你指出我正确的方向。 […]

从VPC外部连接RDS数据库

我的RDS数据库位于VPC。 这是一个多AZ数据库,以便它位于两个VPC子网上。 我怎么能连接从VPC之外?

使用AWS的Route53切换CNAME时避免停机

我试图从Heroku无缝过渡到AWS。 目前,DNS由Route53处理,CNAMElogging将stream量发送到heroku SSL子域。 我需要将其更改为“别名”logging,指向新的Elastic Load Balancer,而不会造成服务中断。 如果最初的logging是一条Alogging,那么只需要创build别名Alogging,然后删除原始logging,以便始终为给定的子域总是有一个活动的Alogging。 但是,CNAME阻止为同一子域创build任何其他logging,并带有以下消息: <Error><Type>Sender</Type> <Code>InvalidChangeBatch</Code> <Message>RRSet of type A with DNS name www.example.com. is not permitted because a conflicting RRSet of type CNAME with the same DNS name already exists in zone example.com.</Message></Error> 如果我在创buildAlogging之前删除了CNAMElogging,那么会出现一个窗口,在此期间,过期的TTL将无法parsing该网站。 我怎样才能避免这种宕机?