CockroachDB Cloud #
一、CockroachDB Cloud概述 #
1.1 服务类型 #
text
CockroachDB Cloud 服务类型
┌─────────────────────────────────────────────────────────────┐
│ │
│ Serverless: │
│ ├── 按使用量付费 │
│ ├── 自动扩展 │
│ ├── 适合开发和测试 │
│ └── 适合小型应用 │
│ │
│ Dedicated: │
│ ├── 专用资源 │
│ ├── 高性能 │
│ ├── 适合生产环境 │
│ └── 适合企业应用 │
│ │
│ Enterprise: │
│ ├── 企业级支持 │
│ ├── 高级安全特性 │
│ └── 合规认证 │
│ │
└─────────────────────────────────────────────────────────────┘
1.2 云服务优势 #
| 优势 | 说明 |
|---|---|
| 免运维 | 无需管理基础设施 |
| 高可用 | 自动故障恢复 |
| 弹性扩展 | 自动扩缩容 |
| 安全合规 | 企业级安全 |
二、Serverless集群 #
2.1 创建Serverless集群 #
text
创建步骤:
1. 访问 CockroachDB Cloud Console
https://cockroachlabs.cloud/
2. 创建新集群
- 选择 Serverless
- 选择云服务商 (AWS/GCP)
- 选择区域
- 设置集群名称
3. 获取连接信息
- 下载CA证书
- 获取连接字符串
4. 连接集群
psql "postgresql://<user>:<password>@<host>:26257/defaultdb?sslmode=verify-full&sslrootcert=certs/ca.crt"
2.2 连接Serverless #
python
# Python 连接示例
import psycopg2
conn = psycopg2.connect(
host='free-tier.gcp-us-central1.cockroachlabs.cloud',
port=26257,
database='defaultdb',
user='username',
password='password',
sslmode='verify-full',
sslrootcert='certs/ca.crt'
)
go
// Go 连接示例
package main
import (
"database/sql"
"github.com/lib/pq"
)
func main() {
connStr := "postgresql://username:password@host:26257/defaultdb?sslmode=verify-full&sslrootcert=certs/ca.crt"
db, _ := sql.Open("postgres", connStr)
defer db.Close()
}
2.3 Serverless限制 #
text
Serverless 限制
┌─────────────────────────────────────────────────────────────┐
│ │
│ 资源限制: │
│ ├── 最大存储: 10GB │
│ ├── 最大请求单位: 根据套餐 │
│ └── 并发连接数: 限制 │
│ │
│ 功能限制: │
│ ├── 不支持某些企业功能 │
│ ├── 备份保留期有限 │
│ └── 监控功能有限 │
│ │
│ 适用场景: │
│ ├── 开发和测试 │
│ ├── 小型应用 │
│ ├── 原型验证 │
│ └── 学习和培训 │
│ │
└─────────────────────────────────────────────────────────────┘
三、Dedicated集群 #
3.1 创建Dedicated集群 #
text
创建步骤:
1. 选择 Dedicated 类型
2. 配置集群规格
- 节点数量
- 节点规格 (CPU, 内存)
- 存储大小
- 存储类型 (SSD/NVMe)
3. 选择部署位置
- 云服务商 (AWS/GCP/Azure)
- 区域选择
- 多区域配置
4. 配置网络
- VPC配置
- IP白名单
- 私有连接
5. 创建集群
3.2 Dedicated配置 #
text
Dedicated 配置选项
┌─────────────────────────────────────────────────────────────┐
│ │
│ 节点规格: │
│ ├── Small: 2 vCPU, 8GB RAM │
│ ├── Medium: 4 vCPU, 16GB RAM │
│ ├── Large: 8 vCPU, 32GB RAM │
│ └── XLarge: 16 vCPU, 64GB RAM │
│ │
│ 存储配置: │
│ ├── 类型: SSD / NVMe │
│ ├── 大小: 100GB - 64TB │
│ └── IOPS: 可配置 │
│ │
│ 节点数量: │
│ ├── 最小: 3 │
│ ├── 推荐: 5 或更多 │
│ └── 奇数节点 │
│ │
│ 多区域: │
│ ├── 支持多区域部署 │
│ ├── 跨区域高可用 │
│ └── 数据本地性 │
│ │
└─────────────────────────────────────────────────────────────┘
3.3 高级配置 #
sql
-- 在Cloud Console中配置Zone
-- 或通过SQL配置
-- 配置副本数
ALTER DATABASE mydb CONFIGURE ZONE USING
num_replicas = 5;
-- 配置区域放置
ALTER DATABASE mydb CONFIGURE ZONE USING
constraints = '[+region=us-east]';
四、安全管理 #
4.1 访问控制 #
text
访问控制配置
┌─────────────────────────────────────────────────────────────┐
│ │
│ IP白名单: │
│ ├── 允许特定IP访问 │
│ ├── 支持CIDR格式 │
│ └── 可配置多个规则 │
│ │
│ 私有连接: │
│ ├── AWS PrivateLink │
│ ├── GCP Private Service Connect │
│ └── Azure Private Link │
│ │
│ VPC对等: │
│ ├── 连接您的VPC │
│ ├── 私有网络访问 │
│ └── 更高安全性 │
│ │
└─────────────────────────────────────────────────────────────┘
4.2 认证配置 #
sql
-- 创建用户
CREATE USER app_user WITH PASSWORD 'secure_password';
-- 配置SSL
-- Cloud自动管理SSL证书
-- 使用IAM认证 (AWS)
-- 在Cloud Console中配置
4.3 审计日志 #
text
审计日志功能:
├── 记录所有SQL操作
├── 记录登录尝试
├── 记录权限变更
└── 导出到云存储
配置方式:
1. 在Cloud Console启用审计日志
2. 配置日志导出目标
3. 设置保留策略
五、备份与恢复 #
5.1 自动备份 #
text
自动备份配置
┌─────────────────────────────────────────────────────────────┐
│ │
│ Serverless: │
│ ├── 自动每日备份 │
│ ├── 保留7天 │
│ └── 时间点恢复 (24小时内) │
│ │
│ Dedicated: │
│ ├── 可配置备份频率 │
│ ├── 可配置保留期 │
│ ├── 支持增量备份 │
│ └── 跨区域备份 │
│ │
│ 备份存储: │
│ ├── 存储在云对象存储 │
│ ├── 加密存储 │
│ └── 跨区域复制 │
│ │
└─────────────────────────────────────────────────────────────┘
5.2 手动备份 #
sql
-- 创建手动备份
BACKUP DATABASE mydb TO 'external://backup_bucket/mydb_backup';
-- 配置外部存储
CREATE EXTERNAL CONNECTION backup_bucket
AS 's3://my-bucket/backups?AWS_ACCESS_KEY_ID=xxx&AWS_SECRET_ACCESS_KEY=xxx';
-- 恢复数据
RESTORE DATABASE mydb FROM 'external://backup_bucket/mydb_backup';
六、监控与告警 #
6.1 Cloud Console监控 #
text
监控功能:
├── 集群概览
│ ├── 节点状态
│ ├── 存储使用
│ └── QPS统计
│
├── SQL指标
│ ├── 查询延迟
│ ├── 连接数
│ └── 错误率
│
├── 性能分析
│ ├── 慢查询
│ ├── 热点Range
│ └── 事务冲突
│
└── 告警配置
├── 存储告警
├── 性能告警
└── 自定义告警
6.2 集成Prometheus #
yaml
# 在Cloud Console中获取Prometheus端点
# 配置Prometheus抓取
scrape_configs:
- job_name: 'cockroachdb_cloud'
metrics_path: '/_status/vars'
static_configs:
- targets:
- '<cluster-host>:8080'
basic_auth:
username: '<username>'
password: '<password>'
七、成本管理 #
7.1 Serverless计费 #
text
Serverless 计费模型
┌─────────────────────────────────────────────────────────────┐
│ │
│ 请求单位 (RU): │
│ ├── 1 RU = 1次简单读取 │
│ ├── 写入消耗更多RU │
│ └── 复杂查询消耗更多RU │
│ │
│ 存储费用: │
│ ├── 按GB/月计费 │
│ └── 包含在免费额度中 │
│ │
│ 免费额度: │
│ ├── 每月 5000万 RU │
│ └── 10GB 存储 │
│ │
│ 超出部分: │
│ ├── RU: $0.20 / 100万 RU │
│ └── 存储: $0.50 / GB / 月 │
│ │
└─────────────────────────────────────────────────────────────┘
7.2 Dedicated计费 #
text
Dedicated 计费模型
┌─────────────────────────────────────────────────────────────┐
│ │
│ 计费因素: │
│ ├── 节点规格 │
│ ├── 节点数量 │
│ ├── 存储大小 │
│ ├── 区域数量 │
│ └── 网络流量 │
│ │
│ 价格示例: │
│ ├── Small节点: ~$100/月 │
│ ├── Medium节点: ~$200/月 │
│ ├── Large节点: ~$400/月 │
│ └── 存储: ~$0.20/GB/月 │
│ │
│ 企业折扣: │
│ ├── 年度承诺折扣 │
│ ├── 大规模折扣 │
│ └── 联系销售 │
│ │
└─────────────────────────────────────────────────────────────┘
八、最佳实践 #
8.1 选择建议 #
text
选择建议
┌─────────────────────────────────────────────────────────────┐
│ │
│ 选择 Serverless: │
│ ├── 开发和测试环境 │
│ ├── 小型应用 (< 10GB) │
│ ├── 不确定工作负载 │
│ └── 成本敏感项目 │
│ │
│ 选择 Dedicated: │
│ ├── 生产环境 │
│ ├── 大型应用 (> 10GB) │
│ ├── 需要高性能 │
│ ├── 需要高级安全特性 │
│ └── 合规要求 │
│ │
│ 迁移路径: │
│ Serverless → Dedicated │
│ ├── 导出数据 │
│ ├── 创建Dedicated集群 │
│ ├── 导入数据 │
│ └── 更新应用配置 │
│ │
└─────────────────────────────────────────────────────────────┘
九、总结 #
CockroachDB Cloud要点:
| 特性 | Serverless | Dedicated |
|---|---|---|
| 计费 | 按使用量 | 按资源 |
| 扩展 | 自动 | 手动 |
| 适用 | 开发测试 | 生产环境 |
| 成本 | 低 | 中高 |
下一步,让我们学习CockroachDB Operator!
最后更新:2026-03-27