Sizing, performance, and cost considerations for the Splunk Add-on for AWS¶
Before you configure the Splunk Add-on for Amazon Web Services (AWS), review these sizing, performance, and cost considerations.
General¶
See the following table for the recommended maximum daily indexing volume on a clustered indexer for different AWS source types. This information is based on a generic Splunk hardware configuration. Adjust the number of indexers in your cluster based on your actual system performance. Add indexers to a cluster to improve indexing and search retrieval performance. Remove indexers to a cluster to avoid within-cluster data replication traffic.
Source type | Daily indexing volume per indexer (GB) |
---|---|
aws:cloudwatchlogs:vpcflow | 25-30 |
aws:s3:accesslogs | 80- 20 |
aws:cloudtrail | 150-200 |
aws:billing | 50- 00 |
These sizing recommendations are based on the Splunk platform hardware configurations in the following table. You can also use the System requirements for use of Splunk Enterprise on-premises in the Splunk Enterprise Installation Manual as a reference.
Splunk platform type | CPU cores | RAM | EC2 instance type |
---|---|---|---|
Search head | 8 | 16 GB | c4.xlarge |
Indexer | 16 | 64 GB | m4.4xlarge |
Input configuration screens require data transfer from AWS to populate the services, queues, and buckets available to your accounts. If your network to AWS is slow, data transfers might be slow to load. If you encounter timeout issues, you can manually type in resource names.
Performance for the Splunk Add-on for AWS data inputs¶
The rate of data ingestion for this add-on depends on several factors: deployment topology, number of keys in a bucket, file size, file compression format, number of events in a file, event size, and hardware and networking conditions.
See the following tables for measured throughput data achieved under certain operating conditions. Use the information to optimize the Splunk Add-on for AWS add-on in your own production environment. Because performance varies based on user characteristics, application usage, server configurations, and other factors, specific performance results cannot be guaranteed. Contact Splunk Support for accurate performance tuning and sizing.
The Kinesis input for the Splunk Add-on for AWS has its own performance data. See Configure Kinesis inputs for the Splunk Add-on for AWS.
Reference hardware and software environment¶
Throughput data and conclusions are based on performance testing using Splunk platform instances (dedicated heavy forwarders and indexers) running on the following environment:
Instance type | M4 Double Extra Large (m4.4xlarge) |
Memory | 64 GB |
Compute Units (ECU) | 53.5 |
vCPU | 16 |
Storage (GB) | 0 (EBS only) |
Arch | 64-bit |
EBS optimized (max bandwidth) | 2000 Mbps |
Network performance | High |
The following settings are configured in the outputs.conf file on the heavy forwarder:
useACK = true
maxQueueSize = 15MB
Measured performance data¶
The throughput data is the maximum performance for each single input achieved in performance testing under specific operating conditions and is subject to change when any of the hardware and software variables changes. Use this data as a rough reference only.
Single-input max throughput¶
Data input |
Source type |
Max throughput (KBs) |
Max EPS (events) |
Max throughput (GB/day) |
---|---|---|---|---|
Generic S3 |
aws:elb:accesslogs |
17,000 |
86,000 |
1,470 |
Generic S3 |
aws:cloudtrail |
11,000 |
35,000 |
950 |
Incremental S3 |
aws:elb:accesslogs |
11,000 |
43,000 |
950 |
Incremental S3 |
aws:cloudtrail |
7,000 |
10,000 |
600 |
SQS-based S3 |
aws:elb:accesslogs |
12,000 |
50,000 |
1,000 |
SQS-based S3 |
aws:elb:accesslogs |
24,000 |
100,000 |
2,000 |
SQS-based S3 |
aws:cloudtrail |
13,000 |
19,000 |
1,100 |
CloudWatch logs [1] |
aws:cloudwatchlog:vpcflow |
1,000 |
6,700 |
100 |
CloudWatch |
aws:cloudwatch |
240 (Metrics) |
NA |
NA |
CloudTrail |
aws:cloudtrail |
5,000 |
7,000 |
400 |
Kinesis |
aws:cloudwatchlog:vpcflow |
15,000 |
125,000 |
1,200 |
SQS |
aws:sqs |
N/A |
160 |
N/A |
[1] API throttling error occurs if input streams are greater than 1,000.
Multi-inputs max throughput¶
The following throughput data was measured with multiple inputs configured on a heavy forwarder in an indexer cluster distributed environment.
Consolidate AWS accounts during add-on configuration to reduce CPU usage and increase throughput performance.
Data input |
Source type |
Max throughput (KBs) |
Max EPS (events) |
Max throughput (GB/day) |
---|---|---|---|---|
Generic S3 |
aws:elb:accesslogs |
23,000 |
108,000 |
1,980 |
Generic S3 |
aws:cloudtrail |
45,000 |
130,000 |
3,880 |
Incremental S3 |
aws:elb:accesslogs |
34,000 |
140,000 |
2,930 |
Incremental S3 |
aws:cloudtrail |
45,000 |
65,000 |
3,880 |
SQS-based S3 [1] |
aws:elb:accesslogs |
35,000 |
144,000 |
3,000 |
SQS-based S3 [1] |
aws:elb:accesslogs |
42,000 |
190,000 |
3,600 |
SQS-based S3 [1] |
aws:cloudtrail |
45,000 |
68,000 |
3,900 |
CloudWatch logs |
aws:cloudwatchlog:vpcflow |
1,000 |
6,700 |
100 |
CloudWatch (ListMetric) |
aws:cloudwatch |
240 (metrics/s) |
NA |
NA |
CloudTrail |
aws:cloudtrail |
20,000 |
15,000 |
1,700 |
Kinesis |
aws:cloudwatchlog:vpcflow |
18,000 |
154,000 |
1,500 |
SQS |
aws:sqs |
N/A |
670 |
N/A |
[1] Performance testing of the SQS-based S3 input indicates that optimal performance throughput is reached when running four inputs on a single heavy forwarder instance. To achieve higher throughput performance beyond this bottleneck, you can further scale out data collection by creating multiple heavy forwarder instances each configured with up to four SQS-based S3 inputs to concurrently ingest data by consuming messages from the same SQS queue.
Max inputs benchmark per heavy forwarder¶
The following input number ceiling was measured with multiple inputs configured on a heavy forwarder in an indexer cluster distributed environment. CPU and memory resources were utilized to their fullest.
It is possible to configure more inputs than the maximum number indicated in the table if you have a smaller event size, fewer keys per bucket, or more available CPU and memory resources in your environment.
Data input | Sourcetype | Format | Number of keys/bucket | Event size | Max inputs |
---|---|---|---|---|---|
S3 | aws:s3 | zip, syslog | 100,000 | 100 B | 300 |
S3 | aws:cloudtrail | gz, json | 1,300,000 | 1 KB | 30 |
Incremental S3 | aws:cloudtrail | gz, json | 1,300,000 | 1 KB | 20 |
SQS-based S3 | aws:cloudtrail, aws:config | gz, json | 1,000,000 | 1 KB | 50 |
Memory usage benchmark for generic S3 inputs¶
Event size | Number of events per key | Total number of keys | Archive type | Number of inputs | Memory used |
---|---|---|---|---|---|
1,000 | 1,000 | 10,000 | zip | 20 | 20 G |
1,000 | 1,000 | 1,000 | zip | 20 | 12 G |
1,000 | 1,000 | 10,000 | zip | 10 | 18 G |
100 B | 1,000 | 10,000 | zip | 10 | 15 G |
If you do not achieve the expected AWS data ingestion throughput, see Troubleshoot the Splunk Add-on for AWS.
Billing¶
The following table provides general guidance on sizing, performance, and cost considerations for the Billing data input:
Consideration |
Notes |
---|---|
Sizing and performance |
Detailed billing reports can be very large in size, depending on
your environment. If you configure the add-on to collect detailed
reports, it collects all historical reports available in the bucket by
default. In addition, for each newly finalized monthly and detailed
report, the add-on collects new copies of the same report once per
interval until the etag is unchanged. |
AWS cost |
Billing reports themselves do not incur charges, but standard S3
charges apply. |
Billing Cost and Usage Report¶
The following table provides general guidance on sizing, performance, and cost considerations for the Billing Cost and Usage Report data input. Testing was conducted using version 7.1.0 of the Splunk Add-on for AWS.
Splunk Platform Environment | Architecture setup | Number of inputs | Event Count | Data Collection time | Max CPU % | Max RAM % |
---|---|---|---|---|---|---|
Customer Managed Platform (CMP) | m5.4xlarge (vcpu 16 / 64 GiB ram) | 1 | 2,828,618 | ~8mins | 12.13% | 0.20% |
Classic Inputs Data Manager (IDM) | m5.4xlarge (vcpu 16 / 64 GiB ram) | 1 | 2,828,618 | ~11mins | 12.09% | 0.21% |
Victoria Search Head Cluster (SHC) | m5.4xlarge (vcpu 16 / 64 GiB ram) | 1 | 2,828,618 | ~6mins | 12.01% | 0.20% |
CloudTrail¶
The following table provides general guidance on sizing, performance, and cost considerations for the CloudTrail data input:
Consideration |
Notes |
---|---|
Sizing and performance |
None. |
AWS cost |
Using CloudTrail itself does not incur charges, but standard S3,
SNS, and SQS charges apply. |
Config¶
The following table provides general guidance on sizing, performance, and cost considerations for the Config data input:
Consideration |
Notes |
---|---|
Sizing and performance |
None. |
AWS cost |
Using Config incurs charges from AWS. See http://aws.amazon.com/config/pricing/. |
Config Rules¶
The following table provides general guidance on sizing, performance, and cost considerations for the Config Rules data input:
Consideration | Notes |
---|---|
Sizing and performance | None. |
AWS cost | None. |
CloudWatch¶
The following table provides general guidance on sizing, performance, and cost considerations for the CloudWatch data input:
Consideration |
Notes |
---|---|
Sizing and performance |
The smaller the granularity you configure, the more events you
collect. |
AWS cost |
Using CloudWatch and making requests against the CloudWatch API
incurs charges from AWS. |
CloudWatch Logs (VPC Flow Logs)¶
The following table provides general guidance on sizing, performance, and cost considerations for the CloudWatch Logs (VPC Flow Logs) data input:
Consideration |
Notes |
---|---|
Sizing and performance |
AWS limits each account to 10 requests per second, each of which
returns no more than 1 MB of data. In other words, the data ingestion
and indexing rate is no more than 10 MB/s. The add-on modular input can
process up to 4,000 events per second in a single log stream.
|
AWS cost |
Using CloudWatch Logs incurs charges from AWS. See https://aws.amazon.com/cloudwatch/pricing/. |
CloudWatch Metrics¶
The following table provides general guidance on sizing, performance, and cost considerations for the CloudWatch Metrics data input. Testing was conducted using version 7.1.0 of the Splunk Add-on for AWS.
The Number of API calls means m*n where m is the number of unique metric dimensions and n is the number of unique metric names.
Splunk Platform Environment | Architecture setup | Number of inputs | Number of API calls | Event Count | Data Collection time | Max CPU % | Max RAM % |
---|---|---|---|---|---|---|---|
Customer Managed Platform (CMP) | m5.4xlarge (vcpu 16 / 64 GiB ram) | 1 | 200000 | 400000 | ~28mins | 16.03% | 1.67% |
Classic Inputs Data Manager (IDM) | m5.4xlarge (vcpu 16 / 64 GiB ram) | 1 | 200000 | 400000 | ~35mins | 14.89% | 1.83% |
Victoria Search Head Cluster (SHC) | m5.4xlarge (vcpu 16 / 64 GiB ram) | 1 | 200000 | 400000 | ~32mins | 15.09% | 1.70% |
Incremental S3¶
The following table provides general guidance on sizing, performance, and cost considerations for the Incremental S3 data input. Testing was conducted using version 7.1.0 of the Splunk Add-on for AWS.
Splunk Platform Environment | Architecture setup | Number of inputs | Event count | Data Collection time | Max CPU % | Max RAM % |
---|---|---|---|---|---|---|
Customer Managed Platform (CMP) | m5.4xlarge (vcpu 16 / 64 GiB RAM) | 1 | 10491968 | ~104mins | 0.05% | 0.10% |
Classic Inputs Data Manager (IDM) | m5.4xlarge (vcpu 16 / 64 GiB RAM) | 1 | 10491968 | ~105mins | 0.21% | 0.11% |
Victoria Search Head Cluster (SHC) | m5.4xlarge (vcpu 16 / 64 GiB RAM) | 1 | 10491968 | ~104mins | 0.02% | 0.11% |
Inspector¶
The following table provides general guidance on sizing, performance, and cost considerations for the Inspector data input:
Consideration | Notes |
---|---|
Sizing and performance | None. |
AWS cost | Using Amazon Inspector incurs charges from AWS. See https://aws.amazon.com/inspector/pricing/. |
Kinesis¶
The following table provides general guidance on sizing, performance, and cost considerations for the Kinesis data input:
Consideration | Notes |
---|---|
Sizing and performance | See Performance reference for the Kinesis input in the Splunk Add-on for AWS. |
AWS cost | Using Amazon Kinesis incurs charges from AWS. See https://aws.amazon.com/kinesis/streams/pricing/. |
S3¶
The following table provides general guidance on sizing, performance, and cost considerations for the S3 data input:
Consideration |
Notes |
---|---|
Sizing and performance |
AWS throttles S3 data collection at the bucket level, so expect
some delay before all data arrives in your Splunk platform. |
AWS cost |
Using S3 incurs charges from AWS. See https://aws.amazon.com/s3/pricing/. |
Security Lake¶
The following tables provide general guidance on sizing, performance, and cost considerations for the Amazon Security Lake data input. Files ranging in size from 20KB to 200MB were used to collect the performance stats.
Splunk Platform Environment |
Architecture setup |
Number of indexers |
Number of inputs |
Batch size |
Heavy forwarder/IDM CPU % |
Heavy forwarder/IDM RAM % |
Expected Average Throughput Indexed |
---|---|---|---|---|---|---|---|
Customer Managed Platform (CMP) |
|
N/A |
1 |
5 |
11.77% |
3.37% |
3.33 GB/h |
Splunk Cloud Classic |
|
3 |
1 |
5 |
99.90% |
22.06% |
2.82 GB/h |
Splunk Cloud Victoria |
|
3 |
1 |
5 |
54.28% |
22.78% |
2.58 GB/h |
Customer Managed Platform (CMP) |
|
N/A |
2 |
5 |
9.93% |
3.20% |
7.72 GB/h |
Splunk Cloud Classic |
|
6 |
2 |
5 |
99.95% |
22.71% |
5.60 GB/h |
Splunk Cloud Victoria |
|
6 |
2 |
5 |
55.68% |
24.13% |
5.28 GB/h |
Customer Managed Platform (CMP) |
|
N/A |
5 |
5 |
85.42% |
13.65% |
277 GB/h |
Splunk Cloud Classic |
|
9 |
5 |
5 |
99.95% |
27.29% |
96.93 GB/h |
Splunk Cloud Victoria |
|
9 |
5 |
5 |
66.45% |
21.18% |
214 GB/h |
Customer Managed Platform (CMP) |
|
N/A |
1 |
10 |
10.03% |
3.07% |
5.07 GB/h |
Splunk Cloud Classic |
|
3 |
1 |
10 |
99.95% |
23.20% |
5.32 GB/h |
Splunk Cloud Victoria |
|
3 |
1 |
10 |
54.69% |
21.14% |
5.22 GB/h |
Customer Managed Platform (CMP) |
|
N/A |
2 |
10 |
15.02% |
3.31% |
8.99 GB/h |
Splunk Cloud Classic |
|
6 |
2 |
10 |
99.95% |
25.89% |
10.78 GB/h |
Splunk Cloud Victoria |
|
6 |
2 |
10 |
57.58% |
20.83% |
9.58 GB/h |
Customer Managed Platform (CMP) |
|
N/A |
5 |
10 |
82.09% |
16% |
278 GB/h |
Splunk Cloud Classic |
|
9 |
5 |
10 |
99.93% |
22.96% |
100 GB/h |
Splunk Cloud Victoria |
|
9 |
5 |
10 |
61.59% |
19.63% |
325 GB/h |
Performance reference notes:
- The Amazon Security Lake data input is stateless, so multiple inputs can be configured against the same SQS queue.
- The following configuration settings are to scale:
- Batch Size: The number of threads spawned by a single input. For
example,
n=10
will process 10 messages in parallel). - Number of Amazon Security Lake inputs.
- Batch Size: The number of threads spawned by a single input. For
example,
- If you have horizontally scaled the SQS-based S3 input by configuring multiple inputs with the same SQS queue, and your file size in the S3 bucket is not consistent, then the best practice is to decrease batch size (minimum up to 1), as batches are processed sequentially.
Transit Gateway Flow Logs¶
The following tables provide general guidance on sizing, performance, and cost considerations for the Transit Gateway Flow Logs data input. Files with 1MB size were used to collect the performance stats. The batch size for all the inputs was 10.
Common architecture setup |
Number of indexers |
Number of inputs |
Heavy forwarder/IDM CPU % |
Heavy forwarder/IDM RAM % |
Expected Average Throughput Indexed |
---|---|---|---|---|---|
Customer Managed Platform (CMP)
|
N/A |
1 |
38.40% |
7.26% |
26578 KB/m |
N/A |
5 |
50.75% |
6.98% |
40116 KB/m |
|
Splunk platform environment - Victoria Search Head Cluster
|
3 |
1 |
24.34% |
9.20% |
40483 KB/m |
9 |
5 |
41.12% |
18.05% |
61498 KB/m |
|
Splunk platform environment - Classic Cluster (1 IDM)
|
3 |
1 |
22.37% |
7.52% |
45048 KB/m |
9 |
5 |
29.05% |
20.40% |
53792 KB/m |
SQS¶
The following table provides general guidance on sizing, performance, and cost considerations for the SQS data input:
Consideration | Notes |
---|---|
Sizing and performance | None. |
AWS cost | Using SQS incurs charges from AWS. See https://aws.amazon.com/sqs/pricing/. |
SNS¶
The following table provides general guidance on sizing, performance, and cost considerations for the SNS data input:
Consideration | Notes |
---|---|
Sizing and performance | None. |
AWS cost | Using SNS incurs charges from AWS. See https://aws.amazon.com/sns/pricing/. |