如何在AWS平台导入自行创建的操作系统模板并创建EC2实例

AWS平台提供的AMI,尤其是国内AMI数量甚少,社区非官方提供的各类AMI我们使用起来又充满忧虑

所以,自行安装系统导入AWS平台成为一个较好的选择

注意:

基本步骤

  1. 本地Vcenter/ESXI5.X 中创建虚拟机,根据需要安装各类环境和软件

    准备好的虚拟机要求见:http://docs.amazonaws.cn/vm-import/latest/userguide/prepare-vm-image.html

  2. 使用Vcenter的服务器模板导出功能导出一份ova类型的模板,size1-5G,视系统安装软件多少不同

    如何导出参考 http://docs.amazonaws.cn/vm-import/latest/userguide/export-vm-image.html

  3. 将OVA文件导入到Amazon S3 存储桶,存储桶要对步骤4的vmimport授权,至少是列出和只读,授权过程如4.3
  4. 创建服务角色

    4.1利用下策略创建名为 trust-policy.json 的文件

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": { "Service": "vmie.amazonaws.com" },
         "Action": "sts:AssumeRole",
         "Condition": {
            "StringEquals":{
               "sts:Externalid": "vmimport"
            }
         }
      }
   ]
}

您可将文件保存在计算机的任何位置。请记下文件的位置,因为在下一步中您需要指定该文件。

4.2 使用 create-role 命令创建名为 vmimport 的角色,并向 VM Import/Export 提供对该角色的访问权。请务必指定 trust-policy.json 文件位置的完整路径。

aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json

4.3 创建名为 role-policy.json 的文件并编写下面的策略,其中,disk-image-file-bucket 为存储磁盘映像的存储桶:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation"
         ],
         "Resource": [
            "arn:aws-cn:s3:::"
         ]
      },
      {
         "Effect": "Allow",
         "Action": [
            "s3:GetObject"
         ],
         "Resource": [
            "arn:aws-cn:s3:::/*"
         ]
      },
      {
         "Effect": "Allow",
         "Action":[
            "ec2:ModifySnapshotAttribute",
            "ec2:CopySnapshot",
            "ec2:RegisterImage",
            "ec2:Describe*"
         ],
         "Resource": "*"
      }
   ]
}

4.4 使用下面的 put-role-policy 命令将策略挂载到之前创建的角色。请务必指定 role-policy.json 文件位置的完整路径。

aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json

导入 OVA

将您的 VM 映像文件上传到 Amazon S3 后,可以使用 AWS CLI 导入该映像。这些工具接受 URL(公共 Amazon S3 文件,适用于私有 Amazon S3 文件的已签名的 GET URL)或 Amazon S3 存储桶和磁盘文件的路径。

aws ec2 import-image --description "Windows 2008 OVA" --disk-containers file://containers.json

下面是一个 containers.json 示例文件。

[
  {
    "Description": "Windows 2008 OVA",
    "Format": "ova",
    "UserBucket": {
        "S3Bucket": "my-import-bucket",
        "S3Key": "vms/my-windows-2008-vm.ova"
    }
}]

如果是导入多个磁盘的

Copy[
  {
    "Description": "First disk",
    "Format": "vmdk",
    "UserBucket": {
        "S3Bucket": "my-import-bucket",
        "S3Key": "disks/my-windows-2008-vm-disk1.vmdk"
    }
  },          
  {
    "Description": "Second disk",
    "Format": "vmdk",
    "UserBucket": {
        "S3Bucket": "my-import-bucket",
        "S3Key": "disks/my-windows-2008-vm-disk2.vmdk"
    }
  }
]

检查导入任务的状态

使用 describe-import-image-tasks 命令返回导入任务的状态。

包括的状态值如下:

  • active - 正在运行导入任务。
  • deleting - 正在取消导入任务。
  • deleted - 导入任务已取消。
  • validating — 正在验证导入的映像。
  • converting — 正在将导入的映像转换成 AMI。
  • completed - 导入任务已完成,并且 AMI 已准备就绪,随时可以使用。
aws ec2 describe-import-image-tasks --import-task-ids import-ami-fgxn195v

(可选)取消导入任务

使用 cancel-import-task 命令取消正在运行的导入任务。

aws ec2 cancel-import-task --import-task-id import-ami-fg4z7c9h

后续步骤

现在,您已拥有 AMI,您可以将其作为实例启动,或将其复制到其他的区域。有关更多信息,请参阅 Amazon EC2 文档中的以下主题。

时间: 2024-10-18 06:17:15

如何在AWS平台导入自行创建的操作系统模板并创建EC2实例的相关文章

解决AWS EC2实例DNS优先级的问题

Amazon Elastic Compute Cloud (Amazon EC2) 是基于 Web 的服务,允许企业在 AWS 计算环境中运行应用程序.是一种基于Xen为底层的计算虚拟化产品,EC2 可以作为无限的虚拟机集合. 故障现象: 我们在AWS 上面创建好一台Windows的EC2实例之后,将该EC2实例加入自己的AD域环境,重启该EC2实例之后发现进行DNS解析时,DNS解析后面会默认添加AWS的DNS地址.如图: 问题排查: 经过排除,发现在实例的IPv4设置"Advanced TC

亚马逊AWS在线系列讲座——如何在AWS云平台上构建千万级用户应用

用户选择云计算平台来构建应用的一个重要原因是云平台的高弹性和高扩展性.面向互联网的应用往往需要支撑大量用户的使用,但是构建一个高扩展性的.高可用的应用具有一一定的挑战,不过基于AWS云平台来构建应用可以相对简化这个事情.这个在线讲座将讨论如何如何充分利用云平台的特性和AWS的相关服务来构建一个可以支撑千万级用户的应用.通过讨论不同用户数量级别的应用需求和架构特点,然后结合不同的AWS的服务来满足用户访问,并最终逐渐把架构优化成为可以支持千万级用户的设计.这个演讲的目的是帮助对AWS服务有一定基础

如何在Windows平台使用VS搭建C++/Lua的开发环境

转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++调用Lua,以及Lua调用C++.Mac平台相对会比较方便,但是VS也不是很麻烦就是了.Mac上利用XCode搭建的教程可以参考子龙山人的教程,当然也可以利用其他IDE,比如Eclipse+CDT+LDT来搭建,这都没有问题. 另外,本文不谈及Lua/C++的交互,相关内容可以参考<Lua程序设计>

IMPDP导入报错ORA-27040: 文件创建错误, 无法创建文件,remap_datafile参数解决

该参数可用于给泵出文件中的源数据库文件重新指定一个新的路径和名称,主要用在平台间的数据迁移. 用法: remap_datafile=source_file:target_file 在windows平台上的使用: impdp dbuser/dbuser full=y dumpfile=full.dmp logfile=full.log remap_datafile="F:\DB\ORADB\ORADATA\ORADB\MYDB1.ORA":"F:\app\guester\ora

如何在oracle中导入dmp数据库文件

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用. 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出.

如何在APICloud平台使用腾讯X5引擎

目前APICloud与腾讯X5引擎已经达成全方位的深度合作,APICloud在多个产品线深度集成X5引擎,广大APICloud开发者们即日起可通过以下几方面在你的APP中使用X5引擎,享受X5引擎带来的种种优势. 腾讯X5引擎官网:http://x5.tencent.com: 产品及优势介绍,可通过:http://x5.tencent.com/doc?id=1001了解: 下面介绍如何在APICloud平台使用腾讯X5引擎: 一.在SuperWebView中使用 SuperWebview是基于A

云络结合Docker和OpsWorks,在AWS平台发布了全自动DevOps系统

云络宣布,已经基于最先进的云和DevOps技术,设计.创建了一个新系统,并交付给一家来自硅谷的中国创业公司.云络会一直进行7*24全天候管理.监测并改进该系统. 该系统是由云平台Heroku平行迁移过来的,目的是使其拥有PaaS平台的所有优势,并在AWS平台上采用HA-VPC和OpsWorks功能,另外同时增加DevOps.自动创建.自动扩展.HA冗余以及热门的Docker技术. 鉴于该技术的先进性,及在大规模运用的同时所产生的技术整合的挑战(尤其是整合VPC.Docker和OpsWorks技术

如何在android平台上使用js直接调用Java方法[转]

转载自:http://www.cocos.com/docs/html5/v3/reflection/zh.html #如何在android平台上使用js直接调用Java方法 在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parame

eclipse平台 android项目前显示红色叉号 android level-19 4.4平台导入项目 问题解决办法

android level-19  4.4平台导入项目 项目前显示红色叉号  问题解决办法 android level-19  4.4平台导入项目 项目前显示红色叉号,检查项目中文件,文件前没有叉号,分析是项目导入的问题,或者是lib库配置的问题. 1.用eclipse建立一个简单的android项目, HelloWorld: 2.选择HelloWorld项目,鼠标右键选择Build Path-Configure Build Path 对比发现,没有勾选 Android 4.4. 2.选择导入的