转换实例存储支持为EBS支持的AMI

注:不能将实例存储支持的Windows AMI 转换为 EBS 支持的 AMI。并且,你只能转换你所拥有的 AMI。

1. 从一个EBS支持的AMI启动一个Amazon Linux 实例。

2. 上传用于捆绑实例存储支持的 AMI 的 X.509 证书的私钥 。(此私钥将确保只有你能访问你的AMI。)

3. 为你的 Key ID 和 Secret Key 设置环境变量:

[ec2-user ~]$ export AWS_ACCESS_KEY=your_access_key_id
[ec2-user ~]$ export AWS_SECRET_KEY=your_secret_access_key

4. 为你的新 AMI 准备 EBS 卷

a. 在相同的 AZ 创建一个空的 EBS(容量必须等于或大于要复制的实例存储根卷的大小)

[ec2-user ~]$ ec2-create-volume --size  --region us-west- --availability-zone us-west-2b
VOLUME volume_id us-west-2b creating --24T23::+ standard

注意命令返回的 Volume ID。

b. 将新建的 EBS 卷附加到前述 EBS 支持的实例:

[ec2-user ~]$ ec2-attach-volume volume_id -i instance_id --device /dev/sdb --region us-west-
ATTACHMENT volume_id instance_id /dev/sdb attaching --24T23::+

5. 将基于实例存储的AMI的捆绑下载到 EBS 支持的实例:

ec2-download-bundle -b my-s3-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY -s $AWS_SECRET_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle

6. 从捆绑重建镜像文件:

ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

7. 拷贝镜像文件到新附加的 EBS 卷:

sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M

8. 探测所有解除捆绑的新分区的卷:

sudo partprobe /dev/sdb

9. 列出块储存设备以查找要挂载的设备名称

[ec2-user bundle]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda : 8G disk
└─/dev/sda1 : 8G part /
/dev/sdb : 10G disk
└─/dev/sdb1 : 10G part

在此示例中,要挂载的分区是 /dev/sdb1,但您的设备名称可能有所不同。如果您的卷未分区,则要挂载的设备类似于 /dev/sdb(没有设备分区尾部数字)。

10. 为新 Amazon EBS 卷创建安装点并安装该卷

[ec2-user bundle]$ sudo mkdir /mnt/ebs
[ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs

11. 使用常用文本编辑器(如 vim 或 nano)打开 EBS 卷上的 /etc/fstab 文件,并删除任何实例存储(短暂)卷条目。由于 Amazon EBS 卷安装在 /mnt/ebs 上,fstab 文件位于 /mnt/ebs/etc/fstab 中

[ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab
#
LABEL=/ / ext4 defaults,noatime
tmpfs /dev/shm tmpfs defaults
devpts /dev/pts devpts gid=,mode=
sysfs /sys sysfs defaults
proc /proc proc defaults
/dev/sdb /media/ephemeral0 auto defaults,comment=cloudconfig

在上面的示例中,应删除最后一行。

12. 从实例中卸载和分离该卷

[ec2-user bundle]$ sudo umount /mnt/ebs
[ec2-user bundle]$ ec2-detach-volume volume_id --region us-west-
ATTACHMENT volume_id instance_id /dev/sdb detaching --24T23::+

13. 按如下所示从新 Amazon EBS 卷创建 AMI

a. 创建新 Amazon EBS 卷的快照。

[ec2-user bundle]$ ec2-create-snapshot --region us-west- -d "your_snapshot_description" -O $AWS_ACCESS_KEY -W $AWS_SECRET_KEY volume_id
SNAPSHOT snapshot_id volume_id pending --25T00::+ your_snapshot_description

b. 检查快照是否完整。

[ec2-user bundle]$ ec2-describe-snapshots --region us-west- snapshot_id
SNAPSHOT snapshot_id volume_id completed --25T00::+ % your_snapshot_description

c. 使用 ec2-describe-images 命令确定在原始 AMI 上使用的处理器架构、虚拟化类型和内核映像 (aki)。对于此步骤,您需要实例存储支持的原始 AMI 的 AMI ID。

[ec2-user bundle]$ ec2-describe-images --region us-west- ami-id
IMAGE ami-8ef297be amazon/amzn-ami-pv-2013.09..x86_64-s3 amazon available public x86_64 machine aki-fc8f11cc instance-store paravirtual xen

在此示例中,架构是 x86_64,内核映像 ID 是 aki-fc8f11cc。在以下步骤中使用这些值。如果上面命令的输出还列出 ari ID,请记下该 ID。

d. 使用新 Amazon EBS 卷的快照 ID 和上一步中得到的值注册新 AMI。如果前一命令输出列出了 ari ID,请通过 --ramdisk ari_id 将其包括在后续命令中。

[ec2-user bundle]$ ec2-register --region us-west- -n your_new_ami_name -s snapshot_id --virtualization-type hvm -a x86_64 --kernel aki-fc8f11cc
IMAGE new-ami-id

14. (可选)测试了您可以从新 AMI 启动实例之后,您可以删除为此过程创建的 Amazon EBS 卷。

$ ec2-delete-volume volume_id

参见:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html

转换实例存储支持为EBS支持的AMI的更多相关文章

  1. 实例存储支持的AMI创建步骤

    实例存储支持的AMI创建步骤 一.Windows AMI 1. 选择实例存储支持的AMI创建实例. 2. 远程登录实例进行定制化配置. 3. 通过Web控制台或命令行Bundle实例(并自动上传到S3 ...

  2. PV对第三方存储的访问模式支持

    访问模式 PV可以使用存储资源提供商支持的任何方法来映射到host中.如下的表格中所示,提供商有着不同的功能,每个PV的访问模式被设置为卷支持的指定模式.比如,NFS可以支持多个读/写的客户端,但可以 ...

  3. thinkphp中ajax使用实例(thinkphp内置支持ajax)

    thinkphp中ajax使用实例(thinkphp内置支持ajax) 一.总结 1.thinkphp应该是内置支持ajax的,所以请求类型里面才会有是否是ajax // 是否为 Ajax 请求 if ...

  4. jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传

    jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传 http://www.malsup.com/jquery/form/#getting-started [JQu ...

  5. GJM :用JIRA管理你的项目(二)JIRA语言包支持及插件支持 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  6. MVC4 5分页控件,支持Ajax AjaxOption支持

    MVC4 5分页控件,支持Ajax AjaxOption支持 /// <summary> /// MVC4 5分页控件,支持Ajax AjaxOption支持 beta 1.0 /// 用 ...

  7. spring boot: 支持jsp,支持freemarker

    spring boot: 支持jsp,支持freemarker 支持jsp: 加入依赖 <!--jsp--> <dependency> <groupId>org.a ...

  8. cocos2dx 富文本框,支持换行,支持神情(支持汉字截断无乱码)

    cocos2dx 富文本框,支持换行,支持表情(支持汉字截断无乱码) 小工在做了一个游戏聊天功能,里面用到插入表情的富文本和换行的问题: 先看效果,不是你要的效果,可return:(截图由于:输入的问 ...

  9. 开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等

    开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等 C++开发网络通信程序时用asio是个不错的选择 ...

随机推荐

  1. 线上任务的mysql 重启

    我们的业务是 所使用的数据库是 自己搭建的mysql-server-5.05, 服务器 红帽子6.0. 考虑到 服务的稳定性,计划将数据库向dba进行迁移,由他们进行维护.dba的迁移计划是 1 先创 ...

  2. coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores.

    最近在修改一个程序BUG的时候遇到一个问题coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores. 但实际跑程序 ...

  3. ready和onload的区别

    $(document).ready()和window.onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onloa ...

  4. iOS 传值 委托(delegate)和block 对比

     技术交流新QQ群:414971585 这篇文章建议和前一篇一起看, 另外先弄清楚IOS的block是神马东东. 委托和block是IOS上实现回调的两种机制.Block基本可以代替委托的功能,而且实 ...

  5. LeetCode() Super Ugly Number

    用了优先队列,还是超时 class Solution { public: int nthSuperUglyNumber(int n, vector<int>& primes) { ...

  6. visual studio 的Error List 显示乱码

    复制到右键菜单如下: Severity Code Description Project File LineError 閿欒: 绋嬪簭鍖卌om.baidu.lbsapi.auth涓嶅瓨鍦? com. ...

  7. 一般处理程序上传文件(html表单上传、aspx页面上传)

    html 表单上传文件        一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率.这里写一个用 html 表单进行文件上传的示例.        1. 表单元素选用 ...

  8. 10天学会phpWeChat——第二天:hello world!我的第一个功能模块

    今天我们开始进入<10天学会phpWeChat>系列教程的第二天:创建我的第一个hello world! 功能模块. 1.登录后台,进入 系统设置--自定义模块,如图: 自定义模块参数说明 ...

  9. html/京东项目/京东网页高仿/js/jq/css/java web/

    登录部分HTML+CSS: <!DOCTYPE html><html>    <head>        <meta charset="UTF-8& ...

  10. 【linux】 解决linux下vsftp 500 OOPS: cannot change directory:/home/ftp/ 办法

    用FileZilla连接ftp出现错误,500 OOPS: cannot change directory:/home/ftp 原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的 ...