Amazon EC2 实践概要

原文  http://blog.csdn.net/tienway/archive/2010/03/16/5386119.aspx

 

亚马逊将他们的云计算平台称为弹性计算云(Elastic Compute CloudEC2) ,它是最早提供远程云计算平台服务的公司。早在20063 月,亚马逊就发布了简单存储 服务(Simple Storage ServiceS3)

亚马逊网络服务平台使用REST (Representational State Transfer) 和简单对象访问协议(SOAP) 等标准接口,用户可以通过这些接口访问到相应的存储服务。

核心概念

l          Amazon EC2 Amazon Elastic Compute Cloud ): web service ,目的是使得用户可以发起和管理 Amazon 数据中心的 Linux/UNIX Windows 服务器实例。 Amazon EC2 提供虚拟主机服务,主要可以随需添加“机器”,硬盘等,达到快速扩展的目地。

l          Amazon S3 Amazon Simple Storage Service ): 是一个公开的服务, Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。 S3 提供一个 RESTful API 以编程方式实现与该服务的交互。

l          Amazon AMI Amazon Machine Image ): 相当于一套业务系统的 snapshot ,保存到 Amazon S3 中,它包含启动业务应用实例必需的所有信息。

l          Instance 运行着的业务系统实例,该实例基于 AMI 产生,是执行 AMI 产生的系统,可以基于同一个 AMI 产生很多实例,共同对外提供服务,一般来说,一个 Instance 对应一个虚拟机。

l          Instance Type Amazon 为了满足不同 Instance 的计算需求,提供了灵活的资源提供方式: Standard, High-Memory and High-CPU m1.small m1.large m1.xlarge 三种为 standard 类型, m2.xlarge m2.2xlarge m2.4xlarge High-Memory 类型, c1.medium c1.xlarge High-CPU 类型。

l          Regions Amazon EC2 支持在多个不同地理位置的区域发起实例,在每一个 Region ,都有一个标准的数据中心,提供 EC2 服务。

l          AWS Amazon Web Services ): EC2 AWS 提供了在 Amazon 的计算环境中运行企业应用的能力。

 

要想自己的企业应用运行于Amazon 的云计算环境中,做法比较简单,只需要利用Amazon 提供的工具、登录Amazon AWS 门户网站进行相应的操作即可。

准备工作

Ø          下载 Amazon 的命令行工具 ec2-api-tools ,需要的 JRE 1.5 以上;

Ø          如果访问 Linux and UNIX 实例,需要一个 SSH 客户端;如果访问 Windows 实例,需要一个远程桌面连接客户端;

Ø          为了使用 Amazon EC2 ,必须注册 AWS 账号( http://aws.amazon.com/ ),注册 Amazon S3 账号( http://aws.amazon.com/s3/ ),注册 Amazon EC2 账号(( http://aws.amazon.com/ )),这三个账号的注册是独立注册,并且是必须的;

Ø          Amazon S3 账号是为了存储或者取回 Amazon EC2 AMI s

Ø          得到 Key identifiers (访问证书 X.509 Certificate ):设置 ec2-api-tools 时使用;

 

开发步骤

第一步:

建立自己的企业应用,并打包到AMI 中,该AMI 包含你应用所有依赖的软件,包括操作系统以及相关配置、业务应用、依赖的运行库等等。

如何制作AMI ,不用担心,Amazon 提供了必需的工具为你创建和打包AMI

第二步:

上传你的AMI 包到 Amazon S3 Amazon Simple Storage Service )服务存储中。在Amazon S3 下,我们可以安全可信的访问我们的AMI

第三步:

Amazon EC2 平台上,注册你的AMI ,通过这个步骤,校验上传AMI 是否正确,并且申请到为一个AMI ID

第四步:

借助AMI ID Amazon EC2 提供的web 服务API ,就可以运行、监控、终止AMI 申请的实例。当前,Amazon 提供了命令行工具和java 库,你可以直接访问Amazon 提供的SOAP 或者基于API 的查询。

 

制作AMI

AMI 是一个基本的部署单元,作为一个基本单元,可以启动一个对应的客户端实例。所有的AMI 被保存在Amazon S3 中,Amazon S3 存储数据对象在 bucket 中,一个 bucket 有一个全局唯一的名字,并且仅仅属于专用的用户。上传 MAI 时,需要指定一个 bucket ,如果已经存在,则上传失败。

制作AMI 有两种方式:

基于已经存在的AMI 模板,首先选择一个已经存在的AMI ,然后启动一个AMI Instance ,通过 SSH 服务,访问并控制 AMI Instance

建立 Loopback File ,这种方式比较麻烦,具体可以参考 Amazon 的官方文档。

 

设置ec2-api-tools

首先从http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88 下载ec2-api-tools Amazon 提供了 Windows 2000/XP and Linux/UNIX/Mac 版本。下载后是一个 zip 包,直接解压缩即可。

 

1、   ec2-api-tools 的运行依赖于环境变量EC2_HOME ,查找需要的库文件。EC2_HOME 指向ec2-api-tools 的安装路径ec2-api-tools-A.B-nnnn (AB 标识版本编号,n 标识为修订编号)

set EC2_HOME= c:\amazon\ec2\ec2-api-tools-1.3-46266

 

2、   ec2-api-tools 需要在申请 Amazon EC2 服务时产生的证书与密钥,以便在用命令行发出请求时,确知身份。为了不用每次使用命令行时,都去指定证书与密钥,可以通过设置环境变量, windows 下:

set EC2_PRIVATE_KEY= c: \amazon\ec2\pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem

set EC2_CERT= c:\amazon\ec2\cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem

3、   指定Amazon EC2 使用的Region ,默认情况下,Amazon EC2 工具使用 Eastern United States region (us-east-1) ,指向us-east-1.ec2.amazonaws.com 服务节点。通过 ec2-describe-regions 指令,查询可用的regions ,然后通过 set EC2_URL=<service_endpoint> ,修改使用的region

 

运行一个Instance

windows 实例为例。

Ø          运行一个Instance 实例,需要的前提条件:

Ø          预装1.5.0 以及以上的JRE ,设置JAVA_HOME 环境变量;

Ø          确信有AWS 账号,并且在Amazon S3Amazon EC2 注册;

Ø          确信在ec2 路径下有X.509 证书和私钥;

Ø          设置了EC2_HOMEEC2_CERT and EC2_PRIVATE_KEY 环境变量;

 

1、   使用ec2-describe-images 发现可以使用AMI 以及信息;

2、   因为Amazon EC2 需要使用SSH 密钥对获取windows 登录密钥。因此首先获取SSH 密钥对,一般保存到本地一个密钥文件中;

3、   使用ec2-run-instances <ami_id> -k <keypair-name> 启动一个Instance ,此命令将返回 AMI 实例的 ID

4、   使用ec2-describe-instances <instance_id> 查询Instance 的状态;

 

Amazon EC2 的基本情况(资料来自网络):

Ø          磁盘系统使用 RAID 构建

Ø          大部分服务器在美国,小部分在欧洲,位于美国的服务器性能占了总量的 75-80%

Ø          各类 Instance 背后的硬件结构都是相似的,亚马逊在所有服务器之间协调资源,没有特意为不同的 Instance 购置不同的服务器。

Ø          EC2 最初的目标利用率是 70 - 75%

你可能感兴趣的:(linux,应用服务器,ssh,企业应用,云计算)