Tech Note 0025

Amazon Web Services

Setting up ExpeDat/SyncDat servers on Amazon EC2 instances

ExpeDat and SyncDat software can be installed on AWS EC2 instances just like any other Linux or Windows system.

This article is about installing stand-alone DEI software on EC2 instances.  For information about our AMI backed AWS Marketplace offerings, see our CloudDat for AWS product.

Choosing an Instance Type

AWS bandwidth is a shared resource.  Larger instance sizes with a higher "Network Performance" rating will more often receive a larger share of AWS bandwidth.  As with all AWS resources, performance will vary.  Below are some example instance sizes and their typical speeds, assuming your local bandwidth is sufficient and that you are targeting S3 or EBS storage.  Speeds in excess of 10 gigabits per second are achievable when targeting SSD instance storage.

Instance TypeEstimated Top Speed
c4.large100 to 400 megabits per second
c4.xlarge200 to 600 megabits per second
c4.2xlarge400 to 1000 megabits per second
c4.4xlarge700 to 2000 megabits per second

c4.2xlarge will provide good performance most of the time.  To achieve maximum performance more often, choose the c4.4xlarge instance type.  If you have a slower internet connection or do not require as much consistency, you may choose c4.large for reduced cost.

Memory (RAM) can become a factor when running a high capacity server (16 or more) with many active transfers.  For high capacity servers, consider using an m4 instance type instead of c4.

Filesystem performance will be highest for local instance (ephemeral) storage.  EBS (Elastic Block Storage) filesystems are normally limited to a few hundred megabits per second, but you can achieve high speeds by provisioning your storage as an EBS-Optimized volume.

An EC2 instance may experience severe performance limitations for several hours after changing an instance type, or mounting a new EBS volume.

For accelerated access to S3, you may subscribe to or purchase the CloudDat for AWS.  It can move data into and out of S3 objects at up to 900 megabits per second.

Performance will also be influenced by all of the factors which normally affect a computer system.  See the ExpeDat performance documentation for details.

Firewall

When installing servedat on EC2, you will need to open UDP port 8080 in the firewall.  This can be done by modifying the "Security Group" after the initial setup.

Security Group
  1. In the EC2 management console, click "Security Groups".
  2. Select the group assigned to your EC2 instance.
  3. In the frame below, select the "Inbound" tab.
  4. Click Edit.
  5. In the "Edit inbound rules" dialog, click "Add Rule".
  6. In the "Type" pop-up menu, select "Custom UDP rule".
  7. Enter a port range of "8080" (assuming you are using the default ExpeDat or SyncDat server port).
  8. For general client use, set Source to "Anywhere 0.0.0.0/0".
  9. Click "Save".

For general information about firewalls, see Tech Note 0002.

Linux System Authentication

The default Linux AMI does not assign a password to user accounts.  If you wish system users to authenticate to servedat, you must create a password for each.

While logged on as an administrative user, use the command "sudo passwd username".  For example, to create a password for the default user account:

sudo passwd ec2-user

For general information about system user authentication, see the servedat "System Authentication" manual page.

Linux File Cache

By default, Linux delays writing data to storage until at least 10% of RAM is filled and will freeze all storage access for flushing when 20% of RAM is filled.  For instances with large amounts of RAM, this can cause gigabytes of data to build up.  To ensure data integrity, ExpeDat and SyncDat servers do not declare a file upload successful until that data is actually flushed to storage.  This can make them appear to be slower than software which exits while the data is still in transit.  It can also make uploads take longer on instances with large amounts of RAM.

For example, a c4.8xlarge instance has 60 gigabytes of RAM and may cache up to 12 gigabytes of file write data.  Even at an EBS-optimized rate of 4000 megabits per second of EBS bandwidth, it would take an extra 26 seconds to flush that to disk at the end of a large upload.

To ensure a smooth flow of data, and minimize the chance of loss when using other software, it is best to limit Linux write caching by adding the following line to /etc/sysctl.conf:

vm.dirty_bytes=125000000

For those changes to take effect, you must either reboot or type the following commands:

sysctl -w vm.dirty_bytes=125000000

Linux UDP Buffers

The linux kernel limits UDP buffers to sizes which are not appropriate for modern high-speed networks.

If you install the servedat server with sufficient privileges, it will automatically adjust the buffer sizes each time the service starts.

To permanently correct the UDP buffer limit for both clients and servers, add the following lines to /etc/sysctl.conf:

net.core.wmem_max=8388608 net.core.rmem_max=8388608

For those changes to take effect, you must either reboot or type the following commands:

sudo /sbin/sysctl -w net.core.wmem_max=8388608 sudo /sbin/sysctl -w net.core.rmem_max=8388608

See Tech Note 0024 for more about operating system UDP limitations.

Network Speeds

Amazon does not guarantee any particular level of network speed, but the following guidelines generally apply:

Performance will also be influenced by all of the factors which normally affect a computer system.  See the ExpeDat performance documentation for details.

License Binding

Traditional host identifiers and IP addresses are not persistent in EC2 and cannot be used for MTP license binding.  Instead, the following options are available for EC2 hosted software:

See Tech Note 0007 for more details about host binding options.

Note that if you subscribe to CloudDat from AWS Marketplace, no host binding is required as the software is automatically billed by AWS.

More

AWS may change EC2 specifications at any time, and additional setup steps may be required when installing host-bound software on an EC2 instance.  Make sure to discuss EC2 details with your DEI representative prior to deployment.

Tech Note History

Oct182018Updated performance statistics
Jan292018Linux File Cache
Apr172017CloudDat
Oct072014Updated Everything
Jul232014Updated UDP
Oct302013Marketplace
Elastic IP
Feb062013EBS-Optimized
Oct132011Utilization
May042011Updated Firewall
Apr222011Changing Type
Mar232011Instance ID
Dec072010Choosing
Nov172010First Post