StorageLink CloudFormation Usage Instructions
Purpose: Reference for the parameters and outputs of the three StorageLink BYOL CloudFormation templates on AWS
Templates:
- Single Instance - Existing Network — one EC2 instance with an Elastic IP in a VPC you choose
- High Availability - Existing Network — Auto Scaling group, Network Load Balancer, and RDS database in a VPC you choose
- High Availability - New Network — the same HA stack in a new VPC
Launch: StorageLink BYOL listing → View purchase options → select the Unit dimension → Subscribe → Launch your software → AWS CloudFormation → Launch with CloudFormation
Key Parameters: EC2Type (t3.medium for testing, m5.large for production), WebInputCIDR and SshInputCIDR (your IP + /32; SSH cannot be 0.0.0.0/0), WebAdminPassword (12 or more characters)
Storage: The instance role can use S3 buckets whose names start with storagelink-i-; StorageLink creates one storagelink-i-<instance-id> bucket when the deployment is first set up
Product: StorageLink by Thorn Technologies — cloud storage gateway for secure file sharing
Overview
The StorageLink BYOL listing on the AWS Marketplace offers three CloudFormation templates:
- StorageLink (Single Instance - Existing Network) — one EC2 instance with an Elastic IP address in a VPC and public subnet you choose. The Installation guide walks through this template.
- StorageLink (High Availability - Existing Network) — an Auto Scaling group behind a Network Load Balancer, with a shared Amazon RDS for PostgreSQL database, in a VPC you choose.
- StorageLink (High Availability - New Network) — the same high-availability stack in a new VPC that the template creates. See Creating a High-Availability Deployment.
We recommend CloudFormation over launching the AMI by hand, because the templates also create the IAM role, security group, CloudWatch log group, and (for HA) the load balancer and database that StorageLink needs.
The Standard (pay-as-you-go) StorageLink listing offers the same three templates with the same parameters. It bills a $0.08 USD/hour software fee for each running instance and is licensed for up to 10 StorageLink users. See StorageLink Standard vs BYOL.
Launch a template
- Open the StorageLink BYOL listing on AWS Marketplace and click View purchase options.
- The public offer is free of charge. Under Pricing details, select the Unit dimension (License units, $0.00) and leave Number of units at
1; the Subscribe button stays disabled until a dimension is selected. Click Subscribe at the bottom of the page and wait a few minutes for the subscription to complete. You only need to subscribe once per AWS account. - Click Launch your software (it opens in a new browser tab). Under Setup, select AWS CloudFormation, then choose the CloudFormation template and your Region, and check that Version shows the latest version.
- Click Launch with CloudFormation. This opens the CloudFormation Create stack page with the template pre-loaded. Click Next.
Configure CloudFormation parameters
On the Specify stack details page, enter a Stack name and configure the parameters for your template. The console groups the parameters as shown below.
- Single Instance Existing Network
- High Availability Existing Network
- High Availability New Network
Instance and storage options
- EC2Type: For testing, use a
t3.medium. Thet3class is cheaper, but cannot handle sustained traffic. For production, use anm5.largeor larger. - DiskVolumeSize:
32GB by default, which is also the minimum. Files are stored in S3, so the disk mostly holds the operating system and rotated logs. You can increase the size of the volume later. - KeyPair: A key pair whose private key you own. You need it to SSH into the instance.
- ImageId: Pre-filled with the AWS Marketplace SSM parameter for the StorageLink BYOL AMI (
/aws/service/marketplace/prod-7y2el53dcmt24/1.3.0.1for version 1.3.0.1), which resolves to the AMI in the region you deploy to. The template accepts only this value, so leave it as is.
Network
- VPC: The VPC to launch into. The default VPC, with the IP address range
172.31.0.0/16, is public by default. - SubnetID: A public subnet in that VPC. In the default VPC, any subnet with an IP address range of
172.31.x.0/20works.
Access and authentication
- WebInputCIDR: The IP range allowed to reach the web interface on ports 80 and 443. If you support many users, it may be practical to open this to
0.0.0.0/0. Otherwise, get your current IP address from http://checkip.dyndns.org/ and enter it followed by/32(for example,1.2.3.4/32). - SshInputCIDR: The IP range allowed to SSH to the instance on port 22. Enter your IP address followed by
/32. The template does not accept0.0.0.0/0. - WebAdminUsername: The username for the first web admin account.
- WebAdminPassword: The password for that account, 12 or more characters. The value can appear in the instance's cloud-init logs, so change the password after you first sign in.
Outputs
- Hostname: The Elastic IP address of the instance. Open
https://<Hostname>to sign in. - DefaultBucket: The S3 bucket StorageLink uses for its root folder,
storagelink-i-<instance-id>. - CloudWatchLogs: The CloudWatch log group that receives the StorageLink logs.
Instance and storage options
- EC2Type: For testing, use a
t3.medium. For production, use anm5.largeor larger. - DiskVolumeSize:
32GB by default, which is also the minimum. - KeyPair: A key pair whose private key you own.
- DesiredCapacity: How many instances to run. Defaults to
2, which is also the minimum; the Auto Scaling group allows up to 10. - DBClass: The database instance class. Defaults to
db.t3.micro. - ImageId: Pre-filled with the AWS Marketplace SSM parameter for the StorageLink BYOL AMI. The template accepts only this value, so leave it as is.
Network
- VPC: An existing VPC with an internet gateway and with DNS resolution and DNS hostnames enabled.
- VPCIPRange: The CIDR block of the VPC you chose (for example,
10.0.0.0/16). The security group uses it to allow traffic from the load balancer. - PublicSubnetA and PublicSubnetB: Two public subnets in different Availability Zones, routed to the internet gateway. The Network Load Balancer uses them.
- PrivateSubnetA and PrivateSubnetB: Two private subnets in different Availability Zones for the database.
- PrivateSubnetC and PrivateSubnetD: Two private subnets in different Availability Zones for the StorageLink instances.
The StorageLink instances do not get public IP addresses, so PrivateSubnetC and PrivateSubnetD must route outbound traffic through a NAT gateway (or an equivalent) for the instances to reach Amazon S3, CloudWatch Logs, AWS Secrets Manager, and CloudFormation. The default VPC has only public subnets, so it cannot host this template as it is; use the High Availability - New Network template instead, which creates the NAT gateway for you.
Access and authentication
- WebInputCIDR: The IP range allowed to reach the web interface on ports 80 and 443 through the load balancer.
- SshInputCIDR: The IP range allowed to SSH on port 22. Enter your IP address followed by
/32. The template does not accept0.0.0.0/0. - WebAdminUsername and WebAdminPassword: The first web admin account. The password must be 12 or more characters.
Outputs
- Hostname: The DNS name of the Network Load Balancer. Open
https://<Hostname>to sign in. - CloudWatchLogs: The CloudWatch log group that receives the StorageLink logs.
Instance and storage options
- EC2Type: For testing, use a
t3.medium. For production, use anm5.largeor larger. - DiskVolumeSize:
32GB by default, which is also the minimum. - KeyPair: A key pair whose private key you own.
- DesiredCapacity: How many instances to run. Defaults to
2, which is also the minimum; the Auto Scaling group allows up to 10. - DBClass: The database instance class. Defaults to
db.t3.micro. - ImageId: Pre-filled with the AWS Marketplace SSM parameter for the StorageLink BYOL AMI. The template accepts only this value, so leave it as is.
Network
- VPCIPRange: This template creates a new VPC, subnets, NAT gateway, and other network resources. Choose a Class C IP range from
192.168.1.0/24(the default) to192.168.20.0/24that doesn't conflict with your existing networks.
Access and authentication
- WebInputCIDR: The IP range allowed to reach the web interface on ports 80 and 443 through the load balancer.
- SshInputCIDR: The IP range allowed to SSH on port 22. Enter your IP address followed by
/32. The template does not accept0.0.0.0/0. - WebAdminUsername and WebAdminPassword: The first web admin account. The password must be 12 or more characters.
Outputs
- Hostname: The DNS name of the Network Load Balancer. Open
https://<Hostname>to sign in. - CloudWatchLogs: The CloudWatch log group that receives the StorageLink logs.
On the Review and create page, check I acknowledge that AWS CloudFormation might create IAM resources, then click Submit.
After the stack is created
Open the Hostname output in your browser, accept the self-signed certificate warning, and sign in with the WebAdminUsername and WebAdminPassword you set. A StorageLink BYOL deployment starts unlicensed, so start the free 30-day trial from the Start a 30-day free trial card at the top of the admin UI, as described in First Launch Experience. When you are ready to buy a license, see Purchasing a License.
In a High Availability deployment, start the trial once: the other instances pick it up within about a minute, so wait a minute before you add users. Instances that the Auto Scaling group launches later start with the trial already active.
The instance role created by every template can use S3 buckets whose names start with storagelink-i- in your own AWS account. When the deployment is first set up, StorageLink creates a bucket named storagelink-i-<instance-id> and uses it for the root folder. A High Availability deployment has one such bucket, named after the instance that set up the deployment; the other instances and any replacements use the same bucket. To connect a bucket with a different name, give StorageLink access keys for it (see Access Key and Secret) or extend the instance role's policy, then add the bucket as described in Cloud Connections.
Deleting a stack
Delete the stack in the CloudFormation console. Some resources outlive the stack:
- Single Instance: the template keeps the Elastic IP address when the stack is deleted, so you can reuse it. Release it under EC2 → Elastic IPs if you don't need it, or you will keep paying for it.
- High Availability: CloudFormation takes a final snapshot of the RDS database when it deletes the stack. Delete the snapshot under RDS → Snapshots once you no longer need it.
- All templates: the S3 bucket StorageLink created is not part of the stack. Empty and delete it if you no longer need the files.
