在《cloud computing-openstack 简介》一文中我们介绍过,AWS 作为 IaaS 公有云的标杆,深刻影响了 OpenStack 整个项目的演进方向。OpenStack 从诞生开始就持续对标 AWS 的服务能力,借鉴其云产品设计思想,同时向外提供兼容 AWS 的 API 接口(端口-endpoint),目的就是降低多云迁移成本,让原有面向 AWS 开发的业务程序、运维脚本可以不用大规模修改,就可以运行在 OpenStack 平台之上。
混合云已经成为很多政企、企业的主流架构,一边是基于 OpenStack 搭建的本地私有云,一边是 AWS 公有云,如何完成两边的对接、打通资源,是云计算运维经常会遇到的课题。本章就聚焦技术层面,详细介绍 OpenStack 对接 AWS 的相关技术方案。
OpenStack如何对接AWS?
1、确保openstack环境部署了ec2服务
openstack service list | grep ec2 #查看当前服务列表正常输出:2、生成AWS凭据
poenstack ec2 credentials create #创建ec2凭据正常输出:3、安装aws-cli
sudo apt-get install awscli #ubunto安装AWS客户端 / sudo yum install openstack-aws-cli #centos安装AWS客户端4、配置AWS客户端
aws configure #配置aws凭证正常输出:
5、通过AWS工具查询openstack虚拟机列表
aws ec2 describe-instances --endpoint-url http://<controller-ip>:8773/services/Cloud #ec2部署的url至此即可用 aws管理工具管理openstac的资源(通过openstack-ec2服务实现)。
为什么需要OpenStack对接AWS?
企业选择 OpenStack 对接 AWS,主要来自三方面诉求:
安全层面:核心敏感业务保留在自主可控的 OpenStack 私有云,非弹性业务跑在 AWS 公有云,兼顾弹性能力与数据主权合规;
网络通信层面:依靠 IPSec‑VPN 加密隧道打通两端内网,公网传输业务流量不裸奔,实现跨云的数据同步、灾备;
工具与代码复用层面:OpenStack 提供 EC2‑API 兼容层,AWS CLI、AWS SDK 可以直接调用 OpenStack,原有 AWS 自动化脚本少量修改即可迁移到私有云,降低混合云改造、业务回迁成本。
同时对AWS和OpenStack资源管理的脚本--Treeaform
1、下载Treeaform脚本
#下载 wget https://releases.hashicorp.com/terraform/1.5.0/terraform_1.5.0_linux_amd64.zip #解压 unzip terraform_1.5.0_linux_amd64.zip #移动二进制文件到系统PATH目录 mv terraform /usr/local/bin/ #验证 terraform version2、编辑配置文件xx.tf
vim test.tf3、初始化并执行Treeaform脚本
terraform init #初始化脚步 terraform apply #执行脚本将请求分别下发给openstack和aws,最终实现利用treeform脚步在openstack创建一台虚拟机(实例),在aws创建该虚拟机的存储桶。