Amazon EC2 provides computing instances, which are virtual machines running on the XenSource hypervisor. Each instance is a unique copy of a virtual machine image. We will use EC2 terminology instance to refer to these VM's.
SoftNAS performance and throughput is governed by:
Available Memory: SoftNAS uses around 1 GB of RAM for the kernal and system operation. Memory beyond 1 GB is available for use as cache memory, which greatly improves overall system performance and response time - more memory = better performance, to a point. If your application workloads involve a high number of small, random I/O requests, then cache memory will provide the best performance increase by reducing random disk I/O to a minimum. If you are running a SQL database application, cache memory will greatly improve query performance by keeping tables in memory. At a minimum, 2 GB of RAM will yield around 1 GB for cache. For best results, start with 4 GB or more RAM. If you use deduplication, add 1 GB of RAM per terabyte of deduplicated data (to keep deduplication look-up tables in RAM)
CPU: SoftNAS needs a minimum of 2 CPUs for normal operation. To maintain peak performance when using the Compression feature, add CPUs (e.g., 4 CPU) if you observe CPU usage at 60% or greater on average.
Network - In EC2, SoftNAS uses Elastic Block Storage (EBS), which are disks running across the network in a SAN (storage area network) configuration. This means all disk I/O travels across a shared network connecting the EC2 computing instance with the SAN. This makes network I/O an important factor in SoftNAS performance. If you have high-performance needs, then you can choose.
Provisioned IOPS: EC2 offers a way to specify the IOPS (I/O per second) available to an instance called Provisioned IOPS. Provisioned IOPS is an extra-charge option available when you create an instance. By choosing Provisioned IOPS, EBS disk I/O operates under an SLA that designed to provide consistent performance, delivering within 10% of the provisioned IOPS performance 99.9% of the time over a given year. This can be important in the EC2 computing environment, where network and disk resources are shared, by providing guaranteed throughput and priority for EBS I/O.
General Instance Type Recommendations
Arguably, there are so many choices to make in EC2, it can be challenging to know where to begin. Here are some general recommendations for getting started with EC2 and SoftNAS.
File Server and General Use: Medium Instance (3.75 GB RAM, 1 virtual core with 2 EC2 Compute Unit)
Moderate Performance SQL Workload: Large Instance (7.5 GB RAM, 2 virtual cores with 2 EC2 Compute Units each). EBS-Optimized with Provisioned IOPS only as needed.
High-performance / Heavy SQL Workloads: Extra Large Instance (15 GB RAM, 4 virtual cores with 2 EC2 Compute Units each). EBS-Optimized with Provisioned IOPS as needed.
If your workloads are extremely heavy, you can increase cache memory with "High-Memory Instances" and/or use EBS-Optimized and Provisioned IOPS to provide better control over available IOPS.
Note: Micro instances may be adequate for some development and QA testing purposes, and to keep costs low; however, be aware of the significant memory, CPU and network limits imposed on micro instances, which will certainly limit performance and throughput of SoftNAS.