Skip to content

创建 BYOC 部署

作为一款 MQTT 消息中间件,EMQX Bring Your Own Cloud (BYOC) 支持在您自己的云基础设施中创建部署,确保数据只在您的环境中,安全可控。这种部署方式可以提高数据安全性和可控性,同时也可以避免数据泄漏等风险。另外,EMQX BYOC 还能够提供更好的性能和可扩展性,以满足不同场景下的需求。本节将介绍如何创建和使用 BYOC 部署。

前置准备

创建 BYOC 部署前,您应首先准备好对应公有云的账号、做好云资源规划、并申请 EMQX BYOC 产品许可证等。详细信息,请参考部署前置准备页面

准备部署

  1. 登录账户,进入 EMQX Platform 控制台

  2. 在控制台首页或者部署管理页面都可以在指定项目下创建,点击新建部署进入创建步骤。

  3. 选择版本中选中 BYOC

  4. 依据您的需求选择相应规格配置。

    BYOCSpecification

    云平台相关配置

    • 选择云平台:可选择阿里云亚马逊云科技(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 个标签。

  5. 确认部署信息后,点击右侧的新建部署按钮以创建部署。此阶段将提示您查看并接受 EMQX 平台服务协议。请务必仔细阅读协议并接受其条款以继续。

  6. 接受条款后,系统将重定向到部署概览页面。

接下来,我们将根据执行部署章节中的步骤正式开始部署。

执行部署

在部署概览页面中,部署进度应该为等待部署。此时连接信息中将不会显示部署信息,点击开始部署按钮,侧边栏将弹出部署指南引导您完成部署。您也可以参照以下步骤完成部署。

我们将在联网的 Ubuntu 20.04 (AMD64) LTS 环境中完成部署,正式部署前,请首先将部署所需的 TLS / SSL 证书和 BYOC 许可证文件提前复制到您的 Ubuntu 环境目录。

  1. 打开提前准备好的 Ubuntu 20.04 (AMD64) LTS 环境。注意:此 Ubuntu 应能够直接访问互联网。

  2. 在 Ubuntu 命令行界面,使用以下命令下载工具包,并保存到您的 Ubuntu 目录中。

    bash
    wget https://cloudassets.emqx.com/cn/byoc-deployments/5.1.0/create-aliyun-byoc-deployment.tar.gz
  3. 在 Ubuntu 命令行界面,通过以下命令解压缩,然后导航到解压后的文件夹目录。

    bash
    tar -zxf create-aliyun-byoc-deployment.tar.gz && cd create-aliyun-byoc-deployment
  4. 运行以下命令执行部署。

    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 有效期为一小时,请在生成脚本命令后尽快执行。

  5. 等待数分钟,系统提示确认需要创建的云资源,输入 yes 回车后继续。

    bash
    Do 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 与您的域名进行绑定。

bash
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

bash
HTTPS listener is ready

完成部署

完成域名解析后,Ubuntu 命令行界面将输出以下内容,说明该部署执行成功。

bash
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 用户名和密码,它将用于管理控制台登录和集群管理中,后续不会再显示该信息。

部署概览

返回并刷新部署概览页面,可获取到部署实时状态和连接信息:

byoc

实时状态:

  • 部署名称:部署名称,同时也是云资源的前缀,方便在公有云控制台中快速查找。
  • 实例状态:运行状态和创建时间。
  • 连接数:当前连接数和最大连接数。
  • 消息上下行 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)能够实现 BYOC 部署所在的 VPC 与公有云上的服务建立安全稳定的私有连接,简化网络架构,实现私网访问服务,避免通过公网访问服务带来的潜在安全风险。请参考各公有云 VPC 私网连接文档进行配置:

NAT 网关配置

公有云平台提供的 NAT 网关可以提供网络地址转换服务,为 BYOC 部署提供访问公网资源的能力,无需 VPC 对等连接。您可以在 BYOC 部署所在 VPC 内添加 NAT 网关,请参考各公有云 NAT 网关文档进行配置:

连接到部署

您可以使用任何 MQTT 客户端工具连接到部署进行测试,我们推荐使用 MQTTX 连接到部署