Articles of 亚马逊 EC2

EC2 – 要在服务启动之前安装

我正在使用AWS EC2,并添加了额外的EBS卷。 它目前被安装成一个新的设备。 MySQL和Redis DB将其数据存储在新的EBS卷上,并在chkconfig中注册。 因此,在chkconfig服务启动之前,我需要装入卷。 但是我不想将它添加到我的/etc/fstab ,正如下面的论坛中所述。 https://forums.aws.amazon.com/message.jspa?messageID=304528#304528 所以我在/etc/rc.d/rc.localjoin了mount /dev/xvdf /data ,然后重新启动了我的系统。 但显然chkconfig服务启动BEFORE /etc/rc.d/rc.local ,所以MySQL和Redis启动失败。 我想知道在哪里可以编写一个名为BEFORE chkconfig service starts的初始化脚本。 提前致谢。

rsync作为根到/ var / www失败,“协议版本不匹配”

我试图设置一个命令的方式,将网站代码从开发机器上移到我的Ubuntu EC2实例中,并将其直接复制到/ var / www / mywebsite文件夹中,nginx希望在该文件夹中find网站。 这些Ubuntu AMI带有默认的ubuntu用户。 我可以rsync一个文件夹没有任何麻烦从开发机器到EC2实例的/ home / ubuntu /文件夹: rsync -avL –progress -e "ssh -i /home/me/myhosts.pem" source-folder [email protected]:~/code 但是当我尝试以root身份将同一个文件夹rsync同步到/ var / www时: rsync -avL –progress -e "ssh -i /home/me/myhosts.pem" source-folder [email protected]:/var/www/ 我得到以下错误: protocol version mismatch — is your shell clean? (see the rsync man page for an explanation) rsync error: […]

在两个同步networking接口上运行Ubuntu上的EC2服务器

我发现了与这个问题有关的类似问题,但没有一个与我的情况相符,也没有任何build议帮助我实现了这个目标。 我有一个运行在EC2中的默认AMI的64位Ubuntu服务器。 这有2个networking实例,每个实例有2个本地IPS和链接的EIP。 每个实例的本地IP地址都有意地放在不同的子网上,以帮助克服不同实例中相同networkingIP的复杂性。 一审2个IP工作正常,没有问题。 我一直在使用下面的代码启动我的所有服务器 #!/bin/bash MAC_ADDR=$(ifconfig eth0 | sed -n 's/.*HWaddr \([a-f0-9:]*\).*/\1/p') IP=($(curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC_ADDR/local-ipv4s)) for ip in ${IP[@]:1}; do echo "Adding IP eth0: $ip" ip addr add dev eth0 $ip/24 done 我已经在此脚本中添加了第二部分来尝试启动第二个接口IP MAC_ADDR=$(ifconfig eth1 | sed -n 's/.*HWaddr \([a-f0-9:]*\).*/\1/p') IP=($(curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC_ADDR/local-ipv4s)) for ip in ${IP[@]:1}; do echo "Adding IP eth1: $ip" ip addr […]

带有Windows 7客户端的strongSwan服务器不会路由stream量

我有一台服务器在我想连接到Windows 7的Amazon EC2实例上运行strongSwan。strongSwan服务器位于专用networking上(networking172.16.0.0/17上的IP地址为172.16.1.15),并将stream量转发给其从公共IP地址的私人地址 – 这是亚马逊称之为“弹性IP”。 我想从另一个私有子网(10.127.0.0/22)分配客户端地址,并在两个私有子网之间路由通信。 请注意,172.16.0.0/17子网由Amazonpipe理,但10.127.0.0/22子网现在不受任何pipe理(除了我的ipsec.conf)。 我的Windows客户端连接到VPN,但无法连接到专用networking上的任何主机。 我的理论是,这与客户端路由或服务器上缺less一些iptables调用的问题有关,但是我对这两个域都不是非常了解,而且我陷入了困境。 我在服务器上安装了Ubuntu 12.04和strongswan-ikev2。 ipsec version报告Linux strongSwan U4.5.2/K3.2.0-52-virtual 请注意,客户端和服务器都在NAT之后(客户端,因为它在本地办公networking,服务器,因为它在亚马逊的云)。 我在Amazon仪表板和客户端的防火墙上解除了UDP端口500和4500的封锁。 我在服务器上启用了IPv4转发: echo 1 > /proc/sys/net/ipv4/ip_forward 我已经进入亚马逊的172.16.0.0/17子网的VPCpipe理用户界面,并允许所有来往10.127.0.0/23子网的stream量。 这是/etc/ipsec.conf: config setup plutostart=no conn %default keyexchange=ikev2 dpdaction=clear dpddelay=300s rekey=no conn dlpvpn left=172.16.1.15 leftauth=pubkey leftcert=openssl-cert.pem leftid=vpn.example.com leftsubnet=172.16.0.0/17 right=%any rightsourceip=10.127.0.0/22 rightauth=eap-mschapv2 rightsendcert=never eap_identity=%any auto=add 这是/etc/ipsec.secrets: : RSA openssl-key.rsa TESTDOMAIN\testuser : EAP "testpassword" 这是/etc/strongswan.conf: […]

使用厨师更新EC2实例

我上个星期被炒到厨师的最后,现在我被困在了一件事上。 我在AWS中创build了一个实例(在这个时候很多次),当厨师开始做它的事情时,我得到一个编译错误。 好吧,我会弄清楚什么事情,然后重新申请。 我的问题:我如何更新现有的实例? 我可以使用$ knife ec2 server create [coptions]但有没有相应的更新命令? 我的大脑想要执行像$ knife ec2 server update [AWS instance ID] -x userXXX -r 'recipe[yyy::zzzz]'我没有看到更新作为一个选项,所以有什么类似的? 我不想在对配方进行故障排除时不断创build和终止实例,我宁愿将更改应用于现有实例。

我应该使用ec2作为文件服务器吗?

我需要能够在多个EC2应用程序服务器上共享用户上传的内容。 我已经将rsync,挂载的NFS和S3看作是几乎可以实时共享这些数据的潜在选项。 上传和下载的用户文件几乎总是在1-10MB之间。 一些访问了很多,有些只是一次,然后删除。 我最新的方法是严格地将EC2实例作为文件服务器启动,与应用程序服务器分开。 使用此选项,用户可以下载文件,并将其连接到应用程序服务器之一,该应用程序服务器使用有关要下载的文件的数据查询数据库。 然后提示用户下载,并将它们连接到文件服务器进行下载。 我觉得这个选项会比我的其他选项更快。 我看到唯一的缺点是我无法自动调整向上/向下文件服务器。 然而,我可以放大并在数据库中创build一个列,指出文件位于哪个文件服务器上。 这是一个好方法还是我错过了什么? 另外,根据服务器规格和文件在1-10MB之间来确定在文件服务器上可以发生多less并发上传/下载,或者从负载testing中最好地确定什么是一种好方法? 同样在扩展方面,如果一个文件服务器上的一个特定文件变得非常受欢迎,这会是一个问题吗? 会用CDN解决这个问题吗?

将静态私有IP分配给EC2实例

我想我的服务器连接到一个数据库服务器(都在一个EC2实例)。 我怎样才能给数据库服务器一个静态的IP地址使用EC2而不使用VPC?

服务器拒绝我们的密钥(AWS) – 腻子

我刚刚注册了AWS并启动了EC2,下载了密钥( .pem )文件,然后使用puttykeygen生成了ppk文件。 使用这个ppk文件我试图通过使用腻子SSHlogin到服务器,但它给我Server refused our key错误popup: Disconnected: No support authentication methods available (server sent: publickey) 我也使用了ec2-user和root但是两者似乎没有相同的错误。 我正在使用亚马逊Linux AMI,所以本页build议使用我已经使用的ec2-user 。 我也一步步按照该页面上的说明,但获得上述相同的错误。 我也谷歌search,但不能来的决议。 这是一个在腻子中的错误,或者我错过了什么?

crontab失败,无法findaws可执行文件

我试图在我的ec2亚马逊服务器(ubuntu 14.04)上运行一个备份脚本来自动创build一个amazon ebs卷的快照。 因此,我正在使用aws-missing-tools脚本: https : //github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup 这是我的备份脚本,触发ec2-automate-backup-awscli.sh: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/aws HOME=/ JAVA_HOME=/usr/lib/jvm/default-java/jre/ [email protected] AWS_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx AWS_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /opt/aws/ec2-automate-backup-awscli.sh -r us-east-1 -s tag -t 'Backup,Values=true' -k 31 -p 但是,当我用crontab调度这个脚本时,我只会遇到这个错误: 26 23 * * * /opt/aws/backup.sh >> /var/log/aws.log 2>&1 日志文件:“为了使用ec2-automate-backup-awscli.sh,必须安装可执行文件”aws“。 直接执行“sh backup.sh”可以正常工作。 (快照已创build。) 有任何想法吗?

EC2 Ubuntu 14.04实例:运行`apt-get update`导致“Hash Sum mismatch”

每当我用Ubuntu 14.04(使用ami-a182b391 ,从这里find)创build一个新的AWS EC2实例,然后立即运行sudo apt-get -y update ,它会给我一个错误。 这里的操作系统信息: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.2 LTS Release: 14.04 Codename: trusty 以下是失败的apt命令: $ sudo apt-get -y update Ign http://us-west-2.ec2.archive.ubuntu.com trusty InRelease Ign http://us-west-2.ec2.archive.ubuntu.com trusty-updates InRelease Hit http://us-west-2.ec2.archive.ubuntu.com trusty Release.gpg Hit http://us-west-2.ec2.archive.ubuntu.com trusty-updates Release.gpg Hit http://us-west-2.ec2.archive.ubuntu.com trusty Release Hit […]