创建 BYOC 部署
作为一款 MQTT 消息中间件,EMQX Bring Your Own Cloud (BYOC) 支持在您自己的云基础设施中创建部署,确保数据只在您的环境中,安全可控。这种部署方式可以提高数据安全性和可控性,同时也可以避免数据泄漏等风险。另外,EMQX BYOC 还能够提供更好的性能和可扩展性,以满足不同场景下的需求。本节将介绍如何创建和使用 BYOC 部署。
前置准备
创建 BYOC 部署前,您应首先准备好对应公有云的账号、做好云资源规划、并申请 EMQX BYOC 产品许可证等。详细信息,请参考部署前置准备页面。
准备部署
登录账户,进入 EMQX Platform 控制台。
在控制台首页或者部署管理页面都可以在指定项目下创建,点击新建部署进入创建步骤。
在选择版本中选中 BYOC。
依据您的需求选择相应规格配置。
云平台相关配置
选择云平台:可选择阿里云或亚马逊云科技(AWS 中国)。
如您希望部署在其他云平台,可通过工单或邮件(cloud-support@emqx.io)联系我们。
选择区域:选择待部署的区域。
如您希望部署在其他区域,可通过工单或邮件(cloud-support@emqx.io)联系我们。
EMQX 集群相关配置
TIP
最大连接数需要与您申请的 EMQX BYOC 许可证保持一致。部署完成后,如需修改相关配置,可通过工单联系我们。
- 最大连接数:指定部署集群的 MQTT 设备最大连接数。部署完成后,也可通过工单联系我们进行升降此部署规格。
- 消息上下行 TPS:指定部署集群的消息上下行的每秒事务处理数(TPS)。
- EMQX 节点实例规格:系统将自动根据最大连接数和消息上下行 TPS 填入推荐的实例规格,您也可以实际业务需求修改实例规格。
- EMQX 节点实例数量:系统将自动根据最大连接数和消息上下行 TPS 填入推荐的实例数量,您也可以实际业务需求修改节点的数量(2-5 个节点)。
- VPC 网段:选择用于创建 VPC 的私网地址范围。
部署名称和项目
- 部署名称:填写具有业务意义的部署名称。
- 所属项目:为部署设置所属项目。
云资源标签(可选):依据您的需求添加云资源标签,便于后续识别和管理,最多支持 10 个标签。
确认部署信息后,点击右侧的新建部署按钮以创建部署。此阶段将提示您查看并接受 EMQX 平台服务协议。请务必仔细阅读协议并接受其条款以继续。
接受条款后,系统将重定向到部署概览页面。
接下来,我们将根据执行部署章节中的步骤正式开始部署。
执行部署
在部署概览页面中,部署进度应该为等待部署。此时连接信息中将不会显示部署信息,点击开始部署按钮,侧边栏将弹出部署指南引导您完成部署。您也可以参照以下步骤完成部署。
我们将在联网的 Ubuntu 20.04 (AMD64) LTS 环境中完成部署,正式部署前,请首先将部署所需的 TLS / SSL 证书和 BYOC 许可证文件提前复制到您的 Ubuntu 环境目录。
打开提前准备好的 Ubuntu 20.04 (AMD64) LTS 环境。注意:此 Ubuntu 应能够直接访问互联网。
在 Ubuntu 命令行界面,使用以下命令下载工具包,并保存到您的 Ubuntu 目录中。
bashwget https://cloudassets.emqx.com/cn/byoc-deployments/5.1.0/create-aliyun-byoc-deployment.tar.gz
在 Ubuntu 命令行界面,通过以下命令解压缩,然后导航到解压后的文件夹目录。
bashtar -zxf create-aliyun-byoc-deployment.tar.gz && cd create-aliyun-byoc-deployment
运行以下命令执行部署。
bash./byoc create \ --platform aliyun \ --accessKey <Your AccessKey> \ --secretKey <Your SecretKey> \ --domain <Your Domain> \ --sslCertPath <Your Domain SSL Absolute Cert Path> \ --sslKeyPath <Your Domain SSL Absolute Key Path> \ --clientCaPath <Your Client CA Absolute Path (Optional)> \ --byocEndpoint https://cloud.emqx.com \ --byocKey abcdXXXXXXXXXX111
注意:执行
./byoc create
命令前,请将以下字段填充为实际参数:--accessKey
:您公有云账号的 AccessKey ID。阿里云平台可以在工作台 RAM 访问控制中查看。--secretKey
:您公有云账号的 AccessKey Secret。请使用与 AccessKey ID 对应的 AccessKey Secret。--domain
:输入部署中 MQTT 服务的域名,后续客户端将通过此域名访问 MQTT 服务。例如:your.domain.com。--sslCertPath
:指定 TLS/SSL 证书所在的绝对路径,仅支持 CA 签名证书。SSL 证书格式要求请参考 在 BYOC 中配置 TLS/SSL。注:BYOC 提供 自定义单向 TLS/SSL 认证。--sslKeyPath
:指定 TLS/SSL 证书密钥所在的绝对路径,仅支持 CA 签名证书。SSL 证书密钥格式要求请参考在 BYOC 中配置 TLS/SSL。--clientCaPath
: 指定客户端 CA 证书所在的绝对路径。如果提供该参数,创建的部署将使用双向 TLS/SSL 认证。如果不需要,请在执行时移除此参数。有关双向 TLS/SSL 认证的详细信息,请参阅 在 BYOC 中配置 TLS/SSL。
此外,上述命令中的
--platform
为部署的云平台,--byocEndpoint
为访问地址,--byocKey
为 BYOC 部署的认证密钥,在控制台生成部署指引时已自动填入相应的值,请勿修改。其中生成的 byocKey 有效期为一小时,请在生成脚本命令后尽快执行。等待数分钟,系统提示确认需要创建的云资源,输入
yes
回车后继续。bashDo you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
添加 DNS 记录
部署创建完成后,系统将返回以下内容。您可根据返回的 IP 地址,在 DNS 服务中添加一条域名解析记录,将部署的公网 IP 与您的域名进行绑定。
Apply complete! Resources: 45 added, 0 changed, 0 destroyed.
Outputs:
cloud_register_data = <sensitive>
jwt_token = <sensitive>
lb_address = "<Your Deployment IP>"
password = "<EMQX Dashboard Password>"
username = "<EMQX Dashboard Username>"
vpc_id = "vpc-bp1n1dwiv2srgkgle4rlu"
*****************************
You need add a record to your DNS service provider.
IP address: 112.124.9.12
Domain: <Your Custom Domain>
*****************************
Checking if <Your Custom Domain> is resolved to the 112.124.9.12 of the load balancer
您可以选择主流云平台提供的 DNS 解析服务。以阿里云平台的云解析 DNS 服务为例,您可以根据 云解析 DNS - 添加网站解析页面 的操作步骤,添加一条域名解析记录。关于 DNS 和域名解析等基本概念,请参考 DNS 概念。
解析记录生效时,系统将返回 HTTPS listener is ready
。
HTTPS listener is ready
完成部署
完成域名解析后,Ubuntu 命令行界面将输出以下内容,说明该部署执行成功。
Deployment successful! Here is the service information:
--------------------------------------------------------
EMQX service connection address: <Your Custom Doamin>
EMQX Dashboard address: https://<Your Custom Doamin>:18084
EMQX Dashboard username: <EMQX Dashboard Username>
EMQX Dashboard password: <EMQX Dashboard Password>
You can log in to the EMQX Platform Console(https://cloud.emqx.com/console) to manage your deployment.
--------------------------------------------------------
Thank you for choosing our service. Happy IoT!
请妥善保存 EMQX Dashboard 用户名和密码,它将用于管理控制台登录和集群管理中,后续不会再显示该信息。
部署概览
返回并刷新部署概览页面,可获取到部署实时状态和连接信息:
实时状态:
- 部署名称:部署名称,同时也是云资源的前缀,方便在公有云控制台中快速查找。
- 实例状态:运行状态和创建时间。
- 连接数:当前连接数和最大连接数。
- 消息上下行 TPS:部署当前每秒钟消息发送和接收条数,以及 TPS 上限。
连接信息:
- 连接地址:部署时用户指定的域名。
- 连接端口:默认开启 1883(mqtt)、8883(mqtts) 、8083(ws)、8084(wss) 端口,用于 MQTT 协议接入;18084(https) 和 8443(https) 分别用于 Dashboard 登录和 REST API 访问。
如您希望自定义端口,可通过工单或邮件(cloud-support@emqx.io)联系我们。
许可证信息:
包含许可证基本信息与到期时间,许可证相关信息请参考 BYOC 许可证。
高级网络设置
VPC 对等连接配置
Virtual Private Cloud (VPC) 对等连接是两个 VPC 之间的网络连接,通过此连接,两个位于不同网络中的 VPC 也可以彼此通信。该功能由云服务商提供,支持在同云服务商、同区域内,BYOC 部署所在的 VPC 与客户其他 VPC 创建对等连接。 请参考各公有云 VPC 对等连接文档进行配置:
私网连接 PrivateLink 配置
私网连接(PrivateLink)能够实现 BYOC 部署所在的 VPC 与公有云上的服务建立安全稳定的私有连接,简化网络架构,实现私网访问服务,避免通过公网访问服务带来的潜在安全风险。请参考各公有云 VPC 私网连接文档进行配置:
NAT 网关配置
公有云平台提供的 NAT 网关可以提供网络地址转换服务,为 BYOC 部署提供访问公网资源的能力,无需 VPC 对等连接。您可以在 BYOC 部署所在 VPC 内添加 NAT 网关,请参考各公有云 NAT 网关文档进行配置:
连接到部署
您可以使用任何 MQTT 客户端工具连接到部署进行测试,我们推荐使用 MQTTX 连接到部署。