Articles of amazon ec2

亚马逊AWS EC2微型实例上的Python CGI – 一个方法!

你怎么能让一个EC2微型实例从lighthttpd提供CGI脚本? 例如Python CGI? 那么,它花了半天时间,但是我已经使用lighttpd服务器获得了在免费的Amazon AWS EC2微型实例上运行的Python CGI。 我认为这会帮助我的同伴把所有的步骤放在一个地方。 用下面的简单步骤武装起来,只需要15分钟就能完成! 我有更多有经验的用户阅读这个问题的问题是:我所做的是否存在安全漏洞? (请参阅文件和目录权限。) 第1步:启动您的EC2实例并将其ssh。 [显然,您需要注册Amazon EC2并将密钥对保存到* .pem文件。 亚马逊会告诉你如何去做,我不会这样做。] login您的AWS账户并启动您的EC2实例。 networking上有这样做的教程。 请注意,Amazon向您呈现的默认实例大小“很小”。 这不是“微”,所以它会花费你的钱。 一定要手动select“微”。 (微型实例仅在第一年免费…) find正在运行的实例的公共DNS代码。 为此,请单击仪表板顶部窗格中的实例,最终将在底部窗格中看到“公用DNS”字段。 (你可能需要小心一点。)Public DNS看起来像这样: ec2-174-129-110-23.compute-1.amazonaws.com 启动你的Unix控制台程序。 (在Max OS X上,它被称为terminal,并位于应用程序 – >实用工具文件夹中。) cd到您的桌面系统上具有包含您的AWS密钥对的* .pem文件的目录。 ssh到你的EC2实例,使用如下命令: ssh -i <<your *.pem filename>> ec2-user@<< Public DNS address >> 所以,对我来说,这是: ssh -i amzn_ec2_keypair.pem [email protected] 你的EC2实例应该让你进入。 第2步:将lighttpd下载到您的EC2实例。 要安装lighttpd,您需要在您的EC2实例上进行root访问。 问题是:亚马逊不会让你以root身份login。 […]

我的DNS服务器推送20mbps,为什么?

我在EC2上运行一个DNS服务器,昨天当我查看了我的计费仪表板,并且在本月发现了1.86 TB的使用数据时,它正在运行一个20Mbps的服务器。 这对我的小型项目实验室来说是一个很大的开支。 我从来没有注意到性能下降,也没有打扰之前build立交通门槛,但现在我已经花了我$ 200 +带宽收费。 似乎有人使用我的DNS服务器作为放大攻击的一部分,但是我对此感到茫然。 configuration如下。 // BBB.BBB.BBB.BBB = ns2.mydomain.com ip address options { listen-on port 53 { any; }; // listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-transfer { BBB.BBB.BBB.BBB; }; allow-query-cache { BBB.BBB.BBB.BBB; }; allow-query { any; }; allow-recursion { none; }; empty-zones-enable no; […]

在Amazon Linux AMI上启用SSH密码login

我不能通过SSH密码login而不是密钥文件。 是的,我知道这是完全不安全的,但在这一点上,我正在closures和左右variables的variables,试图让这个工作。 # $OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value […]

如何在Amazon EC2上部署可伸缩,可靠的haproxy集群?

我们需要一些比ELB更高级的function(主要是L7检测),但是如何使用EC2等haproxy处理心跳和高可用性等问题并不明显。 很有可能我们在集群中需要3个或更多的haproxy节点,所以两个节点之间的简单心跳不起作用。 似乎在haproxy节点前面有一个心跳图层是可能的,可能使用IPVS,但是在EC2集群变化时处理configuration更改(通过有意的更改,如扩展,或无意,如丢失EC2节点)似乎不平凡。 优选地,该解决scheme将跨越至less两个可用区域。 回答问:不,会话不粘。 是的,我们需要SSL,但理论上可以完全由另一个设置来处理 – 我们能够将SSLstream量导向到与非SSLstream量不同的位置。

什么是IP后的“斜线”?

在Amazon EC2中,我设置了“安全组”,它说:来源: 0.0.0.0/0然后给出一个例子:192.168.2.0/24 什么是“/ 24”? 我知道端口和IP是什么。

Vagrant框最类似于Amazon EC2实例

Vagrant是否提供了可供下载的“盒子”,它们与Amazon EC2实例的Linux版本和软件包密切相关? 我正在使用Vagrant进行本地testing,目前正在使用Precise32盒子。 我正在使用“Amazon Linux AMI 2013.03”AMI将我的代码部署到Amazon EC2实例。 我面临的问题是可以在Precise32盒子上安装的软件包具有不同的名称,例如 php5-fpm – 在无用的盒子里 php54-fpm – 在Amazon EC2实例中。 虽然我可以通过使用Puppetconfiguration文件中的variables来解决这个问题来处理不同的软件包名称,这听起来有点像黑客。 那么,是否有任何可以反映亚马逊EC2环境的stream浪盒? 或者是否有可能告诉stream浪者使用与Amazon EC2实例相同的软件包源? 为了澄清一件事 – 我想这样做的原因是,我可以在本地进行testing,而无需首先执行所有操作。 虽然Vagrant支持AWS作为提供者,但实际上并不能实现本地testing。

EC2:是一个实例的公共DNS稳定? 我可以依靠它不改变?

我已经启动了我的第一个实例,并将其用作Web服务器。 我看到它有一个公共的DNS(一个公共的URL),例如: ec2-123-45-6-789.compute-1.amazonaws.com 我可以成功地在我的浏览器中访问这个服务器,通过cURL等命令。 我想在我正在构build的应用程序中使用此Web服务器作为后端服务,所以我将这个URL放在了我的应用程序的configuration中,并且效果很好。 但是,当我手动停止并重新启动我的实例,我看到公共DNS的变化! 我已经读过,当你明确停止并重新启动时,会发生这种情况,但是如果只是“重新启动”,则不会发生。 我不打算明确停止和重新启动这台服务器,但我的问题是: 这个公共的DNS是否由于任何原因自行改变? 例如,如果机器exception崩溃,或不pipe。 换句话说,运送连接到此URL的应用程序安全吗?

Amazon EC2实例之间进行通信的最佳实践是什么?

我已经为即将到来的项目设置了Amazon EC2实例。 他们都是微型实例,运行Ubuntu Server 64bit。 这是我迄今为止设置的: Web服务器 – Apache 数据库服务器 – MySQL 开发服务器 – Apache和MySQL 文件服务器 – SVN&Bacula(备份完成到S3桶) 目前,只有一个Web服务器,但最终会有更多。 我的第一个问题是,Amazon EC2实例彼此之间进行通信的最佳,最安全的方式是什么? 目前我使用SSH,是最好的方法吗? 根据亚马逊,使用其弹性IP地址进行通信的实例将收取数据传输费用。 但是,使用其私有IP地址进行通信的实例可以免费进行。 不幸的是,如果实例停止并重新启动,则显示私有IP更改。 那么这就是我的第二个问题,如果不是静态的,那么您如何利用Amazon实例的私有IP? 我知道这些实例很可能不会被停止并开始非常频繁的使用,但是如果IP地址在不同的configuration文件中,那么通过全部的configuration文件进行修改将是一件痛苦的事情。 我主要关心Web服务器,它需要访问数据库服务器和文件服务器,在执行备份时需要访问所有的实例。 注意:我以前从未使用过Bacula,也没有安装它,但是我假设它需要客户端的IP地址来备份它们。

为什么我的OpenSSH密钥指纹不符合AWS EC2控制台密钥对指纹?

当我将OpenSSH公钥导入到AWS EC2的密钥环中时,AWS显示的指纹与我所看到的指纹不匹配: ssh-keygen -l -f my_key 它是不同的长度和不同的字节。 为什么? 我确定我上传了正确的密钥。

为什么在Xen下TCP接受()性能如此糟糕?

在Xen下,我的服务器可以接受()新的传入TCP连接的速率真的很糟糕。 裸机硬件上的相同testing显示3-5倍的加速。 Xen在Xen下如此糟糕? 你可以调整Xen以提高新TCP连接的性能吗? 还有其他虚拟化平台更适合这种用例吗? 背景 最近我一直在研究在Xen下运行的内部开发的Java服务器的性能瓶颈。 服务器会说HTTP并回答简单的TCP连接/请求/响应/断开连接呼叫。 但即使在向服务器发送stream量时,每秒钟也不能接受超过约7000个TCP连接(在一个8核EC2实例,运行Xen的c1.xlarge上)。 在testing期间,服务器也performance出奇怪的行为,其中一个核心(不一定是cpu 0)非常负载> 80%,而其他核心几乎空闲。 这使我认为这个问题与内核/底层虚拟化有关。 当在裸机上testing相同的场景时,我得到的testing结果显示TCP接受速率超过35000 /秒。 在一台运行Ubuntu的Core i5 4核心机器上,所有内核几乎全部饱和。 对我来说,这种数字似乎是正确的。 再次在Xen实例上,我已经试过启用/调整几乎sysctl.conf中的所有设置。 包括启用接收数据包转向和接收stream量转向 ,并将线程/进程固定到CPU,但没有明显的收益。 我知道虚拟化运行时性能会下降。 但是到了这个程度? 速度较慢的裸机服务器性能优于虚拟化技术。 8核的系数是5? 这真的是Xen的预期行为? 你可以调整Xen以提高新TCP连接的性能吗? 还有其他虚拟化平台更适合这种用例吗? 重现这种行为 当进一步调查和指出问题时,我发现netperf性能testing工具可以模拟我遇到的类似情况。 使用netperf的TCP_CRRtesting我收集了来自不同服务器(虚拟化和非虚拟化)的各种报告。 如果您想提供一些调查结果或查看我目前的报告,请参阅https://gist.github.com/985475 我怎么知道这个问题不是由于写得不好的软件造成的? 该服务器已经在裸机硬件上进行过testing,并且几乎饱和了所有可用的内核。 当使用保持活动的TCP连接时,问题就会消失。 为什么这很重要? 在ESN (我的雇主),我是用Java编写的Comet / Web Socket服务器Beaconpush的项目负责人。 即使它性能非常好,在最佳条件下几乎可以使任何带宽达到饱和,但仍然限于新的TCP连接速度。 也就是说,如果用户stream失频繁,那么很多TCP连接将不得不build立起来。 我们尽量减less这种保持连接的活力。 但最后,accept()的性能是让我们的内核不能旋转,我们不喜欢这样做。 更新1 有人把这个问题发给了黑客新闻 ,那里也有一些问题/答案。 但是,我会尽量保持这个问题的最新信息,随着我的发现。 硬件/平台我已经testing了这个: EC2,实例types为c1.xlarge(8核,7 GB RAM)和cc1.4xlarge(2x Intel […]