Articles of 亚马逊 EC2

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

我们正在构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文件。

EC2自动调整策略在不需要但在1小时之前终止实例

我已经在CPU监视器上设置了EC2自动调整策略,并且运行良好。 我偶尔会触发自动缩放,并添加更多的服务器。 如果服务器正在经历一个持续30分钟的突发事件,又增加了两个实例来帮助当前的工作,我想将它们保持59分钟(因为我付了1个小时),而不是在缩小时终止被触发。 所以基本上我想从开始的时候开始一小时左右移动检查,看看是否还需要,否则closures。 我应该玩冷却或宽限期吗? 以下是当前的规则(警报未显示),您可以看到我正在使用新的最旧OldestInstance终止策略。 as-create-auto-scaling-group MyASGroup \ –availability-zones us-east-1c \ –launch-configuration MyLaunchConfig \ –grace-period 300 \ –health-check-type ELB \ –min-size 1 \ –max-size 3 \ –desired-capacity 1 \ –load-balancers MyELB \ –termination-policies "OldestInstance" \ –tag … as-put-scaling-policy ScaleUp \ –type ChangeInCapacity \ –auto-scaling-group MyASGroup \ –adjustment=1 \ –cooldown 300 as-put-scaling-policy ScaleDown \ –type […]

如何从Linux堡垒主机SSH进入Linux服务器?

情景是这样的: Windows workstation -> Linux bastion host -> Linux server 从我的Windows工作站,我使用PuTTY SSH进入Linux堡垒主机,然后通过SSH进入Linux服务器。 问题是,当堡垒主机和Linux服务器之间的authentication是ppkauthentication,我不想在我的堡垒主机上存储Linux服务器的ppk密钥时,我该怎么做?

工头安装在亚马逊ec2实例

你好,谢谢你的阅读, 我目前正在为我们的ec2实例build立一个傀儡服务,并决定给工头一个尝试(节点证书pipe理和自动乘客设置看起来不错)。 不幸的是我遇到了安装困难。 我刚刚上了一台'Amazon Linux AMI x86_64 PV': [root@hostname ~]# uname -a Linux hostname 3.10.35-43.137.amzn1.x86_64 #1 SMP Wed Apr 2 09:36:59 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 并尝试以下内容: sudo yum -y update sudo yum -y install http://yum.theforeman.org/releases/1.1/el6/x86_64/foreman-release.rpm sudo yum -y install foreman-installer 其结果如下: Error: Package: rubygem-foreman_api-0.1.11-1.el6.noarch (foreman) Requires: rubygem(rest-client) >= 1.6.1 You could try using […]

当一个请求中存在多个AWSELB cookie时,AWS ELB会话粘性问题

我有两个Web应用程序 – App-A和App-B – 运行在两个EC2实例中(两个Web应用程序均在两个实例中运行),前端都是AWS ELB。 会话粘度使用“应用程序生成的Cookie粘性”启用,cookie设置为“JSESSIONID”。 以下是scheme: 1)用户首先尝试访问App-B。 请求转到Node-A,app创build一个path为“/ appb /”的JSESSIONID,ELB为同一path生成一个AWSELB cookie。 设置cookie标题来到浏览器: Set-Cookie: JSESSIONID=8629A2C6FA26A99678599B0868511610; Path=/appb/; Secure; HttpOnly Set-Cookie: AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6B3EA2E2C6CEE56E4F76FCE48DFDA95F1F20ED1ADEED570326993D2492C17C070ED41500F3EDC7EB993ED53188BF73D37301213483075952D1ADAD619C3C890672;PATH=/appb/;SECURE;HTTPONLY 2)然后用户尝试访问App-A。 请求转到节点B,app创build一个path为“/”的JSESSIONID,ELB为同一path生成一个AWSELB cookie。 设置cookie标题来到浏览器: Set-Cookie: JSESSIONID=5DA3507629D0CB34DE1B032FA71D1CB2; Path=/; Secure; HttpOnly Set-Cookie: AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6BC5080020E5701A0FB3756B152B401A70BF4CA755D30D9B06C82E5C1EB2E81E99C160A62D108BDB79947DEF2E2421C11C513C2C7452FA63B46EE8DF693FB5ED03;PATH=/;SECURE;HTTPONLY 3)现在用户再次尝试访问App-B。 浏览器将JSESSIONID cookies和2个AWSELB cookies发送给它,因为App-A的cookies是为“/”创build的。 据我所知,根上下文的cookie应发送到同一个域中的所有其他web上下文。 以下是前往App-B的Cookie头文件: Cookie: JSESSIONID=8629A2C6FA26A99678599B0868511610; AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6B3EA2E2C6CEE56E4F76FCE48DFDA95F1F20ED1ADEED570326993D2492C17C070ED41500F3EDC7EB993ED53188BF73D37301213483075952D1ADAD619C3C890672; JSESSIONID=5DA3507629D0CB34DE1B032FA71D1CB2; AWSELB=B321B10B128ADF1E237E8419717E1CC409A63A5C6BC5080020E5701A0FB3756B152B401A70BF4CA755D30D9B06C82E5C1EB2E81E99C160A62D108BDB79947DEF2E2421C11C513C2C7452FA63B46EE8DF693FB5ED03 在这种情况下,我遇到会话粘性问题,连续的浏览器请求App-B转到两个节点,而不是只转发到Node-A。 我很好奇AWS ELB在这种情况下如何pipe理会话粘性。 根据什么从2中select1个AWSELB cookie? 我错过ELB中的一些configuration吗? 提前致谢。

CloudFormation中的自动缩放组内的每个实例的警报

基本上它是什么方式,我怎样才能创build个人每个实例报警内自动扩展组创build一个CloudFormation模板? 我可以在报警中引用ASG本身并创buildASG级警报,但似乎无法将维度指定为“属于此ASG的任何EC2实例”。 这是可能的或者是我唯一的select用户数据脚本?

如何找出EC2实例根卷(SSD与磁性)的存储types?

我有许多AWS EC2实例作为生产应用程序的后端。 他们中的许多人早于一般SSD存储的可用性; 然而,一些较新的SSD使用SSD来获得它们的根卷。 我想转换所有还在使用磁性存储的机器以利用SSD存储,但是我宁愿不销毁和重新创build已经在SSD上的任何实例。 如何确定与特定实例的根卷关联的存储types?

允许来自AWS VPC中任何实例的stream量

尝试创build一个安全组,允许来自我的VPC内的所有入站stream量。 我以为我可以简单地指定我的CIDR块,但似乎并没有工作,请求失败,除非我创build一个规则,允许来自任何地方的入站stream量。 在同一个VPC内,允许来自任何EC2实例的入站stream量的正确方法是什么?

Amazon AWS EC2实例导出到本地计算机

我有几个在AWS EC2上创build的Amazon AWS EC2虚拟机。 他们不是import的,他们是在那里创造的。 我想导出这些机器以实现本地备份和本地testing环境。 我看了很多地方,发现很多信息说如果你最初导入到EC2中,你只能从EC2中导出一个虚拟机。 我还发现,如果机器最初是从EC2中导出的,那么只能导入到EC2中。 我的问题是,有可能导出一个build立在EC2上的虚拟机,并以某种方式在本地获取它。 我已经读过,你必须把它备份到一个S3桶,然后下载它,但亚马逊的文件说,你只能从那里导出它,如果它最初导入。 这里是serverfault上的链接,我发现这个问题,但没有回答。 复制Amazon EC2实例以在本地使用 存档Amazon AWS实例

不通过EC2实例之间的路由

我想从默认的VPC中的一个EC2实例设置一个VPN,同一个VPC中的其他实例可以使用,所以我正在做一些初始testing。 我有两个testing实例运行,他们可以互相ping通。 当我将一个testing公共IP从一个路由到另一个路由时,数据包确实从发送者实例的eth0出去(如tcpdump所预期的目标MAC地址所示(所以我想我的主机路由设置正确),但是永远不会到达目标实例我已经testing了两种方法,一种是通过172.31.0.1,另一种是直接使用另一个实例的IP作为网关,两台主机( Ubuntu和Amazon Linux都testing过)上的iptables都是空的。作为路由添加到VPC主路由表中,使用testing接收实例作为网关。 我的目标是,我在发送到任何非VPC IP的VPC中启动的实例最终转到运行VPN的实例(仍然未定IPsec或OpenVPN之间)。 我如何通过默认的VPC获取数据包在EC2上 ? 我怀疑还有更多,比我在AWS文档或通过谷歌(也许一些其他的EC2对象…我有所有的概念吗?)find。