手工激活在IDC内网的Storage Gateway

注:2021年Storage Gateway产品特性更新,支持通过图形界面在内网激活,本文部分内容可能已经不适用,因此请参考这篇。

一、背景

Storage Gateway是在IDC中提供云端存储服务的虚拟网关。Storage Gateway可以提供文件存储、块存储(IPSAN)和虚拟带库(VTL)三种协议。Storage Gateway部署在IDC内,对IDC内提供网络服务,对外需要从IDC所在的运行位置,发起网络到AWS云的对应区域的管理控制台和S3桶。

此外,在激活Storage Gateway时候,需要AWS控制台能够链接Storage Gateway所对应的虚拟机的暴露在外网的80端口,这个条件对于国内IDC来说较为苛刻:

  • 1、是因为很多IDC上下行带宽不对等,没有太多公网IP可以用来暴露;
  • 2、ICP备案的要求,未经备案就无法打开80端口。

因此,因此本文将描述在此场景下,无需暴露公网80端口,如何手工激活。

二、获得序列号

假设Storage Gateway背后是北京区域的S3存储桶。

在IDC内,找一个Linux或者MacOS机器,构建如下一个curl的请求地址。这里的IP地址是Storage Gateway部署在IDC内的私有网络IP地址。注意如果是宁夏区域,请替换如上URL中的cn-north-1为cn-northwest-1。

http://172.31.5.73/?gatewayType=FILE_S3&no_redirect&activationRegion=cn-north-1&region=cn-north-1

执行以上命令后,console返回结果如下。

C:\Users\labuser>curl "http://172.31.5.73/?gatewayType=FILE_S3&no_redirect&activationRegion=cn-north-1&region=cn-north-1"
1LKGG-RMQR0-2UFSK-BS4VP-V99K4
C:\Users\labuser>

请记住这里的序列号。

三、使用CLI激活

在可以连接到互联网的任意位置,选一台事先配置好了AWS CLI工具的客户端,用于CLI操作。请事先将CLI配置到Storage Gateway的存储桶所在区域,可用 aws s3 ls 命令确认CLI工作正常。

拼接如下命令并执行。

aws --region cn-north-1 storagegateway activate-gateway --activation-key 1LKGG-RMQR0-2UFSK-BS4VP-V99K4 --gateway-type FILE_S3 --gateway-name mygw1 --gateway-timezone GMT+8:00 --gateway-region cn-north-1 --endpoint-url https://storagegateway.cn-north-1.amazonaws.com.cn

在CLI上执行后,如果执行成功,返回结果如下。

{
    "GatewayARN": "arn:aws-cn:storagegateway:cn-north-1:420029960748:gateway/sgw-8F38D2E6"
}
(END)

这表示在对应区域创建了名为 sgw-8F38D2E6 的Storage Gateway。

四、初始化缓存磁盘

当激活成功后,来到AWS控制台,进入Storage Gateway服务,可以看见已经创建好了一个存储网关,但是他的状态是offline。此时要做的是需要等待。

等待大概五分钟后,刷新页面,就可以看到存储网关状态为Running,但是有个提示符号,页面下方提示需要分配磁盘。

点击Details详情标签页下的编辑本地磁盘,在弹出窗口中,可以看到Storage Gateway虚拟机上除了系统盘之外,数据盘的盘符。在AWS官方文档中,对不通类型的Storage Gateway需要的缓存最小磁盘大小有详细描述。这里从下拉框分配为“Allocated to”位置,将其选择为“缓存”(Cache)模式。然后点击Save继续。

接着屏幕出现“更新磁盘配置成功”的绿色提示。

五、完成并创建存储服务

至此,手工激活的过程完成,接下来可以按照正常的方式来配置Storage Gateway。请参考相关文档。

小结:本文是针对完全在内网的场景,使用curl命令行的方式完成激活,可不需要Storage Gateway的80端口暴露在公网,由此节省了配置中不必要的公网访问的麻烦,可快速上线服务。