> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/feature-management-experimentation/new-to-fme/sdks-and-customer-deployed-components/examples/synchronizer-docker-ecs.md).

# Deploy a Synchronizer Docker container in Amazon AWS

### Overview <a href="#overview" id="overview"></a>

This page provides instructions on how to deploy the Split Synchronizer Docker container using Amazon AWS ECS service.

### Before you begin <a href="#before-you-begin" id="before-you-begin"></a>

* AWS CLI installed and configured
* Docker installed
* An AWS account with permissions to use ECS and ECR
* Split Synchronizer Docker image or access to `splitsoftware/split-synchronizer`

### Step-by-step Guide <a href="#step-by-step-guide" id="step-by-step-guide"></a>

1. In the AWS console, go to **ECR** → **Create repository**.

   ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-97dd6c6a468cfa63613fc2045bfdb8caa2859979%2Fecs-1.png?alt=media)
2. Provide a name for your new repository.

   ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-379b7743bc62900a367f9bbd59979481e3dc751e%2Fecs-2.png?alt=media)
3. Once created, note the repository URL — it will be used later.

   ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-f9073e264125c0a51b9ad7904a6b06356c1fa338%2Fecs-3.png?alt=media)
4. Authenticate Docker to AWS ECR by running `$(aws ecr get-login --no-include-email --region us-east-2)`. If this fails, check AWS help pages.
5. Pull the Synchronizer image locally by running `docker pull splitsoftware/split-synchronizer`.
6. Get the image ID by running `docker images`.

   For example:

   ```bash
   REPOSITORY                          TAG     IMAGE ID       CREATED      SIZE
   splitsoftware/split-synchronizer    latest  3179320c768e   3 weeks ago  941MB
   ```
7. Tag the image for your AWS ECR repository by running `docker tag 3179320c768e 082XXXXX925.dkr.ecr.us-east-2.amazonaws.com/splitsync`.
8. Push the image to AWS ECR by running `docker push 082XXXXX925.dkr.ecr.us-east-2.amazonaws.com/splitsync`. The image appears in the AWS ECR Repositories list.

   ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-b8055db8b97d51cdad9bc859c95a68f824d4f5bc%2Fecs-4.png?alt=media)
9. Go to **ECS** → **Clusters** → **Create**.

   ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-458ed09e60b2632d31b6c866ca8bf1b4d62d76bb%2Fecs-5.png?alt=media)
10. Select AWS Fargate (or your preferred cluster type).

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-424f0ad9316b5ce90b37b448d40c13011d8f0cb6%2Fecs-6.png?alt=media) ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-c71499f62c08688dccdeecf538e4fe8c67fdc9c9%2Fecs-7.png?alt=media)
11. Go to **ECS** → **Task Definitions** → **Create new Task Definition**.

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-a8e04f0e2a4afb312d796b03529c0025d526d4c0%2Fecs-8.png?alt=media) ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-1954e16be881573bbdd5dd7ba548f7a78a036bcc%2Fecs-9.png?alt=media)
12. Choose the launch type.
13. Under **Task Size**, set the task memory to 2GB and CPU to 1 vCPU.

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-936efd0269fd4269799a740d2a0841cc27df5a4c%2Fecs-10.png?alt=media)
14. Add a container to the task:

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-690faed690f43b8ac0a533a54e4716cfd588216f%2Fecs-11.png?alt=media)

    * Container name: Enter a descriptive name.
    * Image: Use your AWS ECR URL (e.g., `082XXXXX925.dkr.ecr.us-east-2.amazonaws.com/splitsync`).
    * Port mappings:

      ```bash
      3000/tcp
      3010/tcp
      ```
    * Environment variables (adjust as needed):

      ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-1a3257e307835eb95034b1d45ae74cf6cf7f162a%2Fecs-12.png?alt=media)

      ```nginx
      SPLIT_SYNC_APIKEY
      SPLIT_SYNC_REDIS_HOST
      SPLIT_SYNC_REDIS_PORT
      SPLIT_SYNC_REDIS_DB
      SPLIT_SYNC_REDIS_PASS
      SPLIT_SYNC_ADMIN_USER
      SPLIT_SYNC_ADMIN_PASS
      ```
15. Click **Add**, then **Create**.

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-f78d58f396aba9894442f0b218db3cfb10f2f683%2Fecs-13.png?alt=media)
16. Once created, **Run** the task.

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-dbbb58be920ce9c8bf871199a0f5922b78e9e313%2Fecs-14.png?alt=media) ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-b2086b2073441ace8a68631fe51f36d5df7d6c49%2Fecs-15.png?alt=media)
17. Click the **Task ID** → **Logs** tab.

    ![](https://1473625385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrT2RGHAjtBTaObzchfpb%2Fuploads%2Fgit-blob-759bf9a24c0eca8eea1476af9ddd85778a28134e%2Fecs-16.png?alt=media)

    You should see Synchronizer’s startup output.

{% @harness-feedback/feedback %}
