Every company is unique in many ways, and their communication needs are no different! Years ago, it was easy to recommend hardware specs for Asterisk-based PBX systems. However, these days, VoIP has evolved into a total communication platform. While we will provide some general guidelines for EC2 hardware, it will be important to regularly check your server resources to ensure you on a properly sized-instance. This is especially true when first placing your new AWS FreePBX instance into production and any time your company experiences growth or drastic changes in the way you do business. One of the best features of AWS is the ability to change EC2 Instance Types and Sizes at any time, so you can rest assured that a proper balance between performance and cost can be achieved regardless of your company's size, now and in the future!
For most environments where you simply want to take advantage of the normal suite of FreePBX services (calling, voicemail, fax, conferences, etc), the General Purpose Instance types (T3, T3a, M6, M6a) will provide the best combination of performance and value. If you are using a minimum amount of “intensive” services like conference rooms and queues, the T3 or T3a types will suffice. If you are planning to host a lot of extensions, conference rooms, 3rd party software (see below), etc., you will want to take advantage of the more dedicated performance of “M-Types” (M6, M6a, M7i, M7a, M8i, M8a).
If you plan to use “extra” software on or alongside your AWS FreePBX instance, such as iSymphony or Queue Metrics, you need to be aware that each of these platforms have their own hardware requirements. For example, iSymphony is a PHP-heavy Java application that requires significantly more CPU and RAM resources in addition to what Asterisk and FreePBX need. iSymphony's RAM requirements can easily exceed 3 or 4GB on very large deployments and/or busy call centers. You may want to take advantage of the Compute Optimized “C-Types” (C7i, C7a, C8i, C8a), which provide extra CPU cores, or Memory Optimized “R-Types” (R7i, R7a, R8i, R8a), which provide extra RAM, depending on the software you are deploying alongside AWS FreePBX.
Here are some other special use cases where you will keep other considerations in mind:
This is the more difficult aspect to predict ahead of a deployment, as there are many factors that ultimately determine the size of instance (CPUs/RAM) you choose. You should also note that Compute Optimized C-Types and Memory Optimized R-Types have unbalanced hardware specs when compared to General Purpose T- or M-Types. Of course, once your server is in production, it is important to periodically check the resource usage on your FreePBX instance during times of PEAK CALL VOLUME to ensure you are using the correct size for your needs. An instance sized too small will lead to instability, audio issues, dropped calls, and even server crashes. An instance sized too large will waste money.
Assuming you don't have a super large deployment with your current phone solution, feel free to start with the M6a.large or M6a.xlarge instance type to get started. Once you have placed your instance in production, you'll want to monitor your resources during periods of peak call activity and adjust your instance size accordingly. Here are several ways to monitor your resources:
If you have any doubts as to the best Instance Type and Size for your needs, we're here to help! Submit a Ticket and we'll gladly discuss your needs to come up with a tailored recommendation for your company. For more information regarding resizing instance types on AWS EC2, please click here.