AWS Compute Blog
Deploying low-latency hybrid cloud storage on AWS Local Zones using AWS Storage Gateway
This blog post is written by Ruchi Nigam, Senior Cloud Support Engineer and Sumit Menaria, Senior Hybrid SA.
AWS Local Zones are a type of infrastructure deployment that places compute, storage, database, and other select AWS services close to large population and industry centers. With Local Zones close to large population centers in metro areas, customers can achieve the low latency required for use cases like video analytics, online gaming, virtual workstations, live streaming, remote healthcare, and augmented and virtual reality. They can also help customers operating in regulated sectors like healthcare, financial services, mining and resources, and public sector that might have preferences or requirements to keep data within a geographic boundary. In addition to low-latency and residency benefits, Local Zones can help organizations migrate additional workloads to AWS, supporting a hybrid cloud migration strategy and simplifying IT operations.
Your hybrid cloud migration strategy may involve storage requirements for data coming in from various on-premises sources, file sharing within the organization or backup on-premises files. These storage requirements can be met by using Amazon FSx for a feature-rich, high performance file system. You can deploy your workload in the nearest Local Zones and use Amazon FSx in the parent AWS Region for a cost-effective solution with four widely-used file systems: NetApp ONTAP, OpenZFS, Windows File Server, and Lustre.
If your workloads need low-latency access to your storage solution and operate in locations which are not close to an AWS Region, then you can consider AWS Storage Gateway as a set of hybrid cloud storage services to get access to virtually unlimited cloud storage in the region. There are options to deploy Storage Gateway directly in your on-premises environment as a virtual machine (VM) (VMware ESXi, Microsoft Hyper-V, Linux KVM) or as a pre-configured standalone hardware appliance. But you can also deploy it on an Amazon Elastic Compute Cloud (Amazon EC2) instance in Local Zones or the Region, depending where your data sources and users are. Deploying Storage Gateway on Amazon EC2 in Local Zones provides low latency access via local cache for your applications while taking away the undifferentiated heavy lifting of management of the power, space, and hardware for deploying it in the on-premises environment. Before choosing an appropriate location, you must note any data residency requirements with which you must comply. There may be situations where the Local Zone’s parent Region is in the same country. However, it is recommended to work with your compliance and security teams for confirmation, as the objects are stored in the Amazon S3 service in the Region.
Depending on your use cases you can choose among four different deployment options: Amazon S3 File Gateway, Amazon FSx File Gateway , Tape Gateway, and Volume Gateway.
Name |
Interface |
Use Case |
S3 File Gateway |
NFS, SMB |
Allow on-premises or EC2 instances to store files as objects in Amazon S3 and access them via NFS or SMB mount points |
Volume Gateway Stored Mode |
iSCSI |
Asynchronous replication of on-premises data to Amazon S3 |
Volume Gateway Cached Mode |
iSCSI |
Primary data stored in Amazon S3 with frequently accessed data cached locally on-premises |
Tape Gateway |
ISCSI |
Replace on-premises physical tapes with AWS-backed virtual tapes. Provides virtual media changer and tape drives to use with existing backup applications |
FSx File Gateway |
SMB |
Low-latency, efficient connection for remote users when moving on-premises Windows file systems into the cloud. |
We expand on how you can deploy Amazon S3 File Gateway in a Local Zones specific setup. However, a similar approach can be used for other deployment options.
Amazon S3 File Gateway on Local Zones
Amazon S3 File Gateway provides a seamless way to connect to the cloud to store application data files and backup images as durable objects in Amazon S3 cloud storage. Amazon S3 File Gateway supports a file interface into Amazon S3 and combines a service and a virtual software appliance. The gateway offers Server Message Block (SMB) or Network File System (NFS)-based access to data in Amazon S3 with local caching. This can be used for both on-premises and data-intensive Amazon EC2-based applications in Local Zones that require file protocol access to Amazon S3 object storage.
Architecture
In the previous architecture, Client connects to the Storage Gateway EC2 instance over a private/public connection. Storage Gateway EC2 instance can access the S3 bucket in the Region via the Storage Gateway service endpoint. The File Share associated with the Storage Gateway presents the S3 bucket as a locally mounted drive for the client to use.
There are few things we must note while deploying file gateway on Amazon EC2 in a Local Zone.
- Since there are selected EC2 instance types available in the Local Zones, identify the instance types available in your desired Local Zone and select the appropriate one which meets the file gateway requirements from a memory perspective.
For example, to list the EC2 instance types offered in the ‘us-east-1-bos-la’ Availability Zone (AZ), use the following command:
aws ec2 describe-instance-type-offerings —location-type "availability-zone" —filters Name=location,Values=us-east-1-bos- 1a —region us-east-1
- Choose a supported instance type and EBS volumes in the Local Zone.
- Add another 150GiB storage apart from the root volume for cache storage.
- Review and make sure that the Security Group has correct firewall ports open – SMB/NFS ports, HTTP port (for activation) are open in ingress.
- For activation, if you must access the Storage Gateway over the Public network, then you must assign a Public IP address to the EC2 instance. If you plan to use an Elastic IP address, then make sure that you select the network-border group specific to the Local Zone.
- For private connectivity, you can use an AWS Direct Connect connection at the supported Local Zones and also enable VPC endpoint for connectivity between Storage Gateway and service endpoints.
Setting up Amazon S3 File Gateway
1. Navigate to the Storage Gateway console and select the Create Gateway button. In the Gateway options, select the Gateway type as Amazon S3 File Gateway.
2. Under Platform options, select Amazon EC2 and select the option to Customize your settings.
Then, select the Launch instance button and complete launching the EC2 instance to be used as the Storage Gateway. Navigating to the launch instance wizard picks up the verified file gateway Amazon Machine Image (AMI) available in the Region. However, you can also find the AMI using the following AWS Command Line Interface (AWS CLI) command:
aws --region us-east-1 ssm get-parameter --name /aws/service/storagegateway/ami/FILE_S3/latest
3. After launching the EC2 instance, check Confirm set up gateway and select Next.
4. Under Gateway connection options, choose the IP address radio button and enter the Public IP of the EC2 instance launched in Step 2.
5. For the Storage Gateway Service endpoint connection, you can create a VPC endpoint for Storage Gateway and specify the VPC endpoint ID from the dropdown selections for a private connection between the gateway and AWS Storage Services. Alternatively, you can choose the Publicly accessible option.
6. Review and activate the storage gateway.
7. Once the gateway is activated, you can allocate cache storage from the local disks. It is recommended to only use Amazon Elastic Block Store (Amazon EBS) volumes for the gateway storage.
Once the gateway is configured, the next steps show how to create a file share that can be accessed using the NFS or the SMB protocol.
8. A File Gateway can host multiple NFS and SMB file shares. For this example, we configure the NFS file share type. You can also select the corresponding S3 bucket in the Region which is going to be used for storing the data.
Once the file share is created, you can see the list of mount commands to be used on different clients.
On a Linux Client, use the following steps to mount the previously created NFS file share. Make sure you replace the IP address, S3 bucket name, and mount path with names specific to your configuration.
sudo mount -t nfs -o nolock,hard 10.0.32.151:/my-s3-bucket /my- mount-path
You can verify that the file share has been mounted by running the following command:
$ df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 497M 0 497M 0% /dev tmpfs tmpfs 506M 476k 506M 1% /run tmpfs tmpfs 506M 0 506M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.6G 7.3G 1.4G 85% / 10.0.32.151:/my-s3-bucket nfs4 9.3E 0 9.3E 0% /your-mount-path tmpfs tmpfs 102M 0 102M 0% /run/user/0 tmpfs tmpfs 102M 0 102M 0% /run/user/1000
Now you can also list the S3 objects as files on the locally mounted drive.
For reference, here are the objects stored in the S3 bucket in the Region.
To see a recently added object in the S3 bucket, select Refresh cache under the Actions options of the file share.
Depending on the client location, performance for access to the cached files is better as compared to direct access to the files in the parent Region. The clients can be either in your on-premises and accessed via Direct Connect to the Local Zone, or workload within the Local Zone, which can mount the file gateway for local access from the VPC.
Furthermore, you can look at Amazon S3 File Gateway performance for clients to select the appropriate EC2 instance type and EBS volume size and monitor Cache hit, Read/Write Time, and other performance metrics of the storage gateway by using CloudWatch Metrics.
Cleaning Up
- Unmount the File Gateway from the local machine:
unmount /your-mount-path
- Delete the Storage Gateway from the Storage Gateway console
- Delete the VPC Endpoint created for Storage Gateway service
- Delete the EC2 instance from the Amazon EC2 console
- Delete the files added to the S3 bucket from the Amazon S3 console
Conclusion
By deploying Amazon Storage Gateway on Local Zones, you can utilize the scalability, security, and cost-effectiveness of the AWS cloud, and simultaneously provide low-latency and high-performance access for on-premises applications and users. This can accelerate the migration your storage workloads to cloud while providing your users with low latency access via Local Zones in a truly hybrid manner. Read more about AWS Storage Gateway and AWS Local Zones in their respective documentation.