一、云盒是什么:公共云能力本地化部署的全托管基础设施
阿里云云盒(CloudBox)是面向企业本地数据中心的软硬一体化云基础设施,将阿里云公共云的计算、存储、网络、安全与PaaS服务完整下沉至用户机房,实现“公共云能力,本地化部署”的全托管服务模式。云盒采用标准42U机柜设计,工厂预安装完成后交付至用户IDC,通电通网即可接入阿里云公共云控制台统一管理。云盒的核心价值体现在四个维度:本地数据处理使数据不出机房,满足金融、政务、制造等行业数据合规要求;超低时延使本地设备与云盒资源就近交互,时延可控制在1毫秒以内,适配工业互联网、边缘计算等场景;全托管免运维由阿里云负责硬件交付、安装、运维与版本升级,用户无需投入硬件运维团队;与公共云一致体验使控制台、API、SDK与公共云完全兼容,无缝使用ECS、RDS、OSS、容器服务等产品。
云盒的典型应用场景包括:数据合规监管场景(数据必须本地存储)、低时延业务场景(工业控制、实时风控)、本地IDC云化改造场景(老旧机房升级为云原生架构)、混合云多活场景(本地与公共云双活容灾)、分支机构统一管理场景(多地域IDC集中管控)。
需要先登录阿里云控制台,点击:阿里云控制台
二、前期规划:部署条件确认与资源规格设计
云盒的部署并非简单的设备上架,需要在采购前完成详细的机房环境工勘与资源规格规划。阿里云会与用户约定上门时间对本地IDC进行工勘,判断IDC是否满足云盒部署条件。
2.1 机房环境要求
云盒部署需满足标准IDC机房环境条件。机柜方面需要标准的42U机柜,长1200毫米、宽600毫米、高2055毫米,机柜前方保留1220毫米、后方保留610毫米的操作空隙。电梯和走廊需有足够物理空间确保机柜运送,现场运输通道全程净高不低于2200毫米。温湿度方面服务器工作环境温度为5至30摄氏度,环境温度变化率低于每小时20摄氏度及每15分钟5摄氏度,相对湿度为30%至80%。重量方面物理位置的承重需满足订单对应硬件设备的最大重量,海拔不超过1500米。防雷与接地设计应按照通信局站防雷与接地工程设计规范执行,机房建筑抗震设防类别不低于丙类。
2.2 资源规格规划
云盒以机柜为单位交付,最小配置包含1个计算SKU(208 vCPU、384 GiB内存)与12 TiB ESSD PL0块存储,支持扩展至多机柜集群。规划时需明确核心资源需求:计算资源方面需确定vCPU、内存总量及ECS实例规格(支持神龙裸金属、ECS共享型与企业型);存储资源方面需确定块存储(ESSD PL0/PL1/PL2)与对象存储OSS容量,评估是否需要本地快照功能;网络资源方面需确定上联交换机数量(建议2台冗余)、端口速率(10 Gbps)、VLAN规划及IP地址段分配;带宽资源方面管控带宽建议不低于50 Mbps,业务上云带宽需根据数据传输量选择物理专线或智能接入网关。
2.3 网络规划核心要点
云盒网络分为管控网络(连接阿里云公共云控制台,传输指令、心跳、监控数据)与业务网络(本地IDC与云盒、云盒与公共云业务互通)。核心规划原则包括:预留2个/30子网段用于云盒与公共云管控互通;云盒子网与本地IDC网段、公共云VPC网段需三层可达;云盒内ECS不支持绑定公网EIP,公网访问需通过公共云NLB/CLB或本地防火墙转发。为保证云盒的使用体验,建议云盒网络连接的最小带宽不低于50 Mbps。
三、控制台采购:部署点创建与云盒资源购买
云盒部署在用户指定的本地机房中,目前已支持线上下单购买。购买云盒时,需要在公共云控制台创建云盒的部署点,然后在部署点上创建云盒并购买云盒资源。
3.1 步骤一:创建部署点
部署点是云盒部署的物理位置,用来放置云盒的硬件基础设施。部署点必须满足电源、网络、环境等要求。进入云盒的部署点页签:登录ECS管理控制台,在左侧导航栏选择云盒,在顶部菜单栏左上角处选择地域,单击部署点页签。单击创建部署点,配置部署点名称、描述、国家、省/市、街道地址详情等基本信息。完成交付条件调研,包括机房的基本资料、空间、环境、供电和网络等信息,根据实际机房现状填写。
3.2 步骤二:创建云盒
创建部署点后,在该部署点创建空的云盒。在ECS控制台的云盒页面单击云盒列表页签,单击创建云盒,配置云盒名称、描述、选择已创建好的部署点,以及云盒可用区标识。云盒交付并验收后,当云盒状态为运行中时无法修改这些配置。
3.3 步骤三:购买云盒资源
创建云盒后需要购买云盒资源,包括计算SKU和块存储等。在云盒可购买资源目录页签选择要购买的计算SKU,修改购买数量后关联云盒。一个云盒至少包含一个计算SKU。按需购买存储、增值服务包等,并配置付费信息。计算资源的计费方式为费用等于单价乘以数量乘以订购时长。
3.4 交付与验收
购买完成后,阿里云将硬件设备运送到用户机房进行安装部署。云盒在工厂完成了预安装,只需要通电、通网并做简单调试,用户就能在公共云控制台上使用云盒内的计算和存储资源。在ECS控制台的云盒页面单击云盒列表页签,找到目标云盒并单击云盒ID,在订单管理页签找到待验收的订单,单击对应操作列的验收。
四、网络对接:VPC延伸与组网方案
云盒可以将阿里云的专有网络VPC延伸到用户本地IDC,实现和公共云一致的使用体验。专有网络VPC是逻辑上彻底隔离的云上私有网络,通过在指定地域部署云盒并创建虚拟交换机(子网)可以将云上VPC延伸到本地IDC的云盒中。
4.1 VPC延伸机制
一个云盒对应一个可用区,可以根据需要创建虚拟交换机实现将VPC延伸到云盒。一个云盒可以被多个VPC延伸,即一个云盒可以创建多个交换机子网。云盒的网络能力与公共云网络能力一致,支持子网路由、网络ACL和安全组等。云盒内部访问(同子网、跨子网)在云盒内网完成,不经过公共云。云盒内的云产品实例不支持绑定云上公网IP地址,包括EIP和NatPublicIp。
4.2 物理专线组网
云盒与公共云之间的网络连接采用物理专线实现互通,目前仅支持独享专线。物理专线的部署要求如下:提供1台或2台云盒上联交换机(建议2台),物理速率10 Gbps。上联交换机需支持边界网关协议BGP、三层子接口、dot1q协议。云盒上联交换机和云盒之间需支持eBGP协议、VLANs、子接口及VRF特性。上云通道和高速通道需支持10 Gbps速率的物理接口,每台云盒上联交换机至少提供2个物理接口(单柜)或4个物理接口(多柜)。
云盒物理专线端口购买需要联系阿里云客户经理申请权限,云盒专线端口费用为0元,但需要进行0元续费否则将影响端口状态。云盒物理专线开通后,还需要为云盒物理专线创建一个边界路由器VBR,该VBR是实现数据从VPC到本地IDC转发的桥梁。
4.3 智能接入网关备选方案
若企业本地数据中心尚未部署专线,可选择智能接入网关SAG方式接入。通过公网访问需购买SAG带宽,按月或年付费。在云盒与公共云之间网络互通的前提下,如果云盒内ECS实例和云上ECS实例属于同一VPC网络,两者之间无需其他配置即可实现私网互通。
五、安全组与访问控制设计
安全组是一种虚拟防火墙,在同一VPC中可以根据业务需求创建多个安全组,从而控制不同ECS实例的网络访问。例如将云盒内的ECS实例加入到A安全组,将公共云内的ECS实例加入到B安全组,则在未添加任何安全组规则的情况下,云盒内的ECS实例和公共云的ECS实例之间互相网络隔离。
安全组策略设计应遵循最小权限原则:仅开放业务必需的端口(如HTTP的80端口、HTTPS的443端口、SSH的22端口等);限制源IP访问范围,仅允许可信IP段访问管理端口;将不同业务系统的ECS实例划分到不同安全组,实现故障隔离;定期审查安全组规则,移除过期或冗余的规则。
六、云产品实例创建:ECS、RDS与OSS ON云盒
6.1 创建ECS实例
云盒交付并验收后,状态为运行中时即可在云盒内创建ECS实例。创建ECS实例的流程与公共云一致:选择地域和云盒可用区,选择实例规格(支持神龙裸金属、ECS共享型与企业型),配置网络(选择已创建的VPC和云盒子网),设置安全组,选择镜像(支持公共镜像、自定义镜像和共享镜像),配置存储(ESSD云盘),最后确认订单并创建。
6.2 OSS ON云盒概述
OSS ON云盒是部署在云盒内的对象存储服务,用户可以在OSS ON云盒中创建存储空间(Bucket),并使用与公共云一致的API、SDK访问云盒中的OSS。OSS ON云盒适用于业务要求低延时、多分支机构统一管理等场景。目前仅华东1(杭州)、华东2(上海)、华南1(深圳)、华南2(河源)、华北2(北京)、西南1(成都)地域支持使用OSS ON云盒服务。
6.3 创建云盒Bucket
使用OSS控制台创建云盒Bucket:在左侧导航栏选择OSS,单击创建Bucket。参数配置方面Bucket名称只能包括小写字母、数字和短划线,必须以小写字母或者数字开头和结尾,长度必须在3至63字符之间。地域选择已购买的云盒资源所在地域。Endpoint分为管控域名(格式为Cloudbox-Id.Region.oss-cloudbox-control.aliyuncs.com)和数据域名(格式为Cloudbox-Id.Region.oss-cloudbox.aliyuncs.com)。存储类型仅支持标准存储,存储冗余类型仅支持本地冗余存储。读写权限建议选择私有,只有存储空间的拥有者可以读写文件。云盒ID选择已购买的云盒ID。版本控制可选择开通以保存覆盖或删除操作的历史版本。服务端加密方式可选择OSS完全托管使用AES256加密。
七、Java SDK对接:OSS ON云盒开发实战
OSS ON云盒支持通过Java SDK进行对接,Java SDK要求3.15.0及以上版本。以下通过完整的代码示例展示云盒Bucket的创建、文件上传和文件下载操作。
7.1 环境准备与依赖配置
在Maven项目的pom.xml中添加OSS SDK依赖:
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.15.0</version> </dependency>
运行代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
7.2 创建云盒Bucket示例
import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import com.aliyun.oss.model.CreateBucketRequest; import com.aliyun.oss.common.auth.DefaultCredentialProvider; import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider; import com.aliyun.oss.common.auth.CredentialsProviderFactory; import com.aliyun.oss.common.comm.SignVersion; import com.aliyun.oss.ClientBuilderConfiguration; public class CreateCloudBoxBucket { public static void main(String[] args) throws Exception { // 填写云盒Bucket的数据域名 String endpoint = "https://cb-example****.cn-hangzhou.oss-cloudbox.aliyuncs.com"; // 从环境变量中获取访问凭证 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // 填写云盒所在地域 String region = "cn-hangzhou"; // 填写云盒ID String cloudBoxId = "cb-example****"; // 填写云盒Bucket名称 String bucketName = "my-cloudbox-bucket"; ClientBuilderConfiguration conf = new ClientBuilderConfiguration(); conf.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(new DefaultCredentialProvider( credentialsProvider.getCredentials())) .clientConfiguration(conf) .region(region) .cloudBoxId(cloudBoxId) .build(); try { CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); // 设置Bucket的读写权限为私有 createBucketRequest.setCannedACL(CannedAccessControlList.Private); ossClient.createBucket(createBucketRequest); System.out.println("云盒Bucket创建成功:" + bucketName); } catch (OSSException oe) { System.out.println("OSSException: " + oe.getErrorMessage()); } catch (ClientException ce) { System.out.println("ClientException: " + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
7.3 上传文件到云盒Bucket示例
import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.PutObjectRequest; import java.io.File; public class UploadToCloudBox { public static void main(String[] args) throws Exception { String endpoint = "https://cb-example****.cn-hangzhou.oss-cloudbox.aliyuncs.com"; EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); String region = "cn-hangzhou"; String cloudBoxId = "cb-example****"; String bucketName = "my-cloudbox-bucket"; String objectName = "exampledir/examplefile.txt"; String localFilePath = "D:\\localpath\\examplefile.txt"; ClientBuilderConfiguration conf = new ClientBuilderConfiguration(); conf.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(new DefaultCredentialProvider( credentialsProvider.getCredentials())) .clientConfiguration(conf) .region(region) .cloudBoxId(cloudBoxId) .build(); try { PutObjectRequest putObjectRequest = new PutObjectRequest( bucketName, objectName, new File(localFilePath)); ossClient.putObject(putObjectRequest); System.out.println("文件上传成功:" + objectName); } catch (Exception e) { e.printStackTrace(); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
7.4 从云盒Bucket下载文件示例
import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.GetObjectRequest; import java.io.File; public class DownloadFromCloudBox { public static void main(String[] args) throws Exception { String endpoint = "https://cb-example****.cn-hangzhou.oss-cloudbox.aliyuncs.com"; EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); String region = "cn-hangzhou"; String cloudBoxId = "cb-example****"; String bucketName = "my-cloudbox-bucket"; String objectName = "exampledir/examplefile.txt"; String localFilePath = "D:\\download\\examplefile.txt"; ClientBuilderConfiguration conf = new ClientBuilderConfiguration(); conf.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(new DefaultCredentialProvider( credentialsProvider.getCredentials())) .clientConfiguration(conf) .region(region) .cloudBoxId(cloudBoxId) .build(); try { ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(localFilePath)); System.out.println("文件下载成功:" + localFilePath); } catch (Exception e) { e.printStackTrace(); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
7.5 列举云盒Bucket示例
仅支持通过Java SDK列举某个云盒ID下的所有云盒Bucket,Java SDK要求3.15.0及以上版本。
import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.Bucket; import java.util.List; public class ListCloudBoxBuckets { public static void main(String[] args) throws Exception { String endpoint = "https://cb-example****.cn-hangzhou.oss-cloudbox.aliyuncs.com"; EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); String region = "cn-hangzhou"; String cloudBoxId = "cb-example****"; ClientBuilderConfiguration conf = new ClientBuilderConfiguration(); conf.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(new DefaultCredentialProvider( credentialsProvider.getCredentials())) .clientConfiguration(conf) .region(region) .cloudBoxId(cloudBoxId) .build(); try { List<Bucket> buckets = ossClient.listBuckets(); for (Bucket bucket : buckets) { System.out.println("Bucket名称:" + bucket.getName() + ",创建时间:" + bucket.getCreationDate()); } } catch (Exception e) { e.printStackTrace(); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
八、ACK容器服务集成:云盒节点池搭建
ACK专有集群支持通过创建云盒节点池,使用已部署的云盒内的资源。如需在ACK专有集群中使用云盒资源,需要提交工单申请开通ACK专有集群创建权限。
8.1 前提条件与使用限制
使用云盒资源前需已完成云盒创建、资源购买以及云盒验收,且云盒状态为运行中。使用限制方面:使用云盒资源的ACK专有集群必须与云盒在同一地域内;ACK专有集群无法在云盒可用区上创建ALB、公网NAT Gateway,但可以在公共云可用区创建公网NAT Gateway;Pod、云盒上的SLB以及云盒上的工作节点均不支持挂载EIP;仅支持使用Flannel网络插件的ACK专有集群使用云盒资源,Terway网络插件不支持;云盒内LoadBalancer类型的Service只支持挂载云盒ECS实例;不支持在云盒可用区上创建带加密盘的工作节点和选择抢占式实例作为工作节点。
8.2 网络中断时的行为
云盒与公共云之间的网络连接中断时,集群内云盒ECS实例节点会继续工作,但是用户不能管理云盒内节点上运行的工作负载,或在集群中添加新的云盒ECS实例。建议尽快检查云盒网络并恢复网络连接。
九、EDAS混合云应用部署
EDAS支持将公共云ECS、本地IDC或其他云服务提供商的服务器通过专线连通,并添加到EDAS混合云ECS集群中,即可将应用托管到混合云ECS集群。阿里云云盒作为基于阿里公共云飞天架构的本地化部署云服务,可以与EDAS无缝集成。基于云盒的EDAS混合云应用部署方案可以有效解决混合云场景下业务应用对数据安全、数据本地处理、低延时等需求,实现混合云环境下不同ECS实例和应用的统一管理。
操作步骤包括:购买云盒服务并在云盒内创建ECS实例;开通EDAS服务(专业版或铂金版);在EDAS ECS集群页面选择地域和微服务空间,单击创建集群;将云盒内的ECS实例添加到混合云ECS集群中;部署应用并进行发布管理。
十、运维监控:一站式控制台与智能告警
阿里云全新升级云盒控制台,提供集中化、高效便捷的云资源管理体验,覆盖云盒全生命周期,简化运维流程,提升资源利用率。用户可进行云盒部署配置、资源弹性伸缩、续费管理、云产品实例管理、实例迁移、镜像加速、监控告警及安全审计等操作,实现一站式云资源掌控。
10.1 控制台管理功能
控制台采用统一操作界面整合了云盒相关的所有管理功能,用户平均操作步骤减少40%。主要功能模块包括:基础设施部署支持部署点创建、资源配置、网络拓扑设计等初始化操作;弹性扩展可根据负载情况动态调整计算、存储资源配额,扩容操作响应时间控制在分钟级;实例管理支持创建并管理各类云服务实例,提供实例迁移和镜像加速功能。
10.2 监控与告警配置
监控系统可实时采集包括计算资源利用率、存储IOPS、网络延迟等12类运行指标。当检测到异常时,系统会触发预设的告警机制及时通知运维人员。审计日志功能完整记录所有管理操作,满足金融等行业的安全合规要求。云盒提供容量监控、性能监控和主动运维能力,方便用户查看云盒内资源运行情况。
告警配置有两种方式:通过云盒控制台为某个云盒设置报警规则,规则配置相对简单,适用于监控指标需求单一、快速操作的场景;通过云监控控制台为一个或多个云盒设置报警规则,规则配置更为复杂,适用于监控指标需求复杂的场景。
十一、成本优化策略
云盒的成本优化应从资源规划、采购策略和运维管理三个维度综合考虑。
11.1 精准评估资源需求
通过历史业务数据预测计算资源和存储需求,避免过度采购。例如电商企业可在大促前临时扩容,而非长期保留冗余资源。精准匹配业务需求,选择与实际需求匹配的计算SKU和存储容量。
11.2 合理选择计费模式
云盒计算资源费用等于单价乘以数量乘以订购时长。存储资源包费用计算方式为预付费用等于有效期乘以存储资源包容量乘以存储资源包单价。长期使用可选择包年包月享受折扣,使用满1年且不满3年可享受8.5折优惠。
11.3 网络流量成本控制
云盒内ECS与同地域公共云ECS通过内网互通,不产生外网流量费用。应优先利用内网传输数据,避免通过公网传输大量数据产生额外费用。若需公网访问,建议通过公共云NLB/CLB进行流量转发和集中管理。
十二、常见问题与排查
以下汇总了使用云盒时的常见问题及排查思路。
问题一:云盒部署需要哪些条件?云盒的硬件设施以整机柜形式部署到本地IDC,需满足机柜、环境、网络、电力等要求。购买云盒后阿里云会进行现场工勘确认部署条件。
问题二:云盒与公共云网络中断怎么办?网络中断时云盒内ECS实例继续工作,但无法通过控制台管理。应尽快检查物理专线或SAG连接状态,联系运营商排查线路问题。
问题三:云盒内ECS如何访问公网?云盒内ECS不支持绑定EIP,公网访问需通过公共云NLB/CLB或本地防火墙进行转发。
问题四:OSS ON云盒支持哪些操作?支持创建Bucket、上传下载Object、设置Object ACL、列举Bucket等操作。目前仅支持Java SDK(3.15.0及以上版本)进行开发对接。
问题五:ACK集群使用云盒资源有哪些限制?仅支持Flannel网络插件,不支持Terway;不支持创建ALB、公网NAT Gateway和EIP;不支持加密盘和抢占式实例节点。
问题六:云盒的硬件设备归谁所有?云盒机柜内的服务器和网络设备归属阿里云所有,由阿里云提供维保服务。用户在未经阿里云书面授权的情况下不能移动和操作云盒内的设备。