AWS Storage Gateway: S3 File Gateway Setup, Configuration, and Monitoring
实验概览
AWS Storage Gateway 是一种混合存储服务,你的本地应用程序可以借助它来无缝地使用 AWS 云存储。你可以使用该服务进行备份、归档、灾难恢复、云数据处理、存储分层和迁移。该服务有助于你减少和简化你的数据中心和分支或远程办公室存储基础设施。你的应用程序可以使用 NFS、SMB、iSCSI 等标准存储协议通过虚拟机或硬件网关设备连接到该服务。网关会连接到 Amazon S3、Amazon S3 Glacier、适用于 Windows File Server 的 Amazon FSx、Amazon Elastic Block Store (EBS) 和 AWS Backup 等 AWS 存储服务,这些服务为 AWS 中的文件、卷、快照和虚拟磁带提供存储。该服务包含高度优化的数据传输机制,能够进行带宽管理、自动实现网络弹性、高效传输数据以及提供本地缓存,让你能够对最活跃的数据进行低延迟本地访问。
在本实验中,你将使用 S3 文件网关 NFS 和 SMB 共享,侧重于每种配置所需的联网协议和端口。首先,你将 S3 文件网关作为 EC2 实例进行部署和配置。你随后可以选择创建 NFS 文件共享(将其用于 Linux 实例)和/或 SMB 文件共享(将其用于 Windows 实例)。在每种情况下,你都可以配置相关安全组,以允许正在使用的存储协议所需端口上的流量,然后挂载文件共享并向其复制本地数据。
目标
完成本实验后,你将能够:
部署并激活 S3 文件网关设备。 列出 S3 文件网关激活、NFS 和 SMB 通信所需的网络端口。 创建 NFS 文件共享,将其挂载到 Linux 实例,复制本地数据,并查看其他 Linux 实例的数据。 创建 SMB 文件共享、将其挂载到 Windows 实例,复制本地数据,并查看其他 Windows 实例的数据。 使用 Amazon CloudWatch 监控 S3 文件网关的不同指标。 技术性知识先决条件 要成功完成本实验,你应熟悉 AWS 管理控制台的基本导航、连接到 EC2 实例的方法、存储协议、网络端口和安全组。
任务 1:查看实验架构
花些时间熟悉一下本实验环境的架构。本实验环境开始时有两个 VPC、三个子网、两个 Linux EC2 实例和两个 Windows EC2 实例。VPC-A 用于模拟基于云的服务,而 VPC-B 用于模拟本地环境。
实验开始时的架构图
在实验结束时,环境将类似于下面:
实验结束时的架构图
任务 2:为文件共享存储创建 S3 存储桶
使用 NFS 或 SMB 文件共享配置 S3 文件网关时,对于要用作该文件共享的存储位置的 S3 存储桶,系统会提示你提供它的名称。在此任务中,你将创建两个 S3 存储桶,一个用于 NFS 文件共享,另一个用于 SMB 文件共享。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 S3。
选择 Create bucket(创建存储桶),然后进行以下配置:
Bucket name(存储桶名称):为 NFS S3 存储桶创建一个容易记住的名称。该名称必须是全局唯一的。 保留其余配置选项的默认值,并选择 Create bucket(创建存储桶)。
Successfully created bucket “nfs-s3-bucket-lab”(已成功创建存储桶 “nfs-s3-bucket-lab”)消息会显示在屏幕顶部。
选择 Create bucket(创建存储桶)以创建另一个存储桶,然后进行以下配置:
Bucket name(存储桶名称):为 SMB 存储桶创建一个容易记住的名称。该名称必须是全局唯一的。 保留其余配置选项的默认值,并选择 Create bucket(创建存储桶)。
Successfully created bucket “smb-s3-bucket-lab”(已成功创建存储桶 “smb-s3-bucket-lab”)消息会显示在屏幕顶部。
任务 3:部署 S3 文件网关设备
在此任务中,你将 S3 文件网关设备作为 Amazon Elastic Compute Cloud (Amazon EC2) 实例进行部署和配置。在生产环境中,你还可以选择在基于 VMware 或 Hyper-V 的系统上部署虚拟设备,或者将其作为物理设备部署。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 Storage Gateway。
系统应该会显示 AWS Storage Gateway 入门页面。之所以显示此页面,是因为你尚未在此区域内配置 Storage Gateway 服务。
选择 Create gateway(创建网关)。
在 Set up gateway(设置网关)屏幕的 Gateway settings(网关设置)配置下:
Gateway name(网关名称):输入 S3 File Gateway。 Gateway time zone(网关时区):选择 GMT -5:00 Eastern Time (US & Canada), Bogota, Lima(GMT -5:00 东部时间(美国和加拿大)、波哥大、利马)。 在 Gateway options(网关选项)下,选择 Amazon S3 File Gateway(Amazon S3 文件网关)作为网关类型。
在 Platform options(平台选项)下:
对于 Host platform(主机平台),选择 Amazon EC2。 对于 Launch EC2 instance(启动 EC2 实例),选择 Customize your settings(自定义设置)。 对于 Set up gateway on Amazon EC2(在 Amazon EC2 上设置网关)下,选择 Launch instance (启动实例)。 随即会打开一个新的标签页,其中显示 EC2 实例启动向导。此链接会自动选择必须用于文件网关设备的正确亚马逊机器映像 (AMI)。
在 Launch an instance(启动实例)页面上,配置以下选项:
在 Names and tags(名称和标签)部分中,找到 Name(名称)文本框,然后输入 S3 File Gateway Appliance。
选择 Add additional tags(添加其他标签)。
找到 Resource types(资源类型)下拉菜单,并选择 Volumes(卷)和 Network interfaces(网络接口)。选择 Instances(实例)(如果尚未选择)。
在 Application and OS Images(应用程序和操作系统映像)部分中,保留为 AWS Storage Gateway 预先选择的 AMI。
在 Instance type(实例类型)部分中,找到 Instance type(实例类型)下拉菜单,然后选择 t2.xlarge。
在 Key pair (login)(密钥对(登录))部分,找到 Key pair name(密钥对名称)下拉菜单,并选择已经为本实验创建的现有的密钥对(例如 AWSLabsKeyPair-xxx)。
在 Network settings(网络设置)部分下,选择 Edit(编辑),然后进行以下选择:
找到 VPC 下拉菜单,并选择 VPC-A。 找到 Subnet(子网)下拉菜单,并选择 VPC-A-Subnet-B。 找到 Auto-assign Public IP(自动分配公有 IP)下拉菜单,并选择 Enable(启用)。 对于 Firewall(防火墙),选择 Select existing security group(选择现有安全组),然后从 Common security groups(通用安全组)下拉菜单中选择 S3 File Gateway access(S3 文件网关访问)。 此安全组将配置为允许以下流量:
入口 – 端口 80 (HTTP),用于网关激活 入口 – 端口 111 和 2049,用于来自 VPC-B Subnet-A 的 NFSv4.1 通信 入口 – 端口 445,用于来自 VPC-B Subnet-A 的 SMBv3 通信 出口 – 端口 443,用于与 AWS Storage Gateway 服务的通信
在 Configure storage(配置存储)部分中,选择 Advanced(高级),然后选择 Add new volume(添加新卷)。
对于 Volume 2(卷 2),做出以下选择:
Device name(设备名称):从下拉菜单中选择 /dev/sdb。 Size (GiB)(大小 (GiB)):输入 150。 Volume type(卷类型):从下拉菜单中选择 General purpose SSD (gp2)(通用型 SSD (gp2))。 Delete on termination(终止时删除):从下拉菜单中选择 Yes(是)。 保留其余属性的默认值,并选择 Launch instance(启动实例)。 此时会显示 Successfully initiated launch of instance (i-0e8ff14b9d8fad5b0)(已成功启动实例 (i-0e8ff14b9d8fad5b0))消息。
选择 View all instances(查看所有实例)。
从列表中选择你的 S3 文件网关实例,然后在窗口底部的 Details(详细信息)选项卡下,找到 Public IPv4 address(公有 IPv4 地址)并复制列出的 IP 地址。你在完成 S3 文件网关部署后会用到它。
验证已选择 Amazon EC2,然后在 Confirm set up gateway(确认设置网关)部分中,选择 I completed all the steps above and launched the EC2 instance(我完成了上述所有步骤并启动了 EC2 实例)。
选择 Next(下一步)。
在 Connect to AWS(连接到 AWS)屏幕上,做出以下选择:
在 Gateway connection options(网关连接选项)部分,选择 IP address(IP 地址)作为连接选项。
对于 IP address(IP 地址)字段,粘贴你之前为 S3 文件网关设备实例复制的 Public IPv4 address(公有 IPv4 地址)。
在 Endpoint options(终端节点选项)部分,选择 Publicly accessible(可公开访问)作为服务终端节点。
选择 Next(下一步)。
在 Review and activate(检查并激活)屏幕上,验证配置并选择 Activate gateway(激活网关)。
在 Configure cache storage(配置缓存存储)部分中,你将看到以下消息:Disk Status: Preparing local disks(磁盘状态:正在准备本地磁盘)。
处理完成后,在 Configure cache storage(配置缓存存储)部分,验证并配置以下内容:
Disk ID(磁盘 ID):/dev/sdb Capacity(容量):150GiB Allocated to(分配对象):从下拉菜单选择 Cache(缓存)。 在 CloudWatch log group(CloudWatch 日志组)部分,选择 Deactivate logging(停用日志记录)。
在 CloudWatch alarms(CloudWatch 警报)部分,选择 No alarm(无警报)。
选择 Configure(配置)。
Successfully created gateway S3 File Gateway (sgw-XXXXXXXX).You can create file share on this gateway.(已成功创建网关 S3 文件网关 (sgw-XXXXXXXX)。你可以在此网关上创建文件共享。)消息会显示在屏幕顶部。
等待几分钟,直到 S3 文件网关状态变为 Running(正在运行)。
在此屏幕上继续执行下一个任务。 现在 S3 文件网关已经部署和配置完成,你可以创建要附加到主机的文件共享。
继续下一步,执行 NFS 任务。
选择此链接可跳到 SMB 任务。
任务 4:创建 NFS 文件共享
在此任务中,你将在 S3 文件网关上创建 NFS 文件共享,该网关被配置为使用你之前创建的 S3 存储桶来存储和检索文件。然后,你将一个安全组配置为允许 NFS 流量在 S3 文件网关设备和 Linux 实例之间传递。
如果你还没有进入上一部分的 Storage Gateway 屏幕,请在 AWS 管理控制台顶部的搜索栏中,搜索并选择 Storage Gateway。
你应该已经在左侧的导航菜单中选择了 Gateways(网关)。在窗口顶部,选择 Create file share(创建文件共享)。
在 Create file share(创建文件共享)屏幕的 Basics(基本)部分,做出以下选择: Gateway(网关):从下拉菜单中选择 S3 File Gateway (sgw-random alphanumeric)(S3 文件网关 (sgw-random alphanumeric))。
File share protocol(文件共享协议):选择 NFS。
S3 bucket(S3 存储桶):选择你在任务 2 中创建的供 NFS 使用的 S3 存储桶的名称。
在页面底部,选择 Customize configuration(自定义配置)。
在 Choose gateway(选择网关)页面,向下滚动并选择 Next(下一步)。
在 Connected S3 storage(已连接 S3 存储)页面,进行以下选择:
找到 Storage class for new objects(新对象的存储类)下拉菜单,然后选择 Standard(标准)。 找到 IAM role(IAM 角色)下拉菜单,然后选择这些说明左侧列出的 FgwIamPolicyARN 参数的值。 选择 Next(下一步)。
在 Control access(控制访问)页面,保留默认设置并选择 Next(下一步)。
在 Review and launch(查看并启动)页面,导航到页面底部,然后选择 Create(创建)。
创建文件共享需要几分钟时间。通过查看 Status(状态)列来监控创建,然后等待状态从 Updating(正在更新)变为 Available(可用)。
在 File shares(文件共享),从 Actions(操作)下拉菜单中选择 Edit file share access settings(编辑文件共享访问设置)。
对于 Allowed clients(允许的客户端),添加 10.0.2.0/24 以授予从 VPC-A Subnet-A 中的主机访问共享的权限。
再次选择 Add client(添加客户端)按钮,然后输入 192.168.2.0/24 以授予从 VPC-B Subnet-A 中的主机访问共享的权限。
选择 Save changes(保存更改)。
监控 Status(状态)字段并等待它从 Updating(正在更新)变为 Available(可用),用时不会超过一分钟。
选择指向你刚刚创建的文件共享的链接。在窗口底部,记下在 Linux 上挂载文件共享的命令。在下一个任务中会用到它。 Linux 挂载命令
任务 5:检查安全组,将文件共享挂载到 Linux 实例,然后迁移数据
你必须先挂载你创建的 NFS 共享,然后才能将数据迁移到该共享。在此任务中,你发现安全组规则阻止你从 Linux 主机连接到文件共享。然后,你将合适的规则添加到安全组以启用 NFS 通信,在 Linux 主机上挂载 NFS 共享,并将实例中的数据复制到文件共享。
接下来,你连接到 VPC-A 中的 Linux 主机
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 EC2。
在 EC2 控制面板上,从左侧导航菜单选择 Instances(实例)。
在 Instances(实例)屏幕上,选择 VPC-A Linux Server(VPC-A Linux 服务器),然后选择 Connect(连接)。
在 Connect to instance(连接到实例)屏幕上,选择 EC2 Instance Connect(EC2 实例连接)。将默认的 User name(用户名)的值保留为 ec2-user,然后选择 Connect(连接)。
现在,你应该已连接到 Linux 实例。
命令:从 Linux 实例终端输入以下命令以查看此服务器上存在的示例数据。你应该会看到 20 个 .png 格式的图像文件。
ls /media/data
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
10.png 11.png 12.png 13.png 14.png 15.png 16.png 17.png 18.png 19.png 1.png 20.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png
命令:输入以下命令以创建用于将数据与 S3 存储桶同步的目录:
sudo mkdir -p /mnt/nfs/s3
命令:使用你在上一个任务结束时复制的命令在 Linux 实例上挂载文件共享。将 [MountPath] 替换为你在主机上创建的共享的路径。
sudo mount -t nfs -o nolock,hard <File-Gateway-appliance-private-IP-address>:/<S3-bucket-name> /mnt/nfs/s3
例如:
sudo mount -t nfs -o nolock,hard 10.0.3.240:/nfs-bucket-sgw /mnt/nfs/s3
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 VPC。
在左侧导航菜单中,展开 Security(安全)部分,然后选择 Security groups(安全组)。
选择名为 S3 File Gateway access(S3 文件网关访问)的安全组。
将 S3 File Gateway access(S3 文件网关访问)安全组附加到你之前创建的 S3 文件网关设备实例。它当前包含的规则允许进入特定端口(激活设备所必需的)上的设备的入站流量,并允许来自 VPC-B 上的 Subnet-A 的 NFS 和 SMB 流量。有关配置的可视化,请参阅这些说明开头的网络图。
在窗口底部,选择 Inbound rules(入站规则)选项卡,然后选择 Edit inbound rules(编辑入站规则)。
在 HTTP(端口 80)条目的右侧,选择 Delete(删除)以删除规则。
选择 Add rule(添加规则)。
选择新规则的 Type(类型)列所对应的下拉菜单,然后从中选择 NFS。
在 Source(源)列中,从下拉菜单中选择 Custom(自定义),然后以 CIDR 表示法输入 VPC-A Subnet-A 的 IP 范围:10.0.2.0/24 此规则允许端口 2049 上的流量从 10.0.2.0/24 子网上的任何主机传输到 S3 文件网关设备子网 (VPC-A Subnet-B)。
选择 Add Rule(添加规则)。
选择新规则的 Type(类型)列所对应的下拉菜单,然后从中选择 Custom TCP(自定义 TCP)。
在 Port Range(端口范围)字段中,输入 111。
在 Source(源)列中,从下拉菜单中选择 Custom(自定义),然后以 CIDR 表示法输入 VPC-A Subnet-A 的 IP 范围:10.0.2.0/24
此规则也与 NFS 数据通信相关。
选择 Save rules(保存规则)。 Inbound security group rules successfully modified on security group (sg-046d2de01cf0f04fa | S3 File Gateway access)(已成功修改安全组上的入站安全组规则(sg-046d2de01cf0f04fa | S3 文件网关访问))消息会显示在屏幕顶部。
命令:重新运行命令以在 Linux 实例上挂载文件共享。将 [MountPath] 替换为你在主机上创建的共享的路径。
sudo mount -t nfs -o nolock,hard <File-Gateway-appliance-private-IP-address>:/<S3-bucket-name> [MountPath]
例如:
sudo mount -t nfs -o nolock,hard 10.0.3.240:/nfs-bucket-sgw /mnt/nfs/s3
命令:输入以下命令以验证共享是否已正确挂载:
df -h
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
Filesystem Size Used Avail Use% Mounted on
devtmpfs 477M 0 477M 0% /dev
tmpfs 486M 0 486M 0% /dev/shm
tmpfs 486M 468K 485M 1% /run
tmpfs 486M 0 486M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.7G 6.4G 21% /
tmpfs 98M 0 98M 0% /run/user/1000
tmpfs 98M 0 98M 0% /run/user/0
10.0.3.148:/nfs-s3-bucket-lab-09092024 8.0E 0 8.0E 0% /mnt/nfs/s3
命令:现在已创建挂载点,请使用以下命令将要迁移到 S3 存储桶的数据复制到共享中:
cp -v /media/data/*.png /mnt/nfs/s3
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
‘/media/data/10.png’ -> ‘/mnt/nfs/s3/10.png’
‘/media/data/11.png’ -> ‘/mnt/nfs/s3/11.png’
‘/media/data/12.png’ -> ‘/mnt/nfs/s3/12.png’
‘/media/data/13.png’ -> ‘/mnt/nfs/s3/13.png’
‘/media/data/14.png’ -> ‘/mnt/nfs/s3/14.png’
‘/media/data/15.png’ -> ‘/mnt/nfs/s3/15.png’
‘/media/data/16.png’ -> ‘/mnt/nfs/s3/16.png’
‘/media/data/17.png’ -> ‘/mnt/nfs/s3/17.png’
‘/media/data/18.png’ -> ‘/mnt/nfs/s3/18.png’
‘/media/data/19.png’ -> ‘/mnt/nfs/s3/19.png’
‘/media/data/1.png’ -> ‘/mnt/nfs/s3/1.png’
‘/media/data/20.png’ -> ‘/mnt/nfs/s3/20.png’
‘/media/data/2.png’ -> ‘/mnt/nfs/s3/2.png’
‘/media/data/3.png’ -> ‘/mnt/nfs/s3/3.png’
‘/media/data/4.png’ -> ‘/mnt/nfs/s3/4.png’
‘/media/data/5.png’ -> ‘/mnt/nfs/s3/5.png’
‘/media/data/6.png’ -> ‘/mnt/nfs/s3/6.png’
‘/media/data/7.png’ -> ‘/mnt/nfs/s3/7.png’
‘/media/data/8.png’ -> ‘/mnt/nfs/s3/8.png’
‘/media/data/9.png’ -> ‘/mnt/nfs/s3/9.png’
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 S3。
选择你在任务 2 中为 NFS 创建的 S3 存储桶的链接。
验证你复制到已挂载的 NFS 共享中的文件是否显示在 S3 存储桶中。你应该看到 20 个 PNG 文件。
关闭 VPC-A Linux Server(VPC-A Linux 服务器)的 EC2 实例连接浏览器窗口。
你已成功将本地数据从 Linux 主机复制到 NFS 文件共享和 S3 存储桶。
接下来,你需要从另一个网络 (VPC-B) 上的 Linux 主机访问相同的 NFS 文件共享,然后发现数据会位于共享资源上。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 EC2。
在 EC2 控制面板上,从左侧导航菜单选择 Instances(实例)。
在 Instances(实例)屏幕上,选择 VPC-B Linux Server(VPC-B Linux 服务器),然后选择 Connect(连接)。
在 Connect to instance(连接到实例)屏幕上,选择 EC2 Instance Connect(EC2 实例连接)。将默认的 User name(用户名)的值保留为 ec2-user,然后选择 Connect(连接)。
现在,你应该已连接到 Linux 实例。
命令:在 Linux 主机上,使用以下命令,创建用于将数据与 S3 存储桶同步的目录:
sudo mkdir -p /mnt/nfs/s3
命令:使用你在上一个任务结束时复制的命令在 Linux 实例上挂载文件共享。将 [MountPath] 替换为你在主机上创建的共享的路径。
sudo mount -t nfs -o nolock,hard <File-Gateway-appliance-private-IP-address>:/<S3-bucket-name> /mnt/nfs/s3
例如:
sudo mount -t nfs -o nolock,hard 10.0.3.240:/nfs-bucket-sgw /mnt/nfs/s3
命令:输入以下命令以验证共享是否已正确挂载:
df -h
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
Filesystem Size Used Avail Use% Mounted on
devtmpfs 477M 0 477M 0% /dev
tmpfs 486M 0 486M 0% /dev/shm
tmpfs 486M 468K 485M 1% /run
tmpfs 486M 0 486M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.7G 6.4G 21% /
tmpfs 98M 0 98M 0% /run/user/0
tmpfs 98M 0 98M 0% /run/user/1000
10.0.3.148:/nfs-s3-bucket-lab-09092024 8.0E 0 8.0E 0% /mnt/nfs/s3
命令:输入以下命令以验证新挂载的共享中显示的文件:
ls /mnt/nfs/s3
你应该会看到列出了到目前为止所使用的 20 个 PNG 文件。
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
10.png 11.png 12.png 13.png 14.png 15.png 16.png 17.png 18.png 19.png 1.png 20.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png
命令:要显示它所链接的是与第一台 Linux 主机相同的文件共享,请输入以下命令以删除其中一个文件
cd /mnt/nfs/s3 && rm 1.png
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 S3。
选择你在任务 2 中为 NFS 创建的 S3 存储桶的链接。
验证是否已从存储桶中删除 1.png。
任务 6:创建 SMB 文件共享
在此任务中,你将在 S3 文件网关上创建一个 SMB 文件共享,该共享被配置为使用之前创建的 S3 存储桶来存储和检索文件。然后,你将安全组配置为允许在 S3 文件网关设备和一个 Windows 实例之间传递 SMB 流量。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 Storage Gateway。
UDP 137 – 名称服务 UDP 138 – 数据报服务 TCP 389 – 目录系统代理;客户端连接 TCP 636 – LDAPS – 安全套接字层 (SSL) 上的轻型目录访问协议 (LDAP)
在左侧导航菜单中,选择 Gateways(网关)。
选择你在任务 3 中创建的 S3 文件网关。
从 Actions (操作)下拉菜单中,选择 Edit SMB settings (编辑 SMB 设置),然后选择 Guest access settings(来宾访问设置)。
在 Edit guest access settings(编辑来宾访问设置)屏幕上,对于 Guest password(来宾密码)字段,输入 AWSlabs1342!@。
选择 Save changes(保存更改)。 Successfully updated SMB guest password.(已成功更新 SMB 来宾密码。)消息会显示在屏幕顶部。
在左侧导航菜单中,选择 File shares(文件共享)。
选择 Create file share(创建文件共享)。
在 Create file share(创建文件共享)屏幕的 Basics(基本)部分,做出以下选择: Gateway(网关):从下拉菜单中选择 S3 File Gateway (sgw-random alphanumeric)(S3 文件网关 (sgw-random alphanumeric))。
File share protocol(文件共享协议):选择 SMB。
S3 bucket(S3 存储桶):选择你在任务 2 中创建的供 SMB 使用的 S3 存储桶的名称。
User authentication(用户身份验证):从下拉菜单中选择 Guest access(来宾访问)。
在页面底部,选择 Customize configuration(自定义配置)。
在 Choose gateway(选择网关)页面,向下滚动并选择 Next(下一步)。
在 Connected S3 storage(已连接 S3 存储)页面,进行以下选择:
找到 Storage class for new objects(新对象的存储类)下拉菜单,然后选择 Standard(标准)。 找到 IAM role(IAM 角色)下拉菜单,然后选择这些说明左侧列出的 FgwIamPolicyARN 参数的值。 选择 Next(下一步)。
在 Control access(控制访问)页面,保留默认设置并选择 Next(下一步)。
在 Review and launch(查看并启动)页面,导航到页面底部,然后选择 Create(创建)。
创建文件共享需要几分钟时间。通过查看 Status(状态)列来监控创建,然后等待状态从 Updating(正在更新)变为 Available(可用)。
选择指向你刚刚创建的文件共享的链接。在窗口底部,记下在 Windows 上挂载文件共享的命令。 注意:它应该类似于:net use [WindowsDriveLetter]: \10.0.3.246\smb-bucket-sgw
在左侧导航菜单中,选择 Gateways(网关)并复制 Gateway ID(网关 ID)。 注意:它应该类似于:sgw-875EF5EE
现在,用以下格式粘贴文件共享链接和网关 ID,以便在下一个任务中使用:
<File share link> /user:<Gateway ID>\smbguest
注意:最终命令应该类似于:net use [WindowsDriveLetter]: \10.0.3.246\smb-bucket-sgw /user:sgw-875EF5EE\smbguest
任务 7:检查安全组,将文件共享挂载到 Windows 实例,然后迁移数据
你必须先挂载你创建的 SMB 共享,然后才能将数据迁移到该共享。在此任务中,你发现安全组规则阻止你从 Windows 主机连接到文件共享。然后,你将合适的规则添加到安全组以启用 SMB 通信,在 Windows 主机上挂载 SMB 共享,并将实例中的数据复制到文件共享。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 EC2。
在 EC2 控制面板上,从左侧导航菜单选择 Instances(实例)。
在 Instances(实例)屏幕上,选择 VPC-A Windows Server(VPC-A Windows 服务器),然后选择 Connect(连接)。
选择 RDP client(RDP 客户端)选项卡。
Windows 用户可以使用 Windows 随附的远程桌面应用程序。 Mac 用户可以使用 App Store 中提供的 Microsoft 远程桌面应用程序,也可以下载 CoRD RDP 客户端。 选择 Download remote desktop file(下载远程桌面文件)并保存文件。
选择 Cancel(取消)。
找到刚刚下载的远程桌面文件,然后将其打开。
当出现提示 The publisher of this remote connection cannot be verified.Do you want to connect anyway?(无法验证此远程连接的发布者。是否仍要连接?)时,请选择 Connect(连接)。
当系统提示输入管理员账户的密码时,请输入这些说明左侧的 WindowsAdministratorPassword 字段中显示的密码。
当出现提示 The identity of the remote computer cannot be verified.Do you want to connect anyway?(无法验证远程计算机的身份。是否仍要连接?)时,请选择 Yes(是)。
在 Windows 主机上,右键单击窗口左下角的 Windows 图标 ,然后选择 Windows PowerShell。
在 PowerShell 窗口中,输入你在上一个任务结束时复制的命令来挂载文件共享。将 [WindowsDriveLetter] 替换为 S:,将文件共享挂载到驱动器 S。
net use [WindowsDriveLetter]: \\<File-Gateway_appliance-private-IP-address>\<S3-bucket-name> /user:<generated-user-name>\smbguest
例如:
net use S: \\10.0.3.246\smb-bucket-sgw /user:sgw-875EF5EE\smbguest
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
System error 53 has occurred.
The network path was not found.
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 VPC。
在左侧导航菜单中,展开 Security(安全)部分,然后选择 Security groups(安全组)。
选择名为 S3 File Gateway access(S3 文件网关访问)的安全组。
将 S3 File Gateway access(S3 文件网关访问)安全组附加到你之前创建的 S3 文件网关设备实例。它当前包含的规则允许进入特定端口(激活设备所必需的)上的设备的入站流量,并允许来自 VPC-B Subnet-A 的 NFS 和 SMB 流量。有关配置的可视化,请参阅这些说明开头的网络图。
在窗口底部,选择 Inbound rules(入站规则)选项卡,然后选择 Edit inbound rules(编辑入站规则)。
在 HTTP(端口 80)条目的右侧,选择 Delete(删除)以删除规则。
只有在激活 S3 文件网关设备时才需要 HTTP 流量,激活完成后可以删除。
选择 Add Rule(添加规则)。
选择新规则的 Type(类型)列所对应的下拉菜单,然后从中选择 SMB。
在 Source(源)列中,从下拉菜单中选择 Custom(自定义),然后以 CIDR 表示法输入 VPC-A Subnet-A 的 IP 范围:10.0.2.0/24 此规则允许端口 445 上的流量从 10.0.2.0/24 子网上的任何主机传输到 S3 文件网关设备子网。
选择 Save rules(保存规则)。 Inbound security group rules successfully modified on security group (sg-046d2de01cf0f04fa | S3 File Gateway access)(已成功修改安全组上的入站安全组规则(sg-046d2de01cf0f04fa | S3 文件网关访问))消息会显示在屏幕顶部。
命令:在 PowerShell 窗口中,重新运行你在上一个任务结束时复制的命令来挂载文件共享。将 [WindowsDriveLetter] 替换为 S:,将文件共享挂载到驱动器 S。
net use [WindowsDriveLetter]: \\<File-Gateway_appliance-private-IP-address>\<S3-bucket-name> /user:<generated-user-name>\smbguest
例如:
net use S: \\10.0.3.240\smb-bucket-sgw /user:sgw-875EF5EE\smbguest
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
The command completed successfully.
打开文件资源管理器(窗口底部任务栏中的文件夹图标),在左侧导航树中选择 This PC(此电脑),然后验证 S: 驱动器是否已成功挂载。
导航到 C:\media\data 并复制列出的 20 个 PNG 文件。
将这些文件粘贴到 S: 驱动器的根目录中。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 S3。
选择你在任务 2 中为 SMB 创建的 S3 存储桶的链接。
验证你复制到已挂载的 SMB 共享中的文件是否显示在 S3 存储桶中。你应该看到 20 个 PNG 文件。
你已成功将本地数据从 Windows 主机复制到 SMB 文件共享和 S3 存储桶。
接下来,你需要从另一个网络 (VPC-B) 上的 Windows 主机访问相同的 SMB 共享,然后发现数据会位于共享资源上。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 EC2。
在 EC2 控制面板上,从左侧导航菜单选择 Instances(实例)。
在 Instances(实例)屏幕上,选择 VPC-B Windows Server(VPC-B Windows 服务器),然后选择 Connect(连接)。
在 Connect to instance(连接到实例)屏幕上,选择 RDP client(RDP 客户端)选项卡。
选择 Download remote desktop file(下载远程桌面文件)并保存文件。
选择 Cancel(取消)。
找到刚刚下载的远程桌面文件,然后将其打开。
当出现提示 The publisher of this remote connection cannot be verified.Do you want to connect anyway?(无法验证此远程连接的发布者。是否仍要连接?)时,请选择 Connect(连接)。
当系统提示输入管理员账户的密码时,请输入这些说明左侧的 WindowsAdministratorPassword 字段中显示的密码。
当出现提示 The identity of the remote computer cannot be verified.Do you want to connect anyway?(无法验证远程计算机的身份。是否仍要连接?)时,请选择 Yes(是)。
在 Windows 主机上,右键单击窗口左下角的 Windows 图标 ,然后选择 Windows PowerShell。
命令:在 PowerShell 窗口中,输入你在上一个任务结束时复制的命令来挂载文件共享。将 [WindowsDriveLetter] 替换为 S:,将文件共享挂载到驱动器 S。
net use [WindowsDriveLetter]: \\<File-Gateway_appliance-private-IP-address>\<S3-bucket-name> /user:<generated-user-name>\smbguest
例如:
net use S: \\10.0.3.240\smb-bucket-sgw /user:sgw-193DD270\smbguest
预期输出:
************************
**** EXAMPLE OUTPUT ****
************************
The command completed successfully.
打开文件资源管理器并验证 S: 驱动器是否已成功挂载。
导航到 S: 驱动器并验证其中是否列出了你从另一台主机复制的 20 个 PNG 文件。
删除 1.png。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 S3。
选择你在任务 2 中为 SMB 创建的 S3 存储桶的链接。
验证是否已从存储桶中删除 1.png。
任务 8:使用 Amazon CloudWatch 监控 S3 文件网关
AWS Storage Gateway 与 Amazon CloudWatch 集成,后者实时监控你的 AWS 资源,还可以使用 CloudWatch 来收集和跟踪指标,这些指标是你可以度量资源和应用程序的变量。
在此任务中,使用 Amazon CloudWatch 来监控 S3 文件网关资源和上文讨论的指标。
在 AWS 管理控制台顶部的搜索栏中,搜索并选择 Storage Gateway。
在左侧菜单上选择 Gateways(网关),然后选择为本实验创建的 S3 File Gateway(S3 文件网关)。
向下滚动到 Details(详细信息)选项卡,并选择 Metrics(指标)部分的 CloudWatch metrics (CloudWatch 指标)。
随后将打开一个新的标签页,进入 Amazon CloudWatch 控制台。此链接会自动选择 S3 文件网关资源的默认图形化指标。
从屏幕的右上角选择 Number(数字)筛选器(而不是折线图),并将时间间隔调整为 30 minutes(30 分钟),以获得更好的指标结果。 CloudWatch 指标
从上面的 Number(数字)图表中,检查以下重要指标:
CloudBytesDownloaded:2.34KB CloudBytesUploaded:51.7KB CloudBytesUploaded 是报告期内网关上传到 AWS 的总字节数。
CloudBytesDownloaded 是报告期内网关从 AWS 下载的总字节数。
CacheHitPercent:100% CachePercentUsed:0.15% CacheHitPercent 是应用程序从缓存提供的文件共享执行的读取操作的百分比。理想情况下,CacheHitPercent 应该接近 100%,表示应用程序从缓冲中读取数据。
CachePercentUsed 是文件共享在网关缓存存储的总体使用百分比中所占的比例。较高的 CachePercentUsed 是理想的结果,但当此指标达到 100% 时,CacheHitPercent 会受到影响。如果 CachePercentUsed 达到 100%,可能表明缓存对于工作集来说太小。
在此案例中,CachePercentUsed 为 0.15%,表示网关有足够的缓存,你不需要增加网关缓存的大小。
CachePercentDirty:0% 最后,CachePercentDirty 是文件共享在未被持久化到 AWS 的网关缓存的总体百分比中所占的比例。如果 CachePercentDirty 值较低,表示 Storage Gateway 资源按预期工作。
总结
你已成功完成以下任务:
部署并激活了 S3 文件网关设备。 在 S3 文件网关上创建了一个 NFS 文件共享并将其链接到了 S3 存储桶。 配置了在两个子网中的 S3 文件网关和 Linux 主机之间传递 NFS 流量所需的端口。 将本地数据从一台 Linux 主机复制到 NFS 文件共享,在链接的 S3 存储桶中查看该数据,然后处理来自另一台 Linux 主机的数据。 在 S3 文件网关上创建了一个 SMB 文件共享并将其链接到了 S3 存储桶。 配置在两个子网中的文件网关和 Linux 主机之间传递 SMB 流量所需的端口。 将本地数据从一台 Windows 主机复制到 SMB 文件共享,在链接的 S3 存储桶中查看该数据,然后处理来自另一台 Windows 主机的数据。 使用 Amazon CloudWatch 监控了 S3 文件网关的不同指标。