学习amazon的ec2主机的笔记

http://aws.amazon.com/cn/ 的云服务开始尝试提供中文界面了,但很多资料还是英文,对我仍然有点费力,不过我还是花了些时间尝试理解亚马逊的云服务,没理解亚马逊的云服务的名词和逻辑之前完全是一头雾水。我说说我的理解吧,我只知道s3是存储服务,ec2是提供一台虚拟主机(VPS),虚拟主机上可运行操作系统,操作系统可以选linux、windows,并且linux还有各种版本提供,只需要选AMI就好了,AMI (amazon machine image)就是类似ghost的镜像文件一样的东东,安装好操作系统后里就预先设置好一些软件了,比如我选了一个wordpress的AMI,安装就能用。有些AMI是需要付费,应该是买操作系统的授权费。我用的ubuntu就是免费的。估计用别人预先设置好的AMI也是要花钱的。在选AMI之前好像还可以选机房,有美国机房和新加坡机房,每个区域的价格还不一样。

实例(instance)对我来说是一个新名词,换成“主机”就好理解了,每个“主机”都要花钱,通常标注的价格是每小时的价格,如一台 0.020的主机是指每小时收费0.020美元,其实不便宜,换算成月租是 0.020×24×30,是14.4美元一个月。还好新用户绑定信用卡可以免费使用t1.micro 的主机一年。先拿来学习学习也不错。上次我体验Adobe在amazon的Flash流媒体服务器时,不知道租个large超贵的,也不知道关机,结果一个月下来三百多美元,还好向客服陈情免单了。强烈建议amazon新手注意信用卡安全,记得要关机,不然不用也得花钱。

好了,我对amazon的初步理解说完了。下面是我今天的学习笔记,也尽量给别人做参考,免得像我一样走冤枉路增加学习成本。

注册amazon帐号,绑定信用卡

注册ec2,使用t1.micro的实例是第一年免费的,只对新信用卡用户免费一年。

登录 https://console.aws.amazon.com/ec2/

最好先到 NETWORK & SECURITY 的 Key Pairs 生成一个密钥再做其他操作,这个密钥是用来SSH登录到amazon主机的。

我选了 bitnami-wordpress-3.4.2-0-linux-ubuntu-12.04.2-x86_64-ebs 这个AMI,这是我在找AMI时搜索wordpress找出来的。

在amazon上安装wordpress遇到一些麻烦,amazon上面提示的用 ssh -i zola.pem [email protected] 来登录是不对的,用户名不对,会提示 Permission denied (publickey),我安装的AMI (ami-03f6466a)改变默认用户名为 bitnami了

zuola:~ zola$ ssh -v -i zola.pem [email protected] (SSH的 -v 参数是debug模式,显示更多内容供我们查找问题)
OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to 204.236.236.251 [204.236.236.251] port 22.
debug1: Connection established.
debug1: identity file zola.pem type -1
debug1: identity file zola.pem-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 60:14:41:cf:86:39:9c:6d:39:62:01:aa:73:ea:8a:7f
debug1: Host ‘204.236.236.251’ is known and matches the RSA host key.
debug1: Found key in /Users/zola/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: dnp.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

这个Permission denied (publickey)  就让我搜索半天,原来默认用户名不是ubuntu,而是 bitnami 用 ssh -v -i zola.pem [email protected]  就登录成功了,不检查密码。

开始我还遇到 Permissions 0444 for ‘zola.pem’ are too open. 的问题,解决办法是:

chmod 400 zola.pem

这个步骤倒是amazon提供的,这倒没错。

然后还要到 NETWORK & SECURITY 下的 Elastic IPs 下面添加IP,然后绑定到 t1.micro 实例上,据说不收费。

到 NETWORK & SECURITY 的 Security Groups 里给自己的 t1.micro 实例 所在组加一个tcp 80 的防火墙规则,不然访问不到 204.236.236.251 的 80端口。

这样,就能访问到204.236.236.251/wordpress了,但登录wordpress后台要用user为用户名,密码是  bitnami 这都是这个AMI内置的。

由于默认的 wordpress 是安装在 204.236.236.251/wordpress 这个目录里,

所以我照下面这篇文章的方法把wordpress修改到 204.236.236.251 的根目录里

http://adamjohnston.me/2012/02/24/using-wordpress-on-aws-free-3/

大概流程是:

  1.  去apache的配置文件里修改文档目录到wordpress的目录:
    sudo vi /opt/bitnami/apache2/conf/httpd.conf 把
    DocumentRoot “/opt/bitnami/apache2/htdocs”
    改为
    DocumentRoot “/opt/bitnami/apps/wordpress/htdocs”
    <Directory />
    Options Indexes MultiViews +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
  2. 注释掉#Include “/opt/bitnami/apps/wordpress/conf/wordpress.conf”
  3. 添加.htaccess文件vi /opt/bitnami/apps/wordpress/htdocs/.htaccess
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !=/server-status
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
  4. 修改wp-config.php
    sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
    define(‘WP_HOME’, ‘http://amazon.zuola.com’);
    define(‘WP_SITEURL’, ‘http://amazon.zuola.com’);

好了,我的amazon的BLOG在这里,来参观吧 http://amazon.zuola.com

1 thought on “学习amazon的ec2主机的笔记”

  1. Pingback: 佐拉Ⓥ

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据