AMI镜像从海外迁移至国内

本文介绍了如何将Amazon Machine Images(AMI)从AWS的海外区域迁移到国内区域。通过创建Access Key,使用AWS CLI登录海外账号,将AMI镜像存储到S3,然后在中转主机上登录国内账号,将镜像上传至国内S3存储桶,并最终还原为国内区域的AMI镜像。整个过程详细展示了从创建Access Key到还原镜像的每一步操作。
摘要由CSDN通过智能技术生成


这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/120734216
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!


AMI镜像从海外迁移至国内

目标 & 原因

目标

实现目标:

  • 将海外区域的AMIAmazon Machine Images)镜像迁移到国内区域

原因

  • 海外区域和国内区域是互相隔离的两套系统,它们之间的信息数据无法共享。所以AMI镜像无法直接在账户层面在海外账号和国内账号设置权限共享数据

解决思路

  1. EC实例卷导出为镜像(海外账号)
  2. 将该镜像转移存储到S3存储通当中(海外账号)
  3. 使用一台中转主机,这台主机可以是海外EC2实例、国内EC2实例、甚至可以是本地主机或者其他云平台的主机。在该主机当中登录海外账号,然后将S3存储桶中的IAM镜像下载到中转主机当中。
  4. 在该中转主机当中重新配置登录国内账号,将该中转主机的本地AMI镜像上传到国内账号的S3存储桶当中
  5. S3存储桶当中还原AMI镜像

实现过程

使用AWS-CLI 登录海外账号
在AWS控制台界面创建Access keys (access key ID and secret access key)
  1. 使用账号密码登录到AWS控制台主界面
  2. 在主界面右上角点击你的用户名,出来下拉菜单,在下拉菜单界面点击My Security Credentials

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ik1ABNGX-1634050432280)(images/image-20211012100429537.png)]

  1. Your Security Credentials界面当中,点击Access keys (access key ID and secret access key)栏目,然后点击Create New Access key

在这里插入图片描述

此时AKSK用户访问密钥便创建成功了,在创建成功时会弹出一个方框告诉你AKSK,记得把文件下载下来,因为这个文件只有在第一次创建时才能获取,以后是无法获取的。

确保中转主机安装aws-cli
  1. 查看aws-cli是否安装,执行以下命令
aws --version
  1. 因为我执行命令后提示-bash: aws: command not found,那么我要先安装aws-cli

  2. 执行以下命令安装aws-cli,此方式适用于Linux系统

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install
  1. 最后执行aws --version查看cli版本
[root@idys ~] aws --version
aws-cli/2.2.45 Python/3.8.8 Linux/3.10.0-1160.11.1.el7.x86_64 exe/x86_64.centos.7 prompt/off

此时显示版本,说明我的aws-cli安装成功

  1. 使用aws-cli登录账号
[root@idys ~] aws configure
AWS Access Key ID [None]: #你的access key
AWS Secret Access Key [None]:  # 输入你的 secret key
Default region name [None]: us-east-1 # 你的默认区域
Default output format [None]: json # 输出内容格式
EC实例创建AMI镜像

使用aws-cli创建AMI镜像

aws ec2 create-image --instance-id i-0fa8a21490aad44b9 --name "My Web server images" --description "An AMI for web server"
{
    "ImageId": "ami-054b82c9d196f81f1"
}

将海外AMI 镜像存储到S3存储桶当中

使用aws-cli创建s3存储桶

aws s3api create-bucket --bucket idys-bucket --region us-east-1
{
    "Location": "/idys-buckett"
}

使用aws-cliAMI镜像存储到S3存储桶当中

aws ec2 create-store-image-task --image-id ami-054b82c9d196f81f1 --bucket idys-bucket
{
    "ObjectKey": "ami-054b82c9d196f81f1.bin"
}

--image-id后接镜像ID

--bucket后接存储桶名称

将S3存储桶中的镜像文件下载到中转主机
aws s3 cp s3://idys-bucket/ami-054b82c9d196f81f1.bin ./

最后下载完成后,可以看到文件已经存在

ls ami-054b82c9d196f81f1.bin 
ami-054b82c9d196f81f1.bin
使用AWS-CLI配置登录国内账号

配置登录国内账号

AWS Access Key ID [****************IS4T]: **************************SJ5D # 填写国内账号的 access key
AWS Secret Access Key [****************VXxE]: **************************Ua0BA # 填写国内账号的 secret key
Default region name [us-east-1]: cn-northwest-1  # 填写 默认区域
Default output format [json]: json # 填写输出格式,默认为json
创建S3存储桶并将镜像上传到存储桶当中

创建S3存储桶

aws s3api create-bucket --bucket idys-bucket --region cn-northwest-1

An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.

此时提示未指定区域限制,从而报错

我们将创建存储桶命令设置为

aws s3api create-bucket --bucket idys-bucket --region cn-northwest-1 --create-bucket-configuration LocationConstraint=cn-northwest-1
{
    "Location": "http://idys-bucket.s3.cn-northwest-1.amazonaws.com.cn/"
}

此时存储桶创建成功

将下载到中转主机本地的AMI镜像上传到国内区域的S3存储桶当中

aws s3 cp ami-054b82c9d196f81f1.bin s3://idys-bucket
从S3存储桶中还原AMI镜像

使用AWS-CLI还原AMI镜像

aws ec2 create-restore-image-task --object-key ami-054b82c9d196f81f1.bin --bucket idys-bucket --name "migration-ami-foreign"
{
    "ImageId": "ami-04c73462514648673"
}

使用create-restore-image-task指令将S3存储桶文件还原为镜像

--object-key参数指定对象名称

--bucket指定存储桶名称

--name指定还原后的镜像名称

"ImageId": "ami-04c73462514648673"指明了还原后的镜像ID

此时可以看到镜像创建还原成功

在这里插入图片描述

--object-key参数指定对象名称

--bucket指定存储桶名称

--name指定还原后的镜像名称

"ImageId": "ami-04c73462514648673"指明了还原后的镜像ID

此时可以看到镜像创建还原成功

在这里插入图片描述


写在最后的话:

  • 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
  • 欢迎关注我的CSDN博客,IDYS’BLOG
  • 持续更新内容
    linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算
  • 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
  • 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值