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