混合云中使用专线-VPN访问BOS
所有文档

          对象存储 BOS

          混合云中使用专线-VPN访问BOS

          应用场景

          混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。企业出于安全考虑更愿意将数据存放在私有云中,但是同时又希望获得公有云的计算资源。百度智能云混合云方案中客户IDC和百度智能云VPC通过专线/VPN打通,实现云上云下业务紧密连接,既可以利用云上资源的按需使用和易扩展的特性,又可以利用本地IDC满足合规性要求。

          专线/VPN能为客户IDC访问BOS提供高速安全的传输通道。但在混合云方案中,客户IDC访问BOS时(例如把本地数据备份到云上),由于客户IDC解析BOS域名得到的是BOS公网IP地址,所以数据流还是走公网传输,无法利用专线/VPN。该教程为混合云中使用专线/VPN访问BOS提供解决方案。

          解决方案

          概述

          混合云中使用专线/VPN访问BOS方案的核心是使用BCC作为访问代理:

          1. 首先申请一台BCC并安装Nginx,作为到BOS的反向代理;
          2. 修改客户IDC机器的本地DNS记录,把访问BOS的请求指向Nginx代理。

            注意:本方案只能保证同区域下访问BOS走专线/VPN和内网。例如客户IDC和百度智能云的北京VPC打通,本方案可以利用专线/VPN访问位于北京的BOS Bucket;但如果客户去访问位于广州的BOS Bucket,数据还是会走公网传输。

          配置Nginx反向代理

          1. 首先申请一台BCC。推荐配置:2核CPU、4G内存、CentOS 7.1,无需配置公网IP。

          2. 安装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的访问速度。

          不过本方案有如下限制:

          • Nginx代理是潜在的单点故障,您需要维护这台BCC实例保证其运行正常;
          • 如果需要更高的上传速度和更多的并发连接,可以进一步提高Nginx节点配置或增加额外Nginx节点等。

          此外,VPC Endpoint即将上线,VPC Endpoint是一个高可用高扩展性的VPC访问BOS代理,敬请期待!

          上一篇
          HTTPS传输加密实践
          下一篇
          使用CDN加速BOS