---
title: "Deploying an AWS Kubernetes Cluster"
slug: "deploying-an-aws-kubernetes-cluster"
updated: 2025-06-06T13:22:03Z
published: 2025-06-06T13:22:03Z
---

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

# Deploying an AWS Kubernetes Cluster

## Overview

Decisions can be hosted in **Kubernetes**cluster architecture alongside the [Redis server](https://documentation.decisions.com/v9/docs/setting-up-redis-external-caching) and a [load balancer](https://documentation.decisions.com/v9/docs/about-load-balancing).

The following document demonstrates how to set up an **Elastic Kubernetes Service** **(EKS**) **cluster**for AWS. ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2022-07-20_14h01_08.png)

### Prerequisites

- An active [**AWS Account**](https://aws.amazon.com/)
- An RDS database for the cluster by following the [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) article in AWS's documentation.

---

## Creating a Kubernetes Service with Cloudshell

1. In AWS, open the **AWS CloudShell** console by clicking the command prompt icon to the right of the search bar.  
![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2022-07-20_14h07_54.png)
2. Enter the following command to download the **YAML template**directly to the home directory.

```shell
wget https://decisionspublic.blob.core.windows.net/eks/eksdeploy-example.yaml
```
3. Enter the following command to review the YAML in the console.

```shell
vi eksdeploy.yaml
```
4. Edit the YAML template to accommodate connection settings according to the reference table below. **Save**once done.

| Variable Name | Default Value | New Value |
| --- | --- | --- |
| REPLICAS | 2 | Enter the desired number of Decisions nodes to create in the cluster |
| DECISIONS_ CLUSTERPORTALBASEURL | http://YOUR-CLUSTER-URL-HERE-local/ | Enter the desired URL to the cluster’s portal. This is usually the cluster name and its port number. |
| DECISIONS_ DATABASECONNECTIONSTRING | tcp:YOUR-RDS-DATABASE.us-west-2.rds.amazonaws.com | Enter the connection string of the prerequisite RDS database. |
|  | Initial Catalog | YOUR-DB | Enter the name of the prerequisite RDS database. |
|  | User-ID | ADMIN-USERNAME | Enter the name of the admin user for the specified RDS database. |
|  | Password | ADMINPASS | Enter the password for the specified admin user. |
5. Enter the following command to download the **deployment script**directly to the home directory.

```shell
wget https://decisionspublic.blob.core.windows.net/eks/eksdeploy.sh
```
6. Enter the following command to review the deployment script in the console.

```shell
vi eksdeploy.sh
```
7. Edit the deployment script to define the cluster according to the reference table. Save once done.  
  
Do not alter the name of this script.

| Variable Name | Default Value | New Value |
| --- | --- | --- |
| CLUSTER_NAME | example-cluster | Enter the desired cluster name. |
| REGION | us-east-2 | Enter the region to place the cluster in. It is best to match the cluster's region with the RDS DB's region for minimal latency, but these regions can differ. |
8. To deploy the **EKS cluster**, run the following command to run the deployment script. This will take several minutes to complete.  
  
The deployment script will periodically ask if any errors occur as it runs. When prompted, enter "Y" to confirm no errors occurred to progress to the next step of the script until it is complete.

```shell
bash eksdeploy.sh
```

![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2022-07-20_14h20_16.png)

---

## Verifying the Cluster

1. After the **deployment script**completes, enter the following command to check the deployment status. It is a best practice to run this command in case of any errors.

```shell
kubectl get pods -n decisions
```
2. Monitor the **cluster's****deployment**. A **node**is successfully deployed when its status changes from **ContainerCreating**to **Running.**  
  
If the **Ready**column remains at 0/1, then the **container**is down. It will still accept requests and connections from the **load balancer** once it reaches 1/1.  
![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2022-07-20_14h25_59.png)
3. Once all nodes are set to Running, the container has been successfully deployed. Connect to the cluster via the **connection****string**specified in step 4 of "[Creating a Kubernetes Service With Cloudshell](/v9/docs/deploying-an-aws-kubernetes-cluster#creating-a-kubernetes-service-with-cloudshell)".

---

For further information on Installation, visit the [Decisions Forum](https://community.decisions.com/categories/InstallationSetup).
