> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ulm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS Configuration

## AWS Configuration

**Elastic Kubernetes Service (EKS)**

EKS is a managed AWS service that allows you to deploy, manage, and scale applications on a containerized platform using Kubernetes. The ULM 9 team recommends general-purpose, non-burstable instances to support ULM 9 operations and future scaling needs. Refer to the table below to decide what type of instance you require.

| Instance | Type |
| - | - |
| m5 | General-purpose |
| r5 | Memory-optimized |
| m5a | Using AMD processors |
| rfa | Using AMD processors |

Horizontal node scaling dynamically adds nodes when requested resources exceed the current maximum nodes available to the cluster. The ULM 9 support team recommends configuring more nodes with nominal specifications to maximize cluster reliability in case of a failed node. An optimal configuration is to use a minimum of 13 nodes of m5a.xlarge instances.

The maximum number of nodes required as a scale limit depends on the horizontal pod autoscaler settings in your cluster. When setting the scale limit, calculate the limit to prevent scaling infinitely.

**Note:** Only x86-64 architectures are supported. ARM (AWS Graviton/Graviton2 instances) are not supported for EKS.

**Relational Database Service (RDS)**

RDS is a managed AWS service that streamlines the administration and operations of a relational database in your private cloud. AWS handles your database backups (for a restore), software updates, and ensures only authorized users access the stored information.

| Requirement | Minimum Supported |
| - | - |
| Instance type | - r4 - r5 (+ b/d) - r6g |
| Processing Power | - 2 vCPUs - 16 GB of RAM |
| Architecture | ARM CPUs AWS Graviton 2 (r6g instance type) |
| Aurora | MySQL 5.7**Note:** RDS requires both a reader and writer node. However, ULM 9 only uses the writer node because read-write splitting isn't supported. |

| Configuration Option | Description |
| - | - |
| Enable binary logs | See the [using AWS-managed MySQL databases](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.AmazonManaged) documentation for more guidance. |
| `binlog_format` | Configure to `ROW` in the parameter group for the Aurora instance. |
| `binlog_checksum` | Configure to `NONE` in the parameter group for the Aurora instance. |
| `max_connections` | Increase the number of maximum connections allowed by setting the property value in the parameter group for the Aurora instance. A property value of 3000 is recommended. |
| `binlog retention hours` | Increase the binary logs retention time by issuing a database function call:- `call mysql.rds_set_configuration('binlog retention hours', 24);` |
| **Note:** Once the RDS configuration is applied, you must perform an instance restart to complete updating the instance with the new settings. | |

**Database Migration Service (DMS)**

DMS creates the replication instance on an Amazon EC2 instance to support your applications with redundancy. DMS is required to implement the User eXperience Data Record (UXDR®). The smaller instance classes are applicable for testing or small migrations. Using smaller instances is the recommended approach because DMS consumes a significant amount of memory and CPU.

For the purpose of implementing UXDR®, a general purpose replication instance is required such as:

* dms.t2.large or dms.t3.large (recommended)
* dms.t2.medium or dms.t2.medium (minimum)

**Managed Streaming for Kafka (MSK)**

MSK allows you to build and run applications that use Apache Kafka (open source) to process streaming data. Your applications are supported with minimal maintenance or code changes and integrate with other plugins and apps. Kafka 2.2.1 is supported by ULM 9.

The ULM 9 team recommends the following specifications:

* Kafka.m5.large brokers for production workloads
* A minimum of three brokers are required

**OpenSearch**

AWS OpenSearch helps streamline the management of your OpenSearch clusters in your private cloud by leveraging Elasticsearch OSS supports. ULM 9 is currently certified for Elasticsearch 7.9. The ULM 9 team recommends the following configuration:

* A minimum of two r5.large.search dedicated master nodes
* A minimum of two t3.medium.search data nodes

**Parent topic:**[ULM 9 Requirements](../topics/ulm9EnvReqs)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.