使用 IBM Cloud Direct Link 连接到 IBM Cloud Object Storage
您可以配置 IBM Cloud® Direct Link,以便您可以访问 IBM Cloud Object Storage (COS)。 虽然这里介绍的方法是针对 COS 设计和测试的,但它们也适用于某些其他 IBM Cloud 服务。
通过策略,IBM Cloud Direct Link 拒绝访问 IBM Cloud 专用服务端点,包括 COS 使用的端点。 本文介绍的技术依赖于通过客户 IBM Cloud 账户托管的服务器间接访问 COS。 设置完成后,每个客户的服务器可在 IBM Cloud 专用服务端点与其通过 Direct Link 连接的远程网络之间双向转发流量。
IBM Cloud Object Storage 是什么?
IBM Cloud Object Storage (COS) 是一种存储非结构化数据的网络级解决方案。 它提供了可靠性、安全性、可用性和灾难恢复功能,无需手动进行复制。
IBM Cloud Object Storage 中存储的信息经过加密,分散在多个地理位置。 它可以通过 S3 API 实现访问。 该服务使用 IBM Cloud Object Storage 服务提供的分布式存储技术。
IBM COS 提供三种配置:
- 与使用单一区域相比,跨区域服务可提供更高的耐用性和可用性,但代价是稍高的延迟。 此服务目前在美国和欧盟可用。 通过使用 Virtual Router Appliance (VRA),您还可以使用 Direct Link 连接到亚太地区的 COS。
- 区域 服务提供反向服务。 它将对象分布在单个区域内的多个可用性区域。 如果某个区域或可用区无法访问,对象存储仍可继续顺利运行。 当无法访问的数据中心重新上线时,任何遗漏的更改都会被应用。
- 单站点 服务提供对所选数据中心内 COS 的经济实惠访问。
COS 专用和公共端点
端点是应用程序用于发出 COS 命令以及与 COS 交换数据的 URL。 每个端点都使用相同的应用程序编程接口 (API) 与 COS 进行交互。
在 IBM Cloud 中调配的服务器使用专用 API 端点提供服务,包括 COS。 专用端点为 IBM Cloud 服务器提供了与服务的高速直接连接,而不会增加带宽成本。
COS 专用端点可让 IBM Cloud 客户访问与 IBM Cloud 内部相同的 COS 数据,但公共端点允许从任何装有互联网设备的地点进行访问。
下面两个警告适用于 COS 公共端点:
- 使用公共端点发生的计量带宽成本可能会超出 COS 服务所收取的使用费。
- 尽管所有数据在传输过程中都经过加密,但客户可能会对通过互联网传输的数据产生隐私方面的担忧或监管限制。
什么是 IBM Cloud Direct Link?
IBM Cloud Direct Link on Classic 是一个产品套件,使客户能够在其远程网络环境和 IBM Cloud 部署之间创建安全的专用连接。 通过 Direct Link 交换的数据绝不会暴露在互联网上。
通过 IBM Cloud Direct Link 使用 Cloud Object Storage (COS)
IBM 工程师开发了一种方法,允许购买了 COS 和 的 客户与 COS 专用端点进行远程连接。Direct Link IBM Cloud 此类型的连接扩充了专用服务端点的优点,使得 IBM Cloud 设施外部的客户机系统也可以使用这些端点。
此解决方案在随后的各部分中以图和文字方式进行了描述。
逆向代理
基本前提:远程客户通过专用服务器向 COS 发送请求,包括安全凭证。

远程站点的客户机发起了 HTTPS(安全 HTTP)COS 请求。 它们通过 IBM Cloud Direct Link 安全传输,目标是客户 IBM Cloud 账户中部署的_反向代理服务器_集群之一。 从那里,请求被传递到一个 COS 专用端点,经过处理后,将结果返回给远程调用客户端。
任何使用 COS 的示例客户端代码也应能通过_反向代理服务器_运行。 唯一需要改变的是,客户端不再以 IBM 发布的 COS 专用端点 URL 为目标,而是以反向代理服务器的 IP 地址或 URL 为目标。
安装 Nginx 逆向代理
NginX 是一款成熟、小巧、快速的开放源码网络服务器,擅长执行特殊任务,包括_反向代理服务器_角色。
以下指示信息和配置信息 (用于设置 NginX 逆向代理服务器) 可以在您使其适应您的环境后工作。 如果遇到问题或需要更多信息,请参阅 Nginx 文档的反向代理部分,或搜索 stackoverflow 获取示例。
- 为 VSI 或裸机服务器配置最低限度的 RHEL 或 CentOSLinux 构建(推荐)。
- 对于每个 VSI,在公共接口上启用以下安全组规则:
allow_http
、allow_https
、allow_outbound
和allow_ssh
- 为每个 VSI 启用专用接口上的
allow_all
和allow_outbound
规则;选择保存。 - 使用 PuTTY 或桌面终端程序,以根用户身份登录新服务器
ssh
。 - 升级操作系统 (
yum update
)。 - 安装 EPEL 资源库 (
yum install epel-release
)。 - 安装 NginX (
yum install nginx
)。 - 启动 NginX (
nginx
) 并在浏览器中打开服务器的 IP 地址。 nginx.conf
的缺省位置为/etc/nginx
。 创建安全副本。- 将
nginx.conf
配置文件示例移至/etc/nginx
。 - 通过 IBM Cloud 控制台购买 SSL 证书,或运行
yum install easy-rsa
命令,并查看自己喜欢的在线文档,了解创建自签名证书的技巧。 - 将证书信息添加到配置文件中,
nginx.conf
。 - 使用
nginx -t
命令测试修改后的 NginX 配置。 - 如果测试通过,请使用
nginx -s quit; sleep 3; nginx
命令重新启动nginx
。 - 现在,您的客户端可以向 NginX (代理)服务器的 IP 或 URL 提交 COS 请求。
注释:
- 该解决方案假定已订购 Direct Link 并已正确部署,但也可以在没有 的情况下进行测试。
- 可选择使用内存或磁盘缓存,
proxy_cache
。 - 较大的文件传输可能需要更长的
proxy_read_timeout
值。 - 使用
keepalive
或 Pacemaker 实现高可用性(自动故障切换)。
配置文件:nginx.conf
以下部分中显示了样本配置文件。 您可以复制并粘贴该文件。
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 5;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_http_version 1.1;
proxy_buffering off;
proxy_intercept_errors on;
# IBM COS Endpoints
# US
server {
listen 443 ssl http2;
server_name us-cos.myibmcloud.com;
ssl_certificate "/etc/pki/tls/certs/star.myibmcloud.com.pem";
ssl_certificate_key "/etc/pki/tls/private/star.myibmcloud.com.key";
location / {
proxy_set_header Host $server_name;
proxy_pass https://s3-api.us-geo.objectstorage.service.networklayer.com;
}
}
# Dallas
server {
listen 443 ssl http2;
server_name dal-cos.myibmcloud.com;
ssl_certificate "/etc/pki/tls/certs/star.myibmcloud.com.pem";
ssl_certificate_key "/etc/pki/tls/private/star.myibmcloud.com.key";
location / {
proxy_set_header Host $server_name;
proxy_pass https://s3-api.dal-us-geo.objectstorage.service.networklayer.com;
}
}
}
请参阅 端点和存储位置 以获取要在这些 proxy_pass
条目中使用的专用端点的列表。
提示:
- 为提高规模和弹性,可部署与不同端点相关联的多个代理服务器。
- 在客户端使用循环 DNS,以实现基本的故障转移和负载平衡功能。
- 代理服务器可以放在 Virtual Router Appliance (VRA) 后面以受到保护,也可用于集中日志记录。
管理和供应 IBM Cloud 功能
本部分为可以使用 IBM Cloud Direct Link 连接到的某些 IBM Cloud PaaS 和 SaaS 产品提供了文档快速链接。
供应裸机服务器
有关如何供应裸机服务器的详细指示信息,请参阅 供应: 从最受欢迎的服务器中选择。
调配 Virtual Router Appliance (VRA)
有关如何供应 VRA 的详细指示信息,请参阅 VRA 入门指南。
调配IBM Cloud Object Storage(COS)
- 有关如何供应 COS 的详细指示信息,请参阅 Cloud Object Storage 指南。
- 使用其中一个(先前列出的)专用端点创建与供应的 COS 帐户中的存储区或任何对象的接口。