# Step 5: Create a Service

DuploCloud supports three container orchestration technologies to deploy Docker-container applications in AWS:

* Native EKS
* Native ECS Fargate
* Built-in container orchestration in DuploCloud using EKS/ECS

{% hint style="info" %}
You don't need experience with Kubernetes to deploy an application in the DuploCloud Portal. However, it is helpful to be familiar with the [Docker ](https://docs.docker.com/)platform. Docker runs on any platform and provides an easy-to-use UI for creating, running, and managing containers.&#x20;
{% endhint %}

To deploy your own applications with DuploCloud, you’ll choose a public image or provide credentials for your private repository and configure your [Docker Registry credentials](https://docs.duplocloud.com/docs/automation-platform/overview/aws-services/containers/docker-registry-credentials) in DuploCloud.

This tutorial will guide you through deploying a simple `Hello World NodeJS` web app using DuploCloud's built-in container orchestration with EKS. We’ll use a pre-built Docker container and access Docker images from a preconfigured Docker Hub.

*Estimated time to complete Step 5: 10 minutes.*

## Prerequisites

Before creating a Service, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

* An [Infrastructure and Plan](https://docs.duplocloud.com/docs/automation-platform/overview/quick-start/step-1-infrastructure) exist, both named **NONPROD**.
* The **NONPROD** infrastructure has [EKS **Enabled**](https://docs.duplocloud.com/docs/automation-platform/overview/step-1-infrastructure#check-your-work).&#x20;
* A Tenant named [**dev01** has been created](https://docs.duplocloud.com/docs/automation-platform/overview/quick-start/step-2-tenant).
* A host named [**host01** has been created](https://docs.duplocloud.com/docs/automation-platform/overview/quick-start/quick-start-eks-services/step-3-create-host).

## Adding a Service

1. In the **Tenant** list box, select the **dev01** Tenant.
2. In the DuploCloud Portal, navigate to **Kubernetes** -> **Services**.&#x20;
3. Click **Add**. The **Add Service** page displays.<br>

   <figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FYQ8798uhowPFFOA8Z72E%2FScreenshot%20(1081).png?alt=media&#x26;token=d8796d7a-09e9-406a-843b-4db8334f414c" alt=""><figcaption><p><strong>Add Service</strong> page</p></figcaption></figure>
4. From the table below, enter the values that correspond to the fields on the **Add Service** page. Accept all other default values for fields not specified.&#x20;
5. Click **Next**. The **Advanced Options** page is displayed.
6. At the bottom of the **Advanced Options** page, click **Create**. In about five (5) minutes, the Service will be created and initialized, displaying a status of **Running** in the **Containers** tab.&#x20;

| Add a Service page field | Value                            |
| ------------------------ | -------------------------------- |
| **Service Name**         | `demo-service`                   |
| **Docker Image**         | `duplocloud/nodejs-hello:latest` |

{% hint style="info" %}
Use the **Containers** tab to monitor the Service creation status, between **Desired** (**Running**) and **Current**.
{% endhint %}

### Using Spot Instances (optional)

Follow the steps in [Creating Services using Autoscaling Groups](https://docs.duplocloud.com/docs/automation-platform/use-cases/hosts-vms/auto-scaling/auto-scaling-groups#creating-services-using-autoscaling-groups). In the **Add Service** page, **Basic Options**, Select **Tolerate spot instances**.&#x20;

## Checking your work

Verify that your DuploCloud Service, **demo-service**, has a status of **Running**.

1. In the **Tenant** list box, select the **dev01** Tenant.
2. In the DuploCloud Portal, navigate to **Kubernetes** -> **Services**.&#x20;
3. Click on the Service name (**demo-service**).
4. On the **Containers** tab, verify that the current status is **Running**.&#x20;
