当前位置:文档之家› 用 Amazon Web Services 进行云计算,第 3 部分 用 EC2 根据需要提供服务器

用 Amazon Web Services 进行云计算,第 3 部分 用 EC2 根据需要提供服务器

用 Amazon Web Services 进行云计算,第 3 部分  用 EC2 根据需要提供服务器
用 Amazon Web Services 进行云计算,第 3 部分  用 EC2 根据需要提供服务器

用Amazon Web Services 进行云计算,第 3 部分: 用EC2 根据需要提供服务器

Prabhakar Chaganti, CTO, Ylastic, LLC

简介:学习基本的 Amazon SimpleDB (SDB) 概念,研究 boto(一个用于与 SDB 交互的

开放源码 Python 库)提供的一些功能。在这个“用 Amazon Web Services 进行云计算”

系列中,学习如何使用 Amazon Web Services 进行云计算。了解这些服务如何为设计和构建可伸缩、可靠的应用程序提供一种可选方案。本文介绍 Amazon Elastic Compute Cloud (EC2) 提供的虚拟服务器。了解 EC2 如何帮助动态地配置应用程序的需求并根据需要调整

计算能力。

Amazon EC2

Amazon Elastic Compute Cloud (EC2) 是 Amazon 提供的云计算环境的基本平台。通过使用 EC2,可以在任何时候根据个人或企业的需要简便地创建、启动和供应虚拟实例。根据实例的类型和每小时的实际使用量付费。虚拟服务器在Amazon 数据中心的安全环境中运行。

EC2 可以为 Web 范围的应用程序提供以下功能:

?动态地配置计算需求。

?根据需要调整计算能力。

在当今这个 Web 驱动的环境中,网站通信量可能一下冲到高峰(比如因为 Yahoo 主页上提到了您的网站),一小时后又落入谷底。现在,可以以弹性的方式快速地提高和降低计算能力。这个新的弹性计算模型提供一些非常有价值的特性:

可靠性

EC2 能够轻松地供应实例并在不再需要实例时销毁它们。

简单性

EC2 基于简单的概念,为系统设计提供很强的灵活性。Amazon 提供所需

的所有构建块;可以根据自己应用程序的用例组合它们。

安全性

EC2 提供很高的安全水平。所有实例都在 Amazon 的数据中心中运行,还

可以通过配置防火墙规则把访问限制在您信任的组。

灵活性

可以把实例放在不同的地理位置,使用生命周期独立于实例的持久存储卷,从而增强应用程序的灵活性。

低成本

EC2 服务以非常低廉的费率满足您的所有服务器需求。

框架

本节介绍支撑 EC2 框架的概念。

Amazon Machine Images

Amazon Machine Image (AMI) 是基于Linux? 的打包的服务器环境,可以运行您需要的任何软件或应用程序。它们是 EC2 提供的弹性计算环境的核心。当前的 EC2 版本支持基于 Linux 的 AMI,但是也初步支持使用 OpenSolaris 作为EC2 环境中的操作系统:

有三种机器映像:

私有的您创建的映像,在默认情况下是私有的。可以授权其他用户启动您的私有映像。

公共的用户创建并发布到 Amazon Web Services 社区的映像,任何用户都可以基于它们启动实例,按照自己喜欢的方式使用它们。Amazon Web Services Developer Connection网站列出所有公共映像。

付费的可以创建提供特殊功能的映像,其他用户可以启动它们,但是要按照使用时间向您付费。

Amazon 提供几个命令行工具,可以使用它们方便地创建和管理映像。映像本身存储在 Amazon Simple Storage Service (S3) 上。在向 EC2 注册映像时,给映像分配一个惟一的 ID,可以使用这个 ID 识别映像和从映像启动实例。有几种创建自己的映像的方法。可以以一个现有的公共映像为基础,按照以下步骤创建新的 AMI:

1.用自己的 SSH 密钥对从现有的 AMI 启动一个实例。

2.通过 SSH 连接实例。

3.根据自己的希望定制实例。

4.使用 Amazon 的工具把正在运行的实例重新打包为新的 AMI。

5.使用 Amazon 的工具把这个映像上传到 S3。

6.使用 Amazon 的工具向 EC2 注册这个新的映像。

7.从这个新的映像启动一个新实例,重新定制和重新打包,直到满意为止。

另一种方法是使用 EC2 社区提供的脚本之一创建新的 AMI。可以使用脚本从头创建 AMI。流行的脚本包括:

?Eric Hammond提供的基于Ubuntu和Debian的 AMI 创建脚本。可以使用他的网站上提供的预构建映像,也可以使用脚本从头创建映像。

?如果需要能够运行 Ruby on Rails 应用程序的映像,可以使用Paul Dowman提供的脚本创建基于 Ubuntu 的映像,这种映像可以在 EC2 上运行 Rails 应用程序。

?RightScale提供基于 Ubuntu 和CentOS脚本,可以使用它们从头创建自己的映像。

实例

实例是使用 AMI 作为模板的正在运行的虚拟实例。可以使用 Amazon 提供的工具启动实例、查看实例的详细信息和终止实例。还可以使用用不同语言编写的许多第三方库控制实例的生命周期。

实例可以基于 32 位或 64 位平台,可以是以下类型之一。Amazon 还用 EC2 计算单位确定每个实例类型的级别。每个 EC2 计算单位 (ECU) 相当于一个

1.0-1.2 GHz 2007 Opteron 或2007 Intel? Xeon?处理器的处理能力。

小实例 (m1.small)

1.7 GB 内存,一个 EC2 计算单位(一个虚拟核,一个 EC2 计算单位),

160 GB 实例存储,32 位平台,中等 I/O 性能

大实例 (https://www.doczj.com/doc/013475411.html,rge)

7.5 GB 内存,四个 EC2 计算单位(两个虚拟核,每个核两个 EC2 计算

单位),850 GB 实例存储,64 位平台,高 I/O 性能

超大实例 (m1.xlarge)

15 GB 内存,八个 EC2 计算单位(四个虚拟核,每个核两个 EC2 计算单

位),1,690 GB 实例存储,64 位平台,高 I/O 性能

中等实例 (c1.medium)

1.7 GB 内存,五个 EC2 计算单位(两个虚拟核,每个核

2.5 个 EC2 计

算单位),350 GB 实例存储,32 位平台,中等 I/O 性能

超大实例 (c1.xlarge)

7 GB 内存,20 个 EC2 计算单位(八个虚拟核,每个核 2.5 个 EC2 计

算单位),1,690 GB 实例存储,64 位平台,高 I/O 性能

因为根据使用实例的实际时间付费,所以很容易根据应用程序当前的负载提高或降低计算需求。不需要提前保留大量计算能力。

安全组

在 EC2 环境中启动的所有实例都在一个安全组中运行。每个安全组定义自己的防火墙规则,为在组中运行的实例指定访问限制。可以根据 IP 地址或无类域间路由 (CIDR) 规则授予或限制访问权,CIDR 规则允许指定端口范围和传输协议。还可以控制对指定的安全组的访问,从而自动地允许或拒绝这些安全组中运行的所有实例访问您的实例。

安全密钥对

安全密钥对是在启动实例时指定的公共/私有 SSH 密钥对。必须提供安全密钥对,才能登录启动的实例的控制台。EC2 把密钥对的公共部分添加到启动的实例中,然后用户可以使用私有密钥通过 ssh 登录实例。

安全密钥对不同于 Amazon Web Services 访问键 ID 和安全密钥;后者可以从account information page上获得,用于在使用 API 向 Amazon Web Services

发出请求时惟一地识别用户。安全密钥对主要用于让用户能够安全地登录实例,而不需要使用密码。

可用区(Availability zones)

EC2 由位于不同地理位置的多个数据中心组成,这有助于应对故障。可以把自己启动的实例放在不同的位置。位置是地理区域,其中包含可用区。当前的 EC2 版本允许访问美国东部的一个区域,其中有三个可用区。Amazon 对一个区域中的每个可用区采取隔离措施,从而避免一个可用区中的故障影响其他可用区。

通过在不同的可用区中启动实例,可以避免应用程序受到在单一位置发生的故障的影响。如果在启动实例时没有指定可用区,Amazon 会根据当前的系统健康状态和能力自动选择可用区。

弹性 IP 地址

在 EC2 启动实例时,自动地为每个实例分配一个私有 IP 地址和一个公共 IP 地址。当然,可以使用公共 IP 地址通过 Internet 访问实例。但是,在每次启动实例时,这个地址都会变。如果使用某种动态 DNS 映射把 DNS 名称连接到 IP 地址,那么把变化传播到整个 Internet 花费的时间可能长达 24 小时。为了解决这个问题,EC2 引入了弹性 IP 地址的概念。弹性 IP 地址是与您的 EC2 账户相关联的静态 IP 地址,而不是与实例相关联;除非显式地把它释放回 EC2,它会一直与您的账户相关联。

还可以在实例之间重新映射弹性 IP 地址。因此,在任何实例出现故障时,只需启动另一个实例并重新映射它(或使用现有的实例),从而快速响应实例故障。在任何时候,只能有一个实例映射到弹性 IP 地址。

Elastic Block Store (EBS)

EBS 是 Amazon 创建的新型持久存储,可以用它创建卷,然后把卷作为块级设备连接到正在运行的一个实例。还可以从这些卷创建快照,以后可以从快照重新创建卷。每个快照代表一个卷在一个特定时间点的状态。一些文件和数据需要超过实例寿命的长期持久化;可以把它们存储在 EBS 卷上,然后可以把卷连接或重新连接到任何实例。

注意,在任何时候每个 EBS 卷只能连接到一个实例。但是,一个实例可以同时连接任意数量的卷。每个 EBS 卷位于一个可用区中。卷连接的实例必须在同一个可用区中。一个账户只能有最多 20 个 EBS 卷,但是如果需要使用更多的卷,可以请求 Amazon Web Services 提高限额。

EC2 入门

要想开始使用 EC2,首先需要创建一个Amazon Web Services 账户。本系列的第2 部分详细介绍了如何创建 Amazon Web Services 账户。创建账户之后,必须按照以下步骤为账户启用 Amazon EC2 服务:

1.登录 Amazon Web Services 账户。

2.导航到Amazon EC2。

3.选择页面右边的Sign Up For This Web Service。

4.提供必需的信息并完成注册过程。

与任何 Amazon Web Services 的所有通信都要通过 SOAP 接口或查询/REST 接口。在本文中,将使用查询/REST 接口与 EC2 通信。需要获得自己的访问键,可以通过在Web Services Account information页面上选择View Access Key Identifiers获得访问键。

现在设置了 Amazon Web Services 并为账户启用了 EC2 服务。

与 EC2 交互

对于这个示例,我们使用 Amazon 提供的命令行工具和第三方开放源码 Ruby 库right_aws 与 EC2 交互。在本文中,我们要:

?设置本地 EC2 开发环境。

?启动一个现有的 AMI。

?定制 AMI 以安装 right_aws 库和所需的其他软件。

?重新打包 AMI,把 AMI 上传给 S3,然后注册它。

?启动新的定制 AMI。

?通过在 Ruby shell 中运行代码片段熟悉 right_aws API。

设置本地 EC2 开发环境

Amazon EC2 工具需要Java?技术,所以要安装 Java。

1.下载Amazon EC2 AMI Tools和Amazon EC2 API Tools。

2.把工具存档文件解压到您选择的目录中。

3.需要设置一些环境变量并把工具目录添加到 shell 路径中,这样就可以

在执行命令行命令时找到它们。清单 1 给出一个示例。

下面的命令针对 Linux。如果您使用Microsoft? Windows?,可以改用等效的命令。可以从account information page下载 EC2 X.509 证书和

EC2 私有密钥文件。

清单 1. 设置 EC2 开发环境

$ export EC2_HOME=path_to_the_directory_with_the_tools

$ export JAVA_HOME=path_to_the_directory_with_your_java_sdk

# Add the directory to your PATH

$ export PATH=$PATH:$EC2_HOME/bin

# Export variables with the paths to your private key file and X.509

certificate

$ export EC2_PRIVATE_KEY=path_to_your_private_key

$ export EC2_CERT=path_to_your_x509_certificate

4.运行以下命令列出 EC2 命令行工具的版本,从而确认所有设置都是正确

的。

清单 2. 检查设置

$ ec2-ami-tools-version

1.3-20041 20071010

5.

6.需要创建在命令行 shell 中启动和连接实例所需的 SSH 密钥对。清单 3

中的命令创建一个新的密钥对,然后在屏幕上显示密钥对的名称、它的指

纹和私有密钥数据。

清单 3. 创建新的 SSH 密钥对

$ ec2-add-keypair devworks

KEYPAIR devworks

29:d1:90:7b:3d:a4:99:52:41:e0:1f:21:d5:20:97:d3:f0:33:fd:76

-----BEGIN RSA PRIVATE KEY-----

MIIEowIBAAKCAQEAyxaeXt6nb+qzboVW/3ax7An8CUJjDqwNi/PZm4lGOAzOHGnuPlDXeh1GpJ9f hky7Bg6VEY2VfS5G6UtmIzsGf/JlquzVl/x3uyriOzeCIw+m07aSgUOBn3qW/74IZxYYkxCYdBci eZeKpr8Mpvuz2sfurRzQOkUeHyuEaiD1RRS7DGxxUXfpVYhGjPltfNW2xRSMLTaOZzRwRdS0cHUU hC+GOKFDkp8nqQpd8iGUtp2G2DI1pxRN4MbeFZHWMh5tcIo1NTc7pkFPGEwrq6pO6gIsEOLqGpTL +2AxJY5WToZQoTWieOVwLpjJU9fnufRs0Mt/M/TP6SGK/YkrQOprOwIDAQABAoIBAFj1UGvX9dnl IbHAwInoUSlGelsH9GIB5XEvYFtr9xEoMsRpdk1flfNMjZwgn3Qxeh6+Fnf438lUkwUv3M6D1WYI

JJaJZUpM8ZlPwIcV2nBHM9k6+NOcYVQdG7VsZTvahusscssvMw+13KsLtpwSVwb3WsoDfAZ6LiaT Jk5in20hTiipC0pz0K9DgQ//76r20ysUFpCymj4EvQrRkk5kBtsiMixsJzimpUOrSmrRHcORKEin FKM6y/DFE33zhP8BNDQRaDLGni0Ip+/jP3EHmia41SSbnwzRcbXMfH5fL3KAyRsCE0ocHY+cjUng HPYxl1ffdLZuEW3wJDQFuTS/v4ECgYEA9r7HVVnrS2303zclzCTGen/W/SVbpflSKEYJOZpa8RtQ uFMOewfkTbBzfavLMVBYB8uAmcWIz5JAFSzlBaKDRCnouUeeDiDJVJd8Asbn1gCE8UVETUOthy50 R90RTtPNMmyP7AnoSMTuzsbwVORus7IJvceWHQBB4KCh652UansCgYEA0rSmvdquidkXf5iFpebc 6Wh/qy+L1dkgz7+HTZIMW7kxA4EfJFnqaQRPqJ5XYcLvk2IzxNQKJlZvtBhCfVYhPJ2uB2Yqxv0p 0LXGC01fZSyhbYGfaxVymA3HMc2ULBbaFMyhO7l7zkz+G+qkylych59zJBSoUxSFStpgNL7NhkEC gYAPJIorLMeJ64eZo1LIgoFDx1C0XHSRbQmjuxiZ1mU6YsjDZyV+W2+hbPDJh5+CuUGNyOlthnfs 9TbFlenAPMb9iezkYgbLKyvv6xQLP5W+xm1iOTQF4d9mam1sc566TblMHOmAPONqg9t8CS16qEI6 +PQsF3GY+gkQ9gq54QPYvQKBgDgwjsrQd30xVI/lV7a/Uyg3gtxe6JaVuadNN0LbcMpBH64EkA58 oANzb97SoxDiEEuog4+40CAbKtzHH2wXPPPSROeaOkwolS8gWnkHICp19XKjf6Tp6k5cVkOUxC/h xDSJwXGQ7FA+vgEp2NpSSjfssKLtk1ncfhNRGxjVzS9BAoGBALbBLS4Nbjs2Fco+okNQPNfJNSvW yWV7a6ngfRzW8B+BO6V1QRIR44bwv/Z74oQ7ttt8KoZENB5yzZwaVWpFlOjSO/4Nx++Ef4pY5aPS zNpXcXCZgUdA67qmOILvrG7bnDR60dcBZVBl7CjnpTlccg7MD4CBsFJx+hGRPD2yIV94

-----END RSA PRIVATE KEY-----

7.把输出中从 -----BEGIN RSA PRIVATE KEY----- 开始的部分保存到一个

本地文件中。这就是启动实例和用 SSH 访问实例所用的私有密钥。一定

要保证这个文件不被泄露,不丢失。如果使用这个密钥启动一个实例,以

后丢失了密钥,就无法再使用 shell 连接它。把密钥文件命名为

pk-devworks,修改文件的权限以提高安全性。

清单 4. 修改私有密钥文件的权限

$ chmod 600

pk-devworks

现在,开发环境已经设置好了。

启动第一个实例

现在,从 RightScale 提供的一个基于 CentOS 的公共映像启动第一个实例。这

个映像的 AMI ID 是 ami-d8a347b1。

清单 5. 启动实例

$ ec2-run-instances –k devworks -n 1 ami-d8a347b1

RESERVATION r-2691404f 710193521658 default

INSTANCE i-7f923516 ami-d8a347b1

pending

devworks 0 m1.small

2008/9/8 2:05:34

us-east-1c aki-9b00e5f2

刚启动的实例总是处于 pending 状态。因为这个实例仍然处于启动过程中,所以还不能访问它。在这种状态下,可以查看这个实例的相关信息:

?启动时间—以 UTC 形式显示的实例启动时间。

?实例类型—在启动时没有指定实例类型,所以 EC2 自动选择默认的m1.small 实例。

?可用区—在启动时没有指定可用区,所以 EC2 根据当前的系统健康状态和可用性选择一个可用区。

?内核—还显示这个实例使用的 Linux 内核。可以在启动时指定内核,也可以为 AMI 预先配置默认内核。

?安全组—这个实例放在 default 安全组中。可以创建安全组,向它们授予访问权限,把实例放在这些组中。必须在启动时指定安全组。实例启动之后,就无法改变组名,但是可以改变授予组的权限。

现在,可以列出正在运行的实例,检查它们当前的状态。

清单 6. 列出实例

$ ec2-describe-instances

RESERVATION r-2691404f 710193521658 default

INSTANCE i-7f923516 ami-d8a347b1

https://www.doczj.com/doc/013475411.html,

https://www.doczj.com/doc/013475411.html,pute-1.internal running

devworks 0

m1.small 2008-09-07T18:05:34+0000 us-east-1c

aki-9b00e5f

可以看到实例正在运行,还可以看到关于实例的更多信息,比如:

?公共 DNS 名称—可以使用这个 DNS 名称通过 Internet 连接这个实例。

?私有 DNS 名称—这个 DNS 名称用于在 Amazon 数据中心环境中的EC2 本地网络中解析这个实例。

使用 SSH 连接第一个实例

现在可以使用 SSH 连接实例,这需要使用私有密钥和实例的公共 DNS 名称。

清单 7. 使用 SSH 连接实例

$ ssh -i pk-devworks

root@https://www.doczj.com/doc/013475411.html,

The authenticity of host

'https://www.doczj.com/doc/013475411.html, (10.252.59.54)'

can't be established.

RSA key fingerprint is

ae:e5:00:54:75:65:1c:c5:44:53:72:b9:e0:b5:26:a9.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added

'https://www.doczj.com/doc/013475411.html,,10.252.59.54'

(RSA) to the

list of known hosts.

[root@domU-12-31-38-00-34-C8:~]

在登录之后,可能会看到一条错误消息,但是可以不理会它。这个 AMI 在启动之后要运行一些定制的 RightScale 脚本,但是没有找到它们。

定制实例和重新打包

RightScale AMI 非常全面,包含基本映像所需的所有内容。它已经包含安装在/home/ec2 目录中的 EC2 命令行工具。

1.添加安全证书。使用清单 1中使用的文件。

清单 8. 把证书复制到实例中

$ scp -i pk-devworks path_to_your_private_key_cert

root@https://www.doczj.com/doc/013475411.html,:/home/ec2/

$ scp -i pk-devworks path_to_your_x509_cert

root@https://www.doczj.com/doc/013475411.html,:/home/ec2/

2.

3.设置环境变量,从而使用它作为自己私有的 EC2 映像。编辑

/etc/profile.d/env.sh 文件并设置每个变量。账号和访问键可以从Web services account information页面获得,证书和私有密钥是前一步中

复制到实例的文件。

清单 9. 定制实例环境

$ vim /etc/profile.d/env.sh

export EC2_HOME=/home/ec2

export EC2_CERT=

export EC2_PRIVATE_KEY=

export AWS_ACCOUNT_NUMBER=

export AWS_ACCESS_KEY_ID=

export AWS_SECRET_ACCESS_KEY=

export PATH=$PATH:/home/ec2/bin/

# Turn off the rightscripts so you don’t get the error

on login.

$ chkconfig --level 4 rightscale off

# Change the login message

$ echo “Welcome to my devworks test EC2 image” >

/etc/motd

4.

5.这个映像已经安装了 Ruby,但是需要安装本文后面与 EC2 交互时要使用

的 Ruby 库。首先,更新安装的 gems,然后安装 right_aws gems 和所需的所有依赖项。

清单 10. 安装 Ruby gems

$ gem update

$ gem install right_aws

6.

7.现在可以重新打包这个实例,把它上传给 S3,向 EC2 注册它。首先,用

名称 devworks-ec2 重新打包它,忽略 /mnt 和 /tmp 文件夹。还必须指定 EC2 私有密钥、EC2 安全证书和 Amazon Web Services 账号。

清单 11. 重新打包实例

$ ec2-bundle-vol -d /mnt -c

/home/ec2/your_ec2_x509_cert

-k /home/ec2/your_ec2_private_key -u

your_aws_account_number

-e /mnt,/tmp -s 10240 -r i386 -p devworks-ec2

8.

9.重新打包过程将在 /mnt 目录中创建一批文件。把这些文件上传到 S3,

它们组成新创建的 AMI。映像将放在您指定的 bucket 中。把以下命令中的–b 参数替换为您希望存储映像文件的 bucket 的名称。

清单 12. 把映像上传到 S3

$ ec2-upload-bundle -b your_s3_bucket -m

/mnt/devworks-ec2.manifest.xml

-a your_aws_access_key -s your_aws_secret_key

10.

11.您的 AMI 现在存储在 S3 中了。然后需要向 EC2 注册它,从而获得 AMI

的 ID,以后可以使用这个 ID 启动映像。

清单 13. 向 EC2 注册映像

$ ec2-register -K /home/ec2/your_ec2_private_key

-C /home/ec2/your_ec2_x509_cert

your_s3_bucket/devworks-ec2.manifest.xml

IMAGE ami-58c42031

12.

13.退出 SSH 会话,终止正在运行的实例。

清单 14. 终止实例

$ ec2-terminate-instances i-7f923516

INSTANCE i-7f923516 running

shutting-down

在下一节中,将从刚创建的 AMI 启动一个新实例,本文后面使用这个实例和right_aws 库体验 EC2。

用 Ruby 体验 EC2

RightScale 提供一个 Ruby 库right_aws,可以使用它从 Ruby 访问 Amazon 的 EC2 服务。他们自己的产品也使用这个经过充分测试的库,这个库覆盖 EC2 的所有方面,包括最近引入的 EBS。这个库和 HTTP 库

RightScale:HttpConnection一起打包为一个 rubygem,具有健壮的重试和错误处理功能。本文只涉及这个库提供的一部分 EC2 功能。强烈建议您阅读库提供的文档,全面了解这个 API。您应该研究 right_aws 库和支持库

right_http_connection 的各个配置选项。

我们将使用 Rightscale::Ec2 类,它提供与 EC2 交互的主要接口。使用这个Ruby 库的中介是 irb 控制台。把消息发送给 Rightscale::Ec2 对象,然后查看 EC2 返回的响应消息。这有助于熟悉 API 和体验 EC2 概念。

1.从新的 AMI 启动一个实例。实例处于运行状态之后,使用 SSH 连接实例。

然后,开始在这个实例中使用 irb 控制台。

清单 15. 启动新实例并使用 SSH 连接它

$ ec2-run-instances -k devworks -n 1 ami-58c42031

RESERVATION r-5795443e 710193521658 default

INSTANCE i-1a9e3973 ami-58c42031 pending devworks 0

m1.small 2008-09-07T21:06:37+0000 us-east-1c aki-9b00e5f2

$ ec2-describe-instances

RESERVATION r-949544fd 710193521658 default

INSTANCE i-5a9d3a33 ami-58c42031

https://www.doczj.com/doc/013475411.html,

https://www.doczj.com/doc/013475411.html,pute-1.internal

running devworks 0 m1.small

2008-09-07T21:14:27+0000 us-east-1c aki-9b00e5f2

$ ssh -i pk-devworks

root@https://www.doczj.com/doc/013475411.html,

2.

3.启动 Ruby shell 并创建一个 Rightscale::Ec2 对象。

清单 16. 启动 Ruby shell 并创建新的 Rightscale::Ec2 对象

$ irb

irb(main):001:0> require 'rubygems'

=> true

irb(main):002:0> require 'right_aws'

=> true

irb(main):003:0> @ec2 = Rightscale::Ec2.new(

ENV['AWS_ACCESS_KEY_ID'],

ENV['AWS_SECRET_ACCESS_KEY'])

在此之后,使用刚创建的变量@ec2体验 EC2。这个示例使用库的默认配置。可用配置选项的列表见文档。

1.获取实例的列表,这会返回一组散列,提供每个实例的相关信息。这个库

的几乎所有 API 调用都产生这种格式的响应。清单 17 给出一个示例。

清单 17. 描述实例

irb(main):004:0> @ec2.describe_instances()

=>

[{:aws_launch_time=>"2008-09-07T21:14:27.000Z", :aws_kernel_id=

>"aki-9b00e5f2",

:ssh_key_name=>"devworks", :aws_reservation_id=>"r-949544fd",

:aws_availability_zone=>"us-east-1c",

:aws_state=>"running", :aws_instance_id=>"i-5a9d3a33", :aws_gro

ups=>["default"],

:aws_image_id=>"ami-58c42031",

:aws_product_codes=>[], :dns_name=>"https://www.doczj.com/doc/013475411.html,pute-1

https://www.doczj.com/doc/013475411.html,",

:aws_state_code=>"16",

:private_dns_name=>"https://www.doczj.com/doc/013475411.html,pute-1.internal", :aws_instance_type=>"m1.small",

:aws_reason=>"", :ami_launch_index=>"0"}]

2.

3.获取映像的列表。

清单 18. 描述映像

irb(main):005:0>

@ec2.describe_images_by_owner([ENV['AWS_ACCOUNT_NUMBER']])

=> [{:aws_location=>"ylastic_images/devworks-ec2.manifest.xml", :aws_kernel_id=>"aki-9b00e5f2", :aws_state=>"available", :aws_

is_public=>false,

:aws_architecture=>"i386", :aws_id=>"ami-58c42031", :aws_image_ type=>"machine"}]

4.

5.创建一个安全组,可以使用它放置实例和限制或授予访问权。

清单 19. 创建一个新的安全组并列出组

irb(main):006:0> @ec2.create_security_group("devworks",

"Devworks Article Security Group")

=> true

irb(main):008:0> @ec2.describe_security_groups()

=> [{:aws_group_name=>"devworks", :aws_description=>"Devworks Article Security

Group",

:aws_perms=>[]}]

6.

7.创建一个新的安全密钥对并列出账户中的所有密钥对。

清单 20. 创建新的安全密钥对并列出密钥对

irb(main):018:0> @ec2.create_key_pair('mykeypair')

=> {:aws_key_name=>"mykeypair",

:aws_fingerprint=>"c6:62:22:9e:99:05:6a:17:13:06:e0:86:f9:55:2a :78:ff:99:6b:fa",

:aws_material=>"-----BEGIN RSA PRIVATE KEY-----

\nMIIEpAIBAAKCAQEAyRdAvihBXDu30o2uvQ1h8xdIRLHs0RjQWK4Yw5Y5DkaS4 1EEjnDwjO6sEY5l\n

IXSuzVj1nkZ1VMPuVR3hIXHCMJLaAO77TaXZVC9yymIUAyTcQ1+hoVLlrCuVI3d EY21WQNTEbtkI\nlI

xMW+UhkiaKrGHmt2yYLjr754KGt7pNCpRwxPXB7brlpQ3qpapkr7XrKZppvWoG8 MCmPIFx8P0K\no8Cd

mnF9lEdns6uaJZmfs4Ls9HZHpsmn0r42GbOAkJEkj7nE5zc3rXYpmCBZhjyHus0 iXjS/n9oL\nHWhV0a

wagjvmsQgJPYqEsBeO5pDb2IOZq5okQie1YJTd1m8k8k7m9wIDAQABAoIBAQCK0 lWssOem\nP8fAQHVg

J+v1wJ3wZpBhLWsvvUh1RbCvzUK8UQL/PrKh6Ga7W/0u4nmGY6J0mJmJYhWXhyA TUZBI\nrih3uoOccC

Eff/4T/y9nmDvC+zL+xtatTA0SRdTdeu6vpPLSv1uwCUbxrbXGSnszVAbNm9dXG vsq\nMK7GCYQEB4p4

FtJolDqGZdWAj1u5/AGjbCI+PbkbCAro55Sqnl95WAlogdQFmgxljWl9TEIsbrH f\nYZHtKHlm1lvyeB

QdVmwLT9S7ufI1J/GAevRxrG2iEkx/IJWYGnQE0P2bXa6Ry90UyvWRPS6Zi/MD\ nfWoFAxnB6Ryssr+S

IAfpG6SGuM55AoGBAOr7yPcvg/66f/Xd3CbpmI8lIfsXBb9xki3pIEfYAWD/\n2 ToxpRYPTgrwwB1ufo

NPr7U1QfzJvAvlTXWkfp4oUnssi5sXw1okZmm01hT0j0FNvsgMG6zD8Z/9\nmgr VrH+tBxVoYqrPM/WB

dnYhQXEGQq+UF2uPqoKDbsl3DkftXTBrAoGBANsTdLfHmRidkLCRKfSj\nUrbJO SsU6RWGFuoqgD+DZL

ngKBTaBTd6TVONSR2JvpVJo5hyiAXQ/jQ1XtsPAuJR6fiiRvDfgF7j\n1lp1tsF pNYx2R4+eqoLrHgIC

Ak1Ke8tWyoD3NgQ4FO9TDfW+QHn0dpLeWdNMUd2a1GVKp4hIoJal\nAoGBAITqM ryO5eyZ9XNPMQ3Zp+

+gI15xoVCunu7VJOs+ZVlGnsrp9eVKdux9TU3YiDsiQdMP8ulX\n+sQHyg63It+ 3EyCVC8qIYHmGiV9V

aJql0rovjbB+GNFabDwBKLbkMhRt/MnBJ75SQaOmvSkImomh\n7up9q9mtg9cbH PlcHHnW65VNAoGAKi

+Y7jrVVFQjJJ0PgzhgGSqug4lHSQnFJ9p/T7uxjcmIblt9\nXa2Dbm9qgPGhbYX 8psKHRvdzvAH6/hvp

5kL31xUIrCGdyqf9AvZf9uaXlTDBnvpiw0sbQC+62b9a\nD1HrNOJl2HIkNeG8c nHsYI+etbFzgqjTqu

TBua+iiy/RHLECgYALIDqaAcd7o4V+ws+WG1G9vTlc\nJ6/sBpu3JyKMSdJYlbg IbvHgrfbKhEYuNh/H

XNdrI6oeW9eAruqHlH+OlUx0tCg4VIeQsz/b7kPS\nY14OMAswuHHyqlZIqK4Xy /R6SQmsc/CUXWPk5I

UesJk5f1V1NXIqqwv6+nlEucdjgYUd5w==\n-----END RSA PRIVATE

KEY-----"}

irb(main):020:0> @ec2.describe_key_pairs()

=> [{:aws_key_name=>"mykeypair",

:aws_fingerprint=>"c6:62:22:9e:99:05:6a:17:13:06:e0:86:f9:55:2a :78:ff:99:6b:fa"}]

8.

9.创建一个新的 EBS 卷。指定这个卷的可用区为 us-east-1c。创建之后,

这个卷只能连接到在同一可用区中运行的实例。卷最初处于“creating”

状态。创建过程完成之后,卷将处于“available”状态。

清单 21. 创建新的 EBS 卷并列出卷

irb(main):024:0> @ec2.create_volume('', 1, 'us-east-1c')

=> {:aws_status=>"creating", :aws_created_at=>Mon Sep 08 00:29:35 UTC 2008,

:zone=>"us-east-1c", :aws_size=>1, :snapshot_id=>nil, :aws_id=> "vol-2f34d146"}

irb(main):026:0> @ec2.describe_volumes()

=> {:aws_status=>"available", :aws_created_at=>Mon Sep 08

00:29:35 UTC 2008,

:zone=>"us-east-1c", :aws_size=>1, :snapshot_id=>nil, :aws_id=> "vol-2f34d146"}

10.

11.把这个卷作为块设备 /dev/sdj 连接到当前实例并用 ext3 文件系统进

行格式化,这样就可以实际使用它了。

清单 22. 连接新的 EBS 卷并建立文件系统

irb(main):031:0> @ec2.attach_volume('vol-2f34d146',

'i-5a9d3a33', '/dev/sdj')

=> {:aws_instance_id=>"i-5a9d3a33", :aws_device=>"/dev/sdj", :aws_attachment_status=>"attaching", :aws_id=>"vol-2f34d146", :aws_attached_at=>Mon Sep 08 00:34:03 UTC 2008}

$ mkfs.ext3 /dev/sdj

mke2fs 1.39 (29-May-2006)

/dev/sdj is entire device, not just one partition!

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

131072 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

16384 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

12.

13.把刚格式化的块设备挂装到一个文件系统文件夹。

清单 23. 把卷挂装到本地目录并使用它

$ mount /dev/sdj /mnt/my-vol

$ echo “Hello Devworks” > /mnt/my-vol/test.txt

# cat /mnt/my-vol/test.txt

Hello Devworks

现在,可以像系统上的其他任何块设备一样使用这个 EBS 卷。可以读写这个卷。使用完之后,可以让卷脱离正在运行的实例,以后可以把它重新连接到另一个实例或同一个实例。这种持久存储可以提高 EC2 的效用。在许多方面都可以使用这种资产,比如存储数据库数据和 Web 服务器日志等需要超过实例寿命长期存在的数据。

可以创建 EBS 卷的快照,快照包含卷在一个特定时间点的内容。快照本身自动存储在 S3 上,由 EC2 以累积方式创建。卷的第一个快照是完整的拷贝,但是以后的快照只存储更改集。当前,每个 Amazon Web Services 账户最多只能有500 个快照。如果需要保留更多的快照,可以请求提高账户限额。

清单 24. 从 EBS 卷创建快照

irb(main):007:0> @ec2.create_snapshot('vol-2f34d146')

=>

{:aws_status=>"pending", :aws_volume_id=>"vol-2f34d146",

:aws_started_at=>Mon Sep 08 00:49:15 UTC

2008, :aws_progress=>"",

:aws_id=>"snap-13db3c7a"}

EC2 在后台创建快照。可以定期列出自己的所有快照,从而确认快照创建过程已经成功完成。

清单 25. 列出 EBS 快照

irb(main):008:0> @ec2.describe_snapshots()

=>

[{:aws_status=>"completed", :aws_volume_id=>"vol-2f34d146",

:aws_started_at=>Mon Sep 08 00:49:15 UTC

2008, :aws_progress=>"100%",

:aws_id=>"snap-13db3c7a"}]

最后,可以让卷脱离实例。以后可以把它重新连接到同一个实例或另一个实例。

清单 26. 脱离 EBS 卷

irb(main):006:0> @ec2.detach_volume('vol-2f34d146')

=> {:aws_instance_id=>"i-5a9d3a33", :aws_device=>"/dev/sdj",

:aws_attachment_status=>"detaching", :aws_id=>"vol-2f34d146",

:aws_attached_at=>Mon Sep 08 00:34:03 UTC 2008}

结束语

本文介绍了 Amazon 的 EC2 服务及其基本概念。了解了 right_aws(一个用于与 EC2 交互的开放源码 Ruby 库)提供的一些功能。我们讨论了许多内容,但是 EC2 是一个非常大的复杂主题。强烈建议您通过 Amazon EC2 开发人员指南了解更多信息。

这个“用 Amazon Web Services 进行云计算”系列的第 4 部分讨论如何使用 Amazon Simple Queue Service (SQS) 在云中进行可靠的消息传递。

参考资料

学习

?阅读本系列的其他部分:

o第 1 部分“简介:选择租用而不是购买”

o第 2 部分“用 Amazon Simple Storage Service (S3) 在云中存储数据”

o第 4 部分“用 SQS 进行可靠的消息传递”

o第 5 部分“用 SimpleDB 在云中处理数据集”

?了解各种 Amazon Web Services 的相关信息:

o Amazon Simple Storage Service (S3)

o Amazon Elastic Compute Cloud (EC2)

o Amazon Simple Queue Service (SQS)

o Amazon SimpleDB (SDB)

o Service Health Dashboard由 Amazon 团队负责更新,提供每个服务的当前状态。

o博客及时提供 Amazon Web Services 的最新动态。

?注册一个 Amazon Web Services 账户。

?可以在 Amazon Public Grid 中使用OpenSolaris。

?Amazon Web Services Developer Connection提供开发人员需要的所有参考资料。

?Amazon Web Services 团队在EC2 技术资源上为开发人员提供技术文档、用户指南和其他参考资料。

?EC2 开发人员指南提供 EC2 服务的各个组件的相关信息,以及高级使用方法和配置。

?在 AWS Developer Connection 网站上可以找到所有Amazon Machine Images的列表。

?Amazon 提供几个帮助创建和管理映像的命令行工具。

?在Web 服务帐户信息页面上,可以管理密钥和证书、重新生成它们、查看账户活动和使用情况报告以及修改个人信息。

?使用Simple Monthly Calculator工具计算 EC2 和其他 Amazon Web Services 的每月使用成本。

?在developerWorks 上的体系结构专区寻找提高体系结构方面的技能所需的参考资料。

?在技术书店浏览关于这些主题和其他技术主题的图书。

获得产品和技术

?下载IBM 产品评估版,试用这些来自DB2?、Lotus?、Rational?、Tivoli? 和WebSphere?的应用程序开发工具和中间件产品。

讨论

?参与developerWorks blogs并加入developerWorks 社区。

关于作者

Prabhakar Chaganti 是 Ylastic 的 CTO,这家创业公司正在构建一

个对用户的整个 AWS 云计算环境(EC2、S3、SQS 和 SimpleDB)进行体系结构设计、管理和监视的统一界面。他是两本新书Xen Virtualization和GWT Java AJAX Programming的作者。他还在 VMware Global Virtual Appliance Challenge 上获得了社区评选的最具创意 Virtual Appliance 奖。

亚马逊的弹性计算云

云计算实例分析:亚马逊的弹性计算云 第1页:开放的服务 亚马逊是互联网上最大的在线零售商,但是同时也为独立开发人员以及开发商提供云计算服务平台。亚马逊将他们的云计算平台称为弹性计算云(ElasticComputeCloud,EC2),它是最早提供远程云计算平台服务的公司。 开放的服务 与Google提供的云计算服务不同,Google仅为自己在互联网上的应用提供云计算平台,独立开发商或者开发人员无法在这个平台上工作,因此只能转而通过开源的Hadoop软件支持来开发云计算应用。亚马逊的弹性计算云服务也和IBM 的云计算服务平台不一样,亚马逊不销售物理的云计算服务平台,没有类似于“蓝云”一样的计算平台。亚马逊将自己的弹性计算云建立在公司内部的大规模集群计算的平台之上,而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例(Instance),而付费方式则由用户的使用状况决定,即用户仅需要为自己所使用的计算平台实例付费,运行结束后计费也随之结束。 弹性计算云从沿革上来看,并不是亚马逊公司推出的第一项这种服务,它由名为亚马逊网络服务的现有平台发展而来。早在2006年3月,亚马逊就发布了简单存储服务(SimpleStorageService,S3),这种存储服务按照每个月类似租金的形式进行服务付费,同时用户还需要为相应的网络流量进行付费。亚马逊网络服务平台使用REST(RepresentationalStateTransfer)和简单对象访问协议(SOAP)等标准接口,用户可以通过这些接口访问到相应的存储服务。 2007年7月,亚马逊公司推出了简单队列服务(SimpleQueueService,SQS),这项服务使托管主机可以存储计算机之间发送的消息。通过这一项服务,应用程序编写人员可以在分布式程序之间进行数据传递,而无须考虑消息丢失的问题。通过这种服务方式,即使消息的接收方还没有模块启动也没有关系。服务内部会缓存相应的消息,而一旦有消息接收组件被启动运行,则队列服务将消息提交给相应的运行模块进行处理。同样的,用户必须为这种消息传递服务进行付费使用,计费的规则与存储计费规则类似,依据消息的个数以及消息传递的大小进行收费。 在亚马逊提供上述服务的时候,并没有从头开始开发相应的网络服务组件,

亚马逊云服务收费明细

亚马逊云服务收费明细 亚马逊的云服务已经商业化运营多年,它的价格水平和价格结构会根据市场反映和自身期望不断进行调整,从它现在不断增加的客户数量来看,亚马逊云服务的价格是为市场所认可的。 亚马逊的云计算服务品牌是AWS(Amazon Web Sevices),其中包含了众多的细分产品服务,满足不同用户的需求,“计算能力”服务是其中最主要的细分服务,它向用户提供伸缩性强高性能的计算能力,满足用户的数据计算和数据吞吐需求。“计算能力”服务包括Elastic Computer Cloud (EC2)、Amazon Elastic MapReduce、Auto Scaling。媒体文章上所说的亚马逊云服务主要是指EC2。 亚马逊的EC2数据中心在全球共有5个。美国有两个,分别是东部的弗吉尼亚和西部的北加利福尼亚。欧洲有一个,在爱尔兰。亚太地区还有两个,分别在东京和新加坡。EC2服务的价格幅度因云计算数据中心所处地区不同会有差别,其中以东京的最贵,新加坡的最便宜。 EC2服务的报价分四个方面:计算实例、数据传输、存储、其他增值服务。前三类构成了IaaS的主要内容,相当于客户IT部门的服务器、带宽接入和存储网络。 计算实例 所谓计算实例,是指亚马逊定义的“逻辑上的计算机”。客户租用这样一台“逻辑上的计算机”,也就可以使用这台计算机上标称配置的计算资源,包括CPU、内存、硬盘、I/O 总线等。 亚马逊提供了11款不同配置的“逻辑上的计算机”,即计算实例,供客户挑选租用,按照不同配置有不同的租金。以下列举的是其中三种有代表性的计算实例:

表格1 三款有代表性的亚马逊EC2计算实例配置 另外,根据租用方式不同,同一款配置的租金也会有很大差别。亚马逊向客户提供三种租用方式:按需租用、预留租用、现场租用。 按需租用(On-Demand),客户完全依据租用的时间就交纳使用金,以每小时为一个计价单位,除此之外没有其他费用。这种租用方式适合需要频繁调整计算资源规模的客户。采用这种方式,客户可以不必过多考虑头疼的IT资源购置计划,将一次性购买的大块费用拆散成为多次购买的零散费用。 预留租用(Reserved),客户另付一笔预留金并承诺使用1年或者3年EC2服务,在承诺使用EC2服务的期间,依据租用的时间就交纳相对低廉的使用金,使用金只有“按需租用”方式的45%,同样以每小时为一个计价单位。 现场租用(Spot)。这种租用方式是针对亚马逊的闲置计算资源设计的,在价格的设置上比较有意思。这种方式下并没有固定的租用价格,亚马逊会根据目前资源的充足情况以及客户需求的强烈程度设定一个“现场价格”,并且随时调整。客户可以根据过往的价格信息以及自身预算给出一个心理价格。如果这个价格高于“现场价格”,客户就可以以这个价格一直租用亚马逊的计算资源,直到“现场价格”上涨超过当前租用价格,或者客户决定不再继续租用。 数据传输 客户租用计算实例的同时,也需要租用EC2的网络连接服务传输数据,该服务按照流量收取费用。使用不同连接线路传输数据,该费用价格会有差异。连接线路分为三种:互联网连接、数据中心之间以及可用性区域之间。 互联网连接的数据传输费用以数据吞吐量(GB)作为计价单位收费,按月结算,这部分占EC2数据传输总收入比重最大。互联网上的大部分服务的上下行流量都是不对等的,下行流量远高于上行流量。对应到EC2的数据吞吐,就是数据传出的流量远高于传入的流量。基于这个情况,亚马逊在数据传输价格上特别做了设计。首先是区分了数据传输是传出还是传入,分别计价,传出的单价要显著高于传入的单价,尽量使销量大的产品同时还能维持着较高的价格,从而提高整体销售的利润率;其次,在数据传出的单价上作了“阶梯价格”的设计,传出数据流量越大,单价越便宜,以鼓励客户多购买数据传输服务;最后,为了培育市场,吸引更多新客户尝试使用EC2服务,低于1GB的数据传出流量是免费的。

亚马逊商业模式分析

亚马逊的商业模式分析 一、亚马逊简介 亚马逊公司(纳斯达克代码:AMZN)是一家“财富500强”公司,总部位于西雅图,成立于1995年7月,目前已成为全球商品种类最多的网上零售商。亚马逊致力于成为全球 最“以客户为中心”的公司,使客户能在公司网站上找到和发现任何他们想在线购买的商品,并努力为客户提供最低的价格。亚马逊和其他卖家提供数百万种独特的全新、翻新及二手商品,类别包括图书、影视、音乐和游戏、数码下载、电子和电脑、家居和园艺用品、玩具、婴幼儿用品、杂货、服饰、鞋类、珠宝、健康和美容用品、体育、户外用品、工具、以及汽车和工业产品等。 亚马逊云计算服务(Amazon Web Services)为亚马逊的开发人员提供基于其自有的后端技术平台的云基础架构服务。开发人员利用该技术平台可以实现几乎所有类型的业务。最新一代Kindle是迄今为止最轻、最便携的Kindle产品,采用最先进的6英寸电子墨水 显示器,即便在强烈的阳光下也能提供如纸质书般的阅读体验。Kindle Touch是Kindle 家族新成员,在兼备最先进的电子墨水技术全部优点的同时,其触摸屏设计让翻页、搜索、购物和记录等功能更加易用。Kindle Touch 3G是最高端的电子阅读器,拥有与Kindle Touch相同的设计和功能,而免费的3G服务则让其具有无可比拟的便捷性。Kindle Fire 是Kindle家族的新成员,支持电影、电视、音乐、书籍、杂志、应用软件、游戏以及网页浏览等多种功能,并可享受亚马逊的免费云存储服务,同时还应用了Whispersync技术、Amazon Silk浏览器(亚马逊最新推出的革命性云加速浏览器),并具备色彩生动的触摸屏和强大的双核处理器。 二、关于亚马逊中国 亚马逊中国(https://www.doczj.com/doc/013475411.html,)是全球领先的电子商务公司亚马逊在中国的网站。秉承“以客户为中心”的理念,亚马逊中国承诺“天天低价,正品行货”,致力于从低价、选品、便利三个方面 为消费者打造一个百分百可信赖的网上购物环境。 作为一家在中国处于领先地位的电商,亚马逊中国为消费者提供图书、音乐、影视、手机数码、家电、家居、玩具、健康、美容化妆、钟表首饰、服饰箱包、鞋靴、运动、食品、母婴、户外和休闲等32大类、上千万种的产品,通过“货到付款”等多种支付方式,为中国消费者提供便利、快捷的网购体验。 亚马逊中国拥有业界公认世界一流的运营网络。目前有15个运营中心,主要负责厂商收货、仓储、库存管理、订单发货、调拨发货、客户退货、返厂、商品质量安全等。同时,亚马逊中国还拥有自己的配送队伍和客服中心,为消费者提供便捷的配送及售后服务。

AWS_亚马逊_会议总结

Amazon Web Services 会议总结简要 1AWS服务概览 2AWS存储服务 3AWS计算服务和网络 4AWS管理的服务和数据库 5AWS部署和管理 1 AWS服务概览 ?基本服务 ◆Amazon S3(Simple Storage Service) ◆Amazon EBS(Elastic Block Store) ◆Amazon EC2(Elastic Compute Cloud) ◆Amazon VPC(Virtual Private Cloud) ◆Amazon IAM(Identify and Access Management) ?客户为什么使用AWS ◆敏捷性 ◆平台功能的广度和深度(10区域26可用区52边缘站点) ◆持续的迭代和创想 ◆成本节省和灵活性(以可变费用取代固定资产嵌入规模经济让企业成本更低) ◆帮助中国客户数分钟走向国外(各种定价模式支持变化和稳定的工作负载模型,当 企业的规模增长时有更低的价格)

灵活基础服务架构 ? AWS 针对大企业的更新 ◆ 经验 ◆ 功能广度和深度 ◆ 创新的步伐 ◆ 全球业务 ◆ 价格理念 2 AWS 存储服务 主要选项 Amazon S3(Simple Storage Services)重点介绍 Amazon EBS(Elastic Block Store) Amazon Glacier AWS Storage Gateway AWS Import/Export S3特点 适用于换联网的存储服务本地联机 HTTP 访问 随时随地从WEB 存储和检索任意量的数据 高耐久 高扩展 可靠 快速 客户 更多的使用 应基础设 价格

如何使用亚马逊IOT云平台

Overview The AWS IoT device SDK for embedded C is a collection of C source files which can be used in embedded applications to securely connect to the AWS IoT platform. It includes transport clients MQTT, TLS implementations and examples for their use. It also supports AWS IoT specific features such as Thing Shadow. It is distributed in source form and intended to be built into customer firmware along with application code, other libraries and RTOS. For additional information about porting the Device SDK for embedded C onto additional platforms please refer to the PortingGuide. Features The Device SDK simplifies access to the Pub/Sub functionality of the AWS IoT broker via MQTT and provide APIs to interact with Thing Shadows. The SDK has been tested to work with the AWS IoT platform to ensure best interoperability of a device with the AWS IoT platform. MQTT Connection The Device SDK provides functionality to create and maintain a mutually authenticated TLS connection over which it runs MQTT. This connection is used for any further publish operations and allow for subscribing to MQTT topics which will call a configurable callback function when these topics are received. Thing Shadow The Device SDK implements the specific protocol for Thing Shadows to retrieve, update and delete Thing Shadows adhering to the protocol that is implemented to ensure correct versioning and support for client tokens. It abstracts the necessary MQTT topic subscriptions by automatically subscribing to and unsubscribing from the reserved topics as needed for each API call. Inbound state change requests are automatically signalled via a configurable callback.

亚马逊云服务价格(中文)

亚马逊云服务的价格策略 亚马逊的云服务已经商业化运营多年,它的价格水平和价格结构会根据市场反映和自身期望不断进行调整,从它现在不断增加的客户数量来看,亚马逊云服务的价格是为市场所认可的。 亚马逊的云计算服务品牌是AWS(Amazon Web Sevices),其中包含了众多的细分产品服务,满足不同用户的需求,“计算能力”服务是其中最主要的细分服务,它向用户提供伸缩性强高性能的计算能力,满足用户的数据计算和数据吞吐需求。“计算能力”服务包括Elastic Computer Cloud (EC2)、Amazon Elastic MapReduce、Auto Scaling。媒体文章上所说的亚马逊云服务主要是指EC2。 亚马逊的EC2数据中心在全球共有5个。美国有两个,分别是东部的弗吉尼亚和西部的北加利福尼亚。欧洲有一个,在爱尔兰。亚太地区还有两个,分别在东京和新加坡。EC2服务的价格幅度因云计算数据中心所处地区不同会有差别,其中以东京的最贵,新加坡的最便宜。 EC2服务的报价分四个方面:计算实例、数据传输、存储、其他增值服务。前三类构成了IaaS的主要内容,相当于客户IT部门的服务器、带宽接入和存储网络。 计算实例 所谓计算实例,是指亚马逊定义的“逻辑上的计算机”。客户租用这样一台“逻辑上的计算机”,也就可以使用这台计算机上标称配置的计算资源,包括CPU、内存、硬盘、I/O 总线等。 亚马逊提供了11款不同配置的“逻辑上的计算机”,即计算实例,供客户挑选租用,按照不同配置有不同的租金。以下列举的是其中三种有代表性的计算实例:

表格1 三款有代表性的亚马逊EC2计算实例配置 另外,根据租用方式不同,同一款配置的租金也会有很大差别。亚马逊向客户提供三种租用方式:按需租用、预留租用、现场租用。 按需租用(On-Demand),客户完全依据租用的时间就交纳使用金,以每小时为一个计价单位,除此之外没有其他费用。这种租用方式适合需要频繁调整计算资源规模的客户。采用这种方式,客户可以不必过多考虑头疼的IT资源购置计划,将一次性购买的大块费用拆散成为多次购买的零散费用。 预留租用(Reserved),客户另付一笔预留金并承诺使用1年或者3年EC2服务,在承诺使用EC2服务的期间,依据租用的时间就交纳相对低廉的使用金,使用金只有“按需租用”方式的45%,同样以每小时为一个计价单位。 现场租用(Spot)。这种租用方式是针对亚马逊的闲置计算资源设计的,在价格的设置上比较有意思。这种方式下并没有固定的租用价格,亚马逊会根据目前资源的充足情况以及客户需求的强烈程度设定一个“现场价格”,并且随时调整。客户可以根据过往的价格信息以及自身预算给出一个心理价格。如果这个价格高于“现场价格”,客户就可以以这个价格一直租用亚马逊的计算资源,直到“现场价格”上涨超过当前租用价格,或者客户决定不再继续租用。 数据传输 客户租用计算实例的同时,也需要租用EC2的网络连接服务传输数据,该服务按照流量收取费用。使用不同连接线路传输数据,该费用价格会有差异。连接线路分为三种:互联网连接、数据中心之间以及可用性区域之间。 互联网连接的数据传输费用以数据吞吐量(GB)作为计价单位收费,按月结算,这部分占EC2数据传输总收入比重最大。互联网上的大部分服务的上下行流量都是不对等的,下行流量远高于上行流量。对应到EC2的数据吞吐,就是数据传出的流量远高于传入的流量。基于这个情况,亚马逊在数据传输价格上特别做了设计。首先是区分了数据传输是传出还是传入,分别计价,传出的单价要显著高于传入的单价,尽量使销量大的产品同时还能维持着较高的价格,从而提高整体销售的利润率;其次,在数据传出的单价上作了“阶梯价格”的设计,传出数据流量越大,单价越便宜,以鼓励客户多购买数据传输服务;最后,为了培育市场,吸引更多新客户尝试使用EC2服务,低于1GB的数据传出流量是免费的。

国内外知名的云计算平台简介 .doc

国内外知名的云计算平台简介 中国互联网也已经发展十几年,很多用户都已经将自己的服务部署在国内平台之上,随着云计算的到来,不少用户希望将服务构建在诸如新浪和阿里巴巴等平台之上。 对于国内外云计算在发展方面的差异,以及当前国内外云计算发展的现状,盛大云弹性计算部副总监杜海给出了简单的解释,他认为差异化主要表现在两个方面:1、国内外云计算市场的成熟程度不同;2、用户对云计算和云产品的认知和使用存在差异。 新浪云计算首席架构师丛磊认为,国内外云计算的发展模式大同小异,都是从探索到最终走向成熟。丛磊将云计算的发展分为了初级、中级和高级阶段。目前国外的Iaas平台更加成熟,云平台已经进入到了正轨,而且是走在了商业化的前面,应该说属于中期阶段。国外的创业者一开始创业就会想到使用亚马逊的平台,足以证明这个平台的完善性和较高的用户接受度。 国内的云计算发展正处在一个逐步完善、走向商业化的成长阶段,算是初级阶段。距离完全商业化运营的高级阶段还有一定的时间距离。当前要做的事情就是联合业界的平台商共同推动行业的发展,而不是各自为政,只有行业足够大,大家才能够有更多的利润空间。阿里云计算业务总经理陈金培认为,目前国外真正大规模商用的云计算平台就是亚马逊,谷歌云服务还不成规模。云服务模式上没有本质的差别,阿里云和亚马逊都是采用互联网服务模式,用户只要登录互联网就可以选择并接入云服务。另外根据用户习惯的不同以及本

地带宽和基础设施的差异,平台的计费模式会略有不同。 就阿里云而言,和国外的亚马逊云平台最大的不同就是技术模式上的不同,立足本地化,全方位的满足中国用户的实际需求。[page] 百体国际健康机构CTO李博:目前国内各个云平台都在起步阶段IT培训。差异虽然有,但是不大。同时他也认为无论方向如何,首先重视开发者、团队整体技术能力强是最重要的。对于国内云计算平台的发展,除非政策改变,否则国外云平台在国内完全没有竞争力。作为用户来讲,也想用强大的Amazon,但是我们的网速、我们的各种条条框框,IT培训机构使这个梦想完全变成了只是梦想。 对比国内和国外的云计算平台服务的差异,百体国际健康机构CTO 李博认为:目前除了国内云平台在速度上和政策上有优势外,在本质上完全没有可比性。与Amazon这样的巨头相比,我们落后得不是一点半点。 够快网络蒋烁淼表示:国内云平台各自差异还是比较大的,其中阿里是专心的做云计算平台,而盛大除了做云计算平台之外,还自己开发了很多的产品。阿里云是从他们底层的分布式操作系统飞天衍化而来,而盛大可能是学习美国Amazon部署的。目前国内云计算的不足之处是一方面产品还有很大的改善和提升的空间,另一方面计费的方式方法还比如国外的更灵活,更弹性。 在谈到国内外云平台的优劣时,够快网络蒋烁淼表示:国外云平台最大的问题可能还是带宽以及成本方面,目前看国外的云平台如

Google云计算与Amazon云计算对比

Amazon 与Google 云计算 1. Amazon 1.1.基础架构和服务 客户请求 网页渲染组件 …… 聚集服务 Dynamo 实例其他数据存储 图1 面向服务的Amazon 平台架构 图1显示了Amazon 平台的抽象架构,动态网页的内容是由页面呈现组件生成,该组件进而查询许多其他服务。一个服务可以使用不同的数据存储来管理其状态,这些数据存储仅在其服务范围才能访问。有些服务作为聚合器使用其他一些服务,可产生合成(composite)响应。通常情况下,聚合服务是无状态,虽然他们利用广泛的缓存。 从图1中可知,Dynamo 是Amazon 云计算平台中处于最底层的存储架构,不直接向公众提供服务,但是为整个平台及服务提供最基础的支持。S3就是建立在Dynamo 之上,SimpleDB 也极有可能使用或者借鉴了Dynamo 技术。 Amazon 以Web 服务的形式将云计算产品提供给用户。Amazon Web Services

(AWS)是这些服务的总称。目前AWS提供的服务产品如表1所示。 Amazon EC2属于IaaS(基础设施即服务)。EC2使用Xen虚拟化技术。每个虚拟机,又称作实例,能够运行小、大、极大三种能力的虚拟私有服务器。Amazon利用EC2 Compute Units去分配硬件资源。 EC2简言之。他完全是一部具有无限采集能力的虚拟计算机,用户能够用来执行一些处理任务。然而“无限”并不不意味“无边际”,相反,他是具有上限的。亚马逊的文献阐明,你能同时租用“上百,甚至数以万计”虚拟机。 2.Google GAE 由于发布S3和EC2这两个优秀的云服务,使得Amazon已经率先在云计算市场站稳了脚跟,而身为云计算这个浪潮的发起者之一的Google肯定不甘示弱,并在2008年四月份推出了Google App Engine这项PaaS服务,虽然现在无法称其为一个革命性的产品,但肯定是现在市面上最成熟,并且功能最全面的PaaS

亚马逊AWS的云计算服务有哪些优势

亚马逊AWS的云计算服务有哪些优势 亚马逊AWS作为云计算服务的领军者,AWS对SaaS解决方案的设计提供了一些云计算服务最佳实践。 亚马逊AWS的云计算服务第一个云计算服务最佳实践就是将平台化的功能隔离出来,SaaS产品的更新速度是非常快的,但是我们仍然能够总结出一些核心的功能是基本不变或者能够在很多其他新的产品模块中重用的。我们要将这部分功能分离出来进行平台化改造以服务于更多的其它功能,将这些功能平台化以后也会降低整个系统的耦合性从而支撑更多的SaaS应用的功能。对通用功能的平台服务隔离可以更好的调优和独立扩展,同时重用核心服务并结合应用框架的使用会极大提升应用开发的效率。 亚马逊AWS的云计算服务第二个最佳实践是优化成本和性能,在传统的技术架构下这两者之间往往需要进行一定的平衡,而在AWS云的架构下的SaaS服务云模式下往往可以实现鱼与熊掌兼得。在每个架构层次实现弹性的横向扩展可以让我们实现按使用量付费的模式,而不需要为了获得强大的性能而提前付出大量的资源成本,同时我们在SaaS的AWS架构下可以使用更小的、平行的资源单位进行扩展,从而更为贴近SaaS环境下的实际资源需求,在合适的场景下尽可能的采用完全由AWS托管的服务(比如Amazon DynamoDB等)来降低SaaS合作伙伴的运维成本并提升效率。 亚马逊AWS的云计算服务第三个最佳实践是针对SaaS解决方案设计的。云计算服务,首先对于多租户的设计要针对SaaS应用自身的特点来进行规划,总体的设计原则是系统会有多个帐号,而一个帐号会对应多个用户,一个用户又会对应多个角色;其次是对于系统处理各种请求时要按照优先级进行分级管理,在通过使用AWS各种服务如SQS、SWF等对系统进行解偶后,对AWS 资源集约使用的前提下,对请求分优先级处理会极大提升SaaS架构的处理能力和稳定性;接下

相关主题
相关文档 最新文档