混合云中使用专线-VPN访问BOS
概览
该教程为混合云中使用专线/ VPN 通过内网访问 BOS 提供解决方案。
应用场景
混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。企业出于安全考虑更愿意将数据存放在私有云中,但是同时又希望获得公有云的计算资源。百度智能云混合云方案中客户 IDC 和百度智能云 VPC 通过专线/ VPN 打通,实现云上云下业务紧密连接,既可以利用云上资源的按需使用和易扩展的特性,又可以利用本地 IDC 满足合规性要求。
专线/ VPN 能为客户 IDC 访问 BOS 提供高速安全的传输通道。但在混合云方案中,客户 IDC 访问 BOS 时(例如把本地数据备份到云上),由于客户 IDC 解析 BOS 域名得到的是 BOS 公网 IP 地址,所以数据流还是走公网传输,无法直接通过专线/ VPN内网访问BOS服务。
实践方案
方案1:使用VPC服务网卡
服务网卡是一个高可用高扩展性的 VPC 访问 BOS 代理,可以将 BOS 等 VPC 外部公共服务映射到 VPC 内部,也可以挂载服务发布点生成的服务域名,用户可以在 VPC 内或者混合云对端通过内网便捷、安全地访问这些服务。
配置前您需要了解:
- 每个VPC可支持20个服务网卡。
- 一块服务网卡仅属于一个子网,其IP地址必须属于该子网CIDR块中。
- 单服务每个子网仅支持一个服务网卡。
- 服务网卡后端可挂载本地域服务。
Step1:创建服务网卡
登录服务网卡控制台点击创建服务网卡,对服务网卡进行配置。
配置项说明:
- 请选择与需要访问的bucket相同的地域,跨地域访问依然会通过公网访问。
- 服务网卡的IP地址可在所在的子网段内指定。
- 挂载服务选择对象存储,并选择对应的BOS服务Endpoint。
Step2:确认服务网卡配置
创建完成后请在服务网卡列表中查看创建的服务网卡相关配置,并确认服务网卡对应的服务名称与要访问的BOS服务Endpoint相同。
Step3:通过服务网卡访问BOS服务
确认服务网卡和专线/VPN的配置均无误后,可在IDC内将访问BOS服务的域名替换为服务网卡的内网IP,即可通过专线/VPN直接通过内网访问BOS服务。
方案2:使用BCC作为访问代理
概述
混合云中使用专线/ VPN 访问 BOS 方案的核心是使用 BCC 作为访问代理:
- 首先申请一台 BCC 并安装 Nginx,作为到 BOS 的反向代理;
-
修改客户 IDC 机器的本地 DNS 记录,把访问 BOS 的请求指向 Nginx 代理。
注意:本方案只能保证同区域下访问 BOS 走专线/ VPN 和内网。例如客户 IDC 和百度智能云的北京 VPC 打通,本方案可以利用专线/ VPN 访问位于北京的 BOS Bucket;但如果客户去访问位于广州的 BOS Bucket,数据还是会走公网传输。
配置Nginx反向代理
- 首先申请一台 BCC。推荐配置:2 核 CPU、4G 内存、CentOS 7.1,无需配置公网 IP。
-
安装 Nginx。由于我们需要额外的 stream 模块来提供 TCP 协议代理,所以还需要安装 stream 模块。
a)
yum install nginx nginx-mod-stream
b) 配置 Nginx:
cd /nginx/ vim nginx.conf
把 nignx.conf 修改成如下配置,注意下述配置适用于北京区域,如果想访问广州区域的 BOS,把配置文件里的 bj 替换成 gz 即可:
#user work; worker_processes auto; events { worker_connections 1024; } stream { error_log logs/access.log info; # The backend address of BOS in Beijing upstream httpbosbj { server bj.bcebos.com:80; } upstream httpsbosbj { server bj.bcebos.com:443; } server { listen 80; proxy_pass httpbosbj; # Proxy settings proxy_connect_timeout 5s; proxy_timeout 90s; proxy_buffer_size 4k; } server { listen 443; proxy_pass httpsbosbj; # Proxy settings proxy_connect_timeout 5s; proxy_timeout 90s; proxy_buffer_size 4k; } }
c) 验证配置文件并启动 Nginx(需要 root ):
nginx -t mkdir –p /usr/share/nginx/logs
确认 Nginx 成功启动:
配置客户IDC节点
配置本地 DNS 记录,让客户 IDC 机器把访问 BOS 的请求指向到 Nginx 中转机。例如在 CentOS 环境下,在 /etc/hosts 中添加记录:
nginxIp bj.bcebos.com
这里 nginxIp 就是上面配置的 Nginx 反向代理的内网 IP 地址,eg. 192.168.1.5。Windows 等环境下修改本地 DNS 记录同理。
测试
配置完成后您就可以使用专线/ VPN 从 IDC 机器访问 BOS 了,您可以使用 BOS SDK、CLI、BOS 桌面等各种工具进行文件上传和管理。
此外,您还可以登录 Nginx 代理节点检查日志来确认 Nginx 反向代理工作状态是否正常:
less /usr/local/nginx/logs/access.log
说明:
- 本教程提供的方案可以满足大多数情况下的访问 BOS 需求。在 2 核 4G 配置下,代理节点可以支撑 1000 并发连接(这是由于 BOS 出于防 DDoS 原因限制了单 IP 的并发访问连接数)和 1Gbps 的访问速度。
- 不过本方案有如下限制:(1) Nginx 代理是潜在的单点故障,您需要维护这台 BCC 实例保证其运行正常;(2)如果需要更高的上传速度和更多的并发连接,可以进一步提高 Nginx 节点配置或增加额外 Nginx 节点等。