Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions _migrations/Solution-Overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
layout: default
title: Migration assistant overview
nav_order: 15
---

# Migration assistant overview

This Overview outlines the process for successfully performing an end-to-end migration. The solution offered in this repository caters to several specific scenarios:

1. Migrating cluster metadata, such as index settings, aliases, and templates.
2. Migrating existing or historical data from a source to a target cluster.
3. Transferring ongoing or live traffic between clusters.
4. Conducting a comprehensive migration involving both existing and live data with zero downtime and the option to back out of a migration.
5. Upgrading an existing cluster.
6. Comparing an existing cluster with a prospective new one.

In this guide, we focus on scenario 4, guiding you through the migration of historical data from a source cluster while concurrently handling live production traffic, which will be captured and redirected to a target cluster. It's crucial to note that migration strategies are not universally applicable. This guide provides a detailed methodology, based on certain assumptions detailed throughout, emphasizing the importance of robust engineering practices and a systematic approach to ensure a successful migration.

## Key Components of the Solution

Check failure on line 20 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L20

[OpenSearch.HeadingCapitalization] 'Key Components of the Solution' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Key Components of the Solution' is a heading and should be in sentence case.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 20, "column": 4}}}, "severity": "ERROR"}

### Elasticsearch/OpenSearch Source

Check failure on line 22 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L22

[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.
Raw output
{"message": "[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 22, "column": 1}}}, "severity": "ERROR"}

Check failure on line 22 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L22

[OpenSearch.HeadingCapitalization] 'Elasticsearch/OpenSearch Source' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Elasticsearch/OpenSearch Source' is a heading and should be in sentence case.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 22, "column": 5}}}, "severity": "ERROR"}
Your source cluster in this solution operates on Elasticsearch or OpenSearch, hosted on EC2 instances or similar computing environments. A proxy is set up to interact with this source cluster, either positioned in front of or directly on the coordinating nodes of the cluster.

### Capture Proxy

Check failure on line 25 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L25

[OpenSearch.HeadingCapitalization] 'Capture Proxy' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Capture Proxy' is a heading and should be in sentence case.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 25, "column": 5}}}, "severity": "ERROR"}
This component is designed for HTTP RESTful traffic, playing a dual role. It not only forwards traffic to the source cluster but also splits and channels this traffic to a stream-processing service for later playback.

### Traffic Replayer

Check failure on line 28 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L28

[OpenSearch.HeadingCapitalization] 'Traffic Replayer' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Traffic Replayer' is a heading and should be in sentence case.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 28, "column": 5}}}, "severity": "ERROR"}

Check failure on line 28 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L28

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 28, "column": 13}}}, "severity": "ERROR"}
Acting as a traffic simulation tool, the Traffic Replayer replays recorded request traffic to a target cluster, mirroring source traffic patterns. It links original requests and their responses to those directed at the target cluster, facilitating comparative analysis.

Check failure on line 29 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L29

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 29, "column": 50}}}, "severity": "ERROR"}

### Reindex-from-Snapshort
Reindexing data from an existing snapshot are Elastic Container Service (ECS) workers that coordinate the migration of documents from an existing snapshot, reindexing the documents in parallel to a target cluster.

### Migration Management Console

Check failure on line 34 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L34

[OpenSearch.HeadingCapitalization] 'Migration Management Console' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Migration Management Console' is a heading and should be in sentence case.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 34, "column": 5}}}, "severity": "ERROR"}
A conatiner within Elastic Container Service (ECS) that orchestrates the deployment of the Migration Assistant for Amazon OpenSearch Service, alongside a variety of tools to streamline the migration process.

Check failure on line 35 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L35

[OpenSearch.Spelling] Error: conatiner. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: conatiner. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 35, "column": 3}}}, "severity": "ERROR"}

### Architecture Overview

Check failure on line 37 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L37

[OpenSearch.HeadingCapitalization] 'Architecture Overview' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Architecture Overview' is a heading and should be in sentence case.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 37, "column": 5}}}, "severity": "ERROR"}
The solution architecture, adaptable for cloud deployment, unfolds as follows:

1. Incoming traffic reaches the existing cluster, targeting each coordinator node.
2. A Capture Proxy is placed before each coordinator node for traffic capture, storing data in an event stream.
3. With the continuous capture setup, historical data backfill is initiated.
4. Post-backfill, the captured traffic is replayed using the Traffic Replayer.

Check failure on line 43 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L43

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 43, "column": 70}}}, "severity": "ERROR"}
5. The results from directing traffic to both the original and new clusters are then evaluated.

This architecture is based on the use of AWS cloud infrastructure, but most tools are designed to be cloud-independent. A local containerized version of this solution is also available.

Check failure on line 46 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L46

[Vale.Terms] Use 'AWS Cloud' instead of 'AWS cloud'.
Raw output
{"message": "[Vale.Terms] Use 'AWS Cloud' instead of 'AWS cloud'.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 46, "column": 42}}}, "severity": "ERROR"}


Deploying to AWS (covered later in the guide) will deploy the following system design:

![Migration architecture overview]({{site.url}}{{site.baseurl}}/images/migrations/migration-architecture-overview.svg)

1. Traffic is directed to the existing cluster.
2. An ALB with Capture Proxies are added allowing for traffic capture and storage in Amazon Managed Streaming for Apache Kafka (MSK).
3. With continuous traffic capture in place, a Reindex-from-Snapshot (RFS) is initiated by the user.
4. Once Reindex-from-Snapshot, traffic captured is replayed by the user using a Traffic Replayer.

Check failure on line 56 in _migrations/Solution-Overview.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/Solution-Overview.md#L56

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/Solution-Overview.md", "range": {"start": {"line": 56, "column": 89}}}, "severity": "ERROR"}
5. The user evaluates the outcomes from routing traffic to both the original and the new cluster.
6. After confirming the target cluster’s functionality meets expectations, the user dismantles all related stacks, retaining only the new cluster’s setup.
Additionally, the user may retire and discard the old cluster’s legacy infrastructure.
234 changes: 234 additions & 0 deletions _migrations/deploying-migration-assistant/configuration-options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
---
layout: default
title: Configuration options
nav_order: 15
parent: Deploying migration assistant
---

# Configuration options

This page outlines the configuration options for three key migrations:
1. **Metadata Migration**
2. **Backfill Migration with Reindex-from-Snapshot (RFS)**
3. **Live Capture Migration with Capture and Replay (C&R)**

Each of these migrations may depend on either a snapshot or a capture proxy. The CDK context blocks below are shown as separate context blocks for each migration type for simplicity. If performing multiple migration types, combine these options, as the actual execution of each migration is controlled from the Migration Console.

Check warning on line 15 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L15

[OpenSearch.DirectionAboveBelow] Use 'following or later' instead of 'below' for versions or orientation within a document. Use 'above' and 'below' only for physical space or screen descriptions.
Raw output
{"message": "[OpenSearch.DirectionAboveBelow] Use 'following or later' instead of 'below' for versions or orientation within a document. Use 'above' and 'below' only for physical space or screen descriptions.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 15, "column": 101}}}, "severity": "WARNING"}

It also has a section describing how to specify the auth details for the source and target cluster (no auth, basic auth with a username and password, or sigv4 auth).

Check warning on line 17 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L17

[OpenSearch.SignatureV4] 'Signature Version 4': Use 'AWS Signature Version 4' instead of 'sigv4' on first appearance. Then, Signature Version 4 may be used. Only use SigV4 when space is limited.
Raw output
{"message": "[OpenSearch.SignatureV4] 'Signature Version 4': Use 'AWS Signature Version 4' instead of 'sigv4' on first appearance. Then, Signature Version 4 may be used. Only use SigV4 when space is limited.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 17, "column": 154}}}, "severity": "WARNING"}

> [!TIP]
For a complete list of configuration options, please refer to the [opensearch-migrations options.md](https://github.com/opensearch-project/opensearch-migrations/blob/main/deployment/cdk/opensearch-service-migration/options.md) but please open an issue for consultation if changing an option that is not listed on this page.

Check warning on line 20 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L20

[OpenSearch.Please] Using 'please' is unnecessary. Remove.
Raw output
{"message": "[OpenSearch.Please] Using 'please' is unnecessary. Remove.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 20, "column": 47}}}, "severity": "WARNING"}

Check failure on line 20 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L20

[Vale.Terms] Use 'OpenSearch' instead of 'opensearch'.
Raw output
{"message": "[Vale.Terms] Use 'OpenSearch' instead of 'opensearch'.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 20, "column": 68}}}, "severity": "ERROR"}

Check warning on line 20 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L20

[OpenSearch.Please] Using 'please' is unnecessary. Remove.
Raw output
{"message": "[OpenSearch.Please] Using 'please' is unnecessary. Remove.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 20, "column": 232}}}, "severity": "WARNING"}

Options for the source cluster endpoint, target cluster endpoint, and existing VPC should be configured for the Migration tools to function effectively.


## Metadata Migration Options

Check failure on line 25 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L25

[OpenSearch.HeadingCapitalization] 'Metadata Migration Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Metadata Migration Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 25, "column": 4}}}, "severity": "ERROR"}

## Sample Metadata Migration CDK Options

Check failure on line 27 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L27

[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.
Raw output
{"message": "[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 27, "column": 1}}}, "severity": "ERROR"}

Check failure on line 27 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L27

[OpenSearch.HeadingCapitalization] 'Sample Metadata Migration CDK Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Sample Metadata Migration CDK Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 27, "column": 4}}}, "severity": "ERROR"}

```json
{
"metadata-migration": {
"stage": "dev",
"vpcId": <VPC_ID>,

Check warning on line 33 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L33

[OpenSearch.AcronymParentheses] 'VPC': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone.
Raw output
{"message": "[OpenSearch.AcronymParentheses] 'VPC': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 33, "column": 15}}}, "severity": "WARNING"}
"sourceCluster": {
"endpoint": <SOURCE_CLUSTER_ENDPOINT>,
"version": "ES 7.10",
"auth": {"type": "none"}
},
"targetCluster": {
"endpoint": <TARGET_CLUSTER_ENDPOINT>,
"auth": {
"type": "basic",
"username": <TARGET_CLUSTER_USERNAME>,
"passwordFromSecretArn": <TARGET_CLUSTER_PASSWORD_SECRET>
}
},
"reindexFromSnapshotServiceEnabled": true,
"artifactBucketRemovalPolicy": "DESTROY"
}
}
```

There are currently no CDK options specific to Metadata migrations, which are performed from the Migration Console. This migration requires an existing snapshot, which can be created from the Migration Console.

<details>
<summary><b>Shared configuration options table</b>
</summary>

| Name | Example | Description |
|-----------------------|-----------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `sourceClusterEndpoint` | `"https://source-cluster.elb.us-east-1.endpoint.com"` | The endpoint for the source cluster. |
| `targetClusterEndpoint` | `"https://vpc-demo-opensearch-cluster-cv6hggdb66ybpk4kxssqt6zdhu.us-west-2.es.amazonaws.com:443"` | The endpoint for the target cluster. Required if using an existing target cluster for the migration instead of creating a new one. |
| `vpcId` | `"vpc-123456789abcdefgh"` | The ID of the existing VPC where the migration resources will be placed. The VPC must have at least two private subnets that span two availability zones. |

Check failure on line 63 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L63

[OpenSearch.Spelling] Error: subnets. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: subnets. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 63, "column": 241}}}, "severity": "ERROR"}

</details>

## Backfill Migration with Reindex-from-Snapshot (RFS) Options

Check failure on line 67 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L67

[OpenSearch.HeadingCapitalization] 'Backfill Migration with Reindex-from-Snapshot (RFS) Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Backfill Migration with Reindex-from-Snapshot (RFS) Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 67, "column": 4}}}, "severity": "ERROR"}

Check failure on line 67 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L67

[OpenSearch.HeadingAcronyms] '(RFS)': Don't define acronyms in headings.
Raw output
{"message": "[OpenSearch.HeadingAcronyms] '(RFS)': Don't define acronyms in headings.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 67, "column": 50}}}, "severity": "ERROR"}

### Sample Backfill Migration CDK Options

Check failure on line 69 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L69

[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.
Raw output
{"message": "[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 69, "column": 1}}}, "severity": "ERROR"}

Check failure on line 69 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L69

[OpenSearch.HeadingCapitalization] 'Sample Backfill Migration CDK Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Sample Backfill Migration CDK Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 69, "column": 5}}}, "severity": "ERROR"}

```json
{
"backfill-migration": {
"stage": "dev",
"vpcId": <VPC_ID>,

Check warning on line 75 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L75

[OpenSearch.AcronymParentheses] 'VPC': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone.
Raw output
{"message": "[OpenSearch.AcronymParentheses] 'VPC': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 75, "column": 15}}}, "severity": "WARNING"}
"sourceCluster": {
"endpoint": <SOURCE_CLUSTER_ENDPOINT>,
"version": "ES 7.10",
"auth": {"type": "none"}
},
"targetCluster": {
"endpoint": <TARGET_CLUSTER_ENDPOINT>,
"auth": {
"type": "basic",
"username": <TARGET_CLUSTER_USERNAME>,
"passwordFromSecretArn": <TARGET_CLUSTER_PASSWORD_SECRET>
}
},
"reindexFromSnapshotServiceEnabled": true,
"reindexFromSnapshotExtraArgs": "",
"artifactBucketRemovalPolicy": "DESTROY"
}
}
```

Performing a Reindex-from-Snapshot backfill migration requires an existing snapshot. The CDK options specific to backfill migrations are listed below. To view all available arguments for `reindexFromSnapshotExtraArgs`, see [here](https://github.com/opensearch-project/opensearch-migrations/blob/main/DocumentsFromSnapshotMigration/README.md#arguments). At a minimum, no extra arguments may be needed.

Check warning on line 96 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L96

[OpenSearch.DirectionAboveBelow] Use 'following or later' instead of 'below' for versions or orientation within a document. Use 'above' and 'below' only for physical space or screen descriptions.
Raw output
{"message": "[OpenSearch.DirectionAboveBelow] Use 'following or later' instead of 'below' for versions or orientation within a document. Use 'above' and 'below' only for physical space or screen descriptions.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 96, "column": 145}}}, "severity": "WARNING"}

<details>
<summary><b>Backfill specific configuration options table</b>
</summary>

| Name | Example | Description |
|---------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `reindexFromSnapshotServiceEnabled` | `true` | Enables deploying and configuring the RFS ECS service. |
| `reindexFromSnapshotExtraArgs` | `"--target-aws-region us-east-1 --target-aws-service-signing-name es"` | Extra arguments for the Document Migration command, with space separation. See the [RFS Extra Arguments](https://github.com/opensearch-project/opensearch-migrations/blob/main/DocumentsFromSnapshotMigration/README.md#arguments) for more details. You can pass `--no-insecure` to remove the `--insecure` flag. |

</details>

## Live Capture Migration with Capture and Replay (C&R) Options

Check failure on line 109 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L109

[OpenSearch.HeadingCapitalization] 'Live Capture Migration with Capture and Replay (C&R) Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Live Capture Migration with Capture and Replay (C\u0026R) Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 109, "column": 4}}}, "severity": "ERROR"}

### Sample Live Capture Migration CDK Options

Check failure on line 111 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L111

[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.
Raw output
{"message": "[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 111, "column": 1}}}, "severity": "ERROR"}

Check failure on line 111 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L111

[OpenSearch.HeadingCapitalization] 'Sample Live Capture Migration CDK Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Sample Live Capture Migration CDK Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 111, "column": 5}}}, "severity": "ERROR"}

```json
{
"live-capture-migration": {
"stage": "dev",
"vpcId": <VPC_ID>,

Check warning on line 117 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L117

[OpenSearch.AcronymParentheses] 'VPC': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone.
Raw output
{"message": "[OpenSearch.AcronymParentheses] 'VPC': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 117, "column": 15}}}, "severity": "WARNING"}
"sourceCluster": {
"endpoint": <SOURCE_CLUSTER_ENDPOINT>,
"version": "ES 7.10",
"auth": {"type": "none"}
},
"targetCluster": {
"endpoint": <TARGET_CLUSTER_ENDPOINT>,
"auth": {
"type": "basic",
"username": <TARGET_CLUSTER_USERNAME>,
"passwordFromSecretArn": <TARGET_CLUSTER_PASSWORD_SECRET>
}
},
"captureProxyServiceEnabled": true,
"captureProxyExtraArgs": "",
"trafficReplayerServiceEnabled": true,
"trafficReplayerExtraArgs": "",
"artifactBucketRemovalPolicy": "DESTROY"
}
}
```

Performing a live capture migration requires that a Capture Proxy be configured to capture incoming traffic and send it to the target cluster via the Traffic Replayer service. For arguments available in `captureProxyExtraArgs`, refer to the `@Parameter` fields [here](https://github.com/opensearch-project/opensearch-migrations/blob/main/TrafficCapture/trafficCaptureProxyServer/src/main/java/org/opensearch/migrations/trafficcapture/proxyserver/CaptureProxy.java). For `trafficReplayerExtraArgs`, refer to the `@Parameter` fields [here](https://github.com/opensearch-project/opensearch-migrations/blob/main/TrafficCapture/trafficReplayer/src/main/java/org/opensearch/migrations/replay/TrafficReplayer.java). At a minimum, no extra arguments may be needed.

Check warning on line 140 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L140

[OpenSearch.LatinismsSubstitution] Use 'using, through, by accessing, or by choosing' instead of 'via'.
Raw output
{"message": "[OpenSearch.LatinismsSubstitution] Use 'using, through, by accessing, or by choosing' instead of 'via'.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 140, "column": 143}}}, "severity": "WARNING"}

Check failure on line 140 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L140

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 140, "column": 159}}}, "severity": "ERROR"}

<details>
<summary><b>Capture and Replay specific configuration options table</b>
</summary>

| Name | Example | Description |
|--------------------------------|----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `captureProxyServiceEnabled` | `true` | Enables the Capture Proxy service deployment via a new CloudFormation stack. |

Check warning on line 148 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L148

[OpenSearch.LatinismsSubstitution] Use 'using, through, by accessing, or by choosing' instead of 'via'.
Raw output
{"message": "[OpenSearch.LatinismsSubstitution] Use 'using, through, by accessing, or by choosing' instead of 'via'.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 148, "column": 171}}}, "severity": "WARNING"}
| `captureProxyExtraArgs` | `"--suppressCaptureForHeaderMatch user-agent .*elastic-java/7.17.0.*"` | Extra arguments for the Capture Proxy command, including options specified by the [Capture Proxy](https://github.com/opensearch-project/opensearch-migrations/blob/main/TrafficCapture/trafficCaptureProxyServer/src/main/java/org/opensearch/migrations/trafficcapture/proxyserver/CaptureProxy.java). |
| `trafficReplayerServiceEnabled` | `true` | Enables the Traffic Replayer service deployment via a new CloudFormation stack. |

Check failure on line 150 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L150

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 150, "column": 146}}}, "severity": "ERROR"}

Check warning on line 150 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L150

[OpenSearch.LatinismsSubstitution] Use 'using, through, by accessing, or by choosing' instead of 'via'.
Raw output
{"message": "[OpenSearch.LatinismsSubstitution] Use 'using, through, by accessing, or by choosing' instead of 'via'.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 150, "column": 174}}}, "severity": "WARNING"}
| `trafficReplayerExtraArgs` | `"--sigv4-auth-header-service-region es,us-east-1 --speedup-factor 5"` | Extra arguments for the Traffic Replayer command, including options for auth headers and other parameters specified by the [Traffic Replayer](https://github.com/opensearch-project/opensearch-migrations/blob/main/TrafficCapture/trafficReplayer/src/main/java/org/opensearch/migrations/replay/TrafficReplayer.java). |

Check failure on line 151 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L151

[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: Replayer. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 151, "column": 158}}}, "severity": "ERROR"}

</details>

## Cluster Authentication Options

Check failure on line 155 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L155

[OpenSearch.HeadingCapitalization] 'Cluster Authentication Options' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Cluster Authentication Options' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 155, "column": 4}}}, "severity": "ERROR"}

Both the source and target cluster can use no authentication (e.g. limited to the VPC), basic authentication with a username and password, or SigV4 scoped to a user or role.

Check warning on line 157 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L157

[OpenSearch.SignatureV4] 'Signature Version 4': Use 'AWS Signature Version 4' instead of 'SigV4' on first appearance. Then, Signature Version 4 may be used. Only use SigV4 when space is limited.
Raw output
{"message": "[OpenSearch.SignatureV4] 'Signature Version 4': Use 'AWS Signature Version 4' instead of 'SigV4' on first appearance. Then, Signature Version 4 may be used. Only use SigV4 when space is limited.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 157, "column": 143}}}, "severity": "WARNING"}

Examples of each of these are below.

Check warning on line 159 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L159

[OpenSearch.DirectionAboveBelow] Use 'following or later' instead of 'below' for versions or orientation within a document. Use 'above' and 'below' only for physical space or screen descriptions.
Raw output
{"message": "[OpenSearch.DirectionAboveBelow] Use 'following or later' instead of 'below' for versions or orientation within a document. Use 'above' and 'below' only for physical space or screen descriptions.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 159, "column": 31}}}, "severity": "WARNING"}

No auth:
```
"sourceCluster": {
"endpoint": <SOURCE_CLUSTER_ENDPOINT>,
"version": "ES 7.10",
"auth": {"type": "none"}
}
```

Basic auth:
```
"sourceCluster": {
"endpoint": <SOURCE_CLUSTER_ENDPOINT>,
"version": "ES 7.10",
"auth": {
"type": "basic",
"username": <TARGET_CLUSTER_USERNAME>,
"passwordFromSecretArn": <TARGET_CLUSTER_PASSWORD_SECRET>
}
}
```

SigV4 auth:

Check warning on line 183 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L183

[OpenSearch.SignatureV4] 'Signature Version 4': Use 'AWS Signature Version 4' instead of 'SigV4' on first appearance. Then, Signature Version 4 may be used. Only use SigV4 when space is limited.
Raw output
{"message": "[OpenSearch.SignatureV4] 'Signature Version 4': Use 'AWS Signature Version 4' instead of 'SigV4' on first appearance. Then, Signature Version 4 may be used. Only use SigV4 when space is limited.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 183, "column": 1}}}, "severity": "WARNING"}
```
"sourceCluster": {
"endpoint": <SOURCE_CLUSTER_ENDPOINT>,
"version": "ES 7.10",
"auth": {
"type": "sigv4",
"region": "us-east-1",
"serviceSigningName": "es"
}
}
```

The `serviceSigningName` can be `es` for an Elasticsearch or OpenSearch domain, or `aoss` for an OpenSearch Serverless collection.

All of these auth mechanisms apply to both source and target clusters.

## Troubleshooting

### Restricted Permissions

Check failure on line 202 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L202

[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.
Raw output
{"message": "[OpenSearch.StackedHeadings] Do not stack headings. Insert an introductory sentence between headings.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 202, "column": 1}}}, "severity": "ERROR"}

Check failure on line 202 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L202

[OpenSearch.HeadingCapitalization] 'Restricted Permissions' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Restricted Permissions' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 202, "column": 5}}}, "severity": "ERROR"}
When deploying if part of an [AWS Organization](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) ↗ some permissions / resources might not be allowed. The full list can be generated from the synthesized cdk output with the awsFeatureUsage script.

Check failure on line 203 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L203

[OpenSearch.SpacingSlash] When using '/' between words, do not insert space on either side of it.
Raw output
{"message": "[OpenSearch.SpacingSlash] When using '/' between words, do not insert space on either side of it.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 203, "column": 139}}}, "severity": "ERROR"}

Check failure on line 203 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L203

[OpenSearch.SpacingPunctuation] There should be no space before and one space after the punctuation mark in 'allowed. The'.
Raw output
{"message": "[OpenSearch.SpacingPunctuation] There should be no space before and one space after the punctuation mark in 'allowed. The'.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 203, "column": 176}}}, "severity": "ERROR"}

Check failure on line 203 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L203

[OpenSearch.Spelling] Error: cdk. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.
Raw output
{"message": "[OpenSearch.Spelling] Error: cdk. If you are referencing a setting, variable, format, function, or repository, surround it with tic marks.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 203, "column": 238}}}, "severity": "ERROR"}

```
/opensearch-migrations/deployment/cdk/opensearch-service-migration/awsFeatureUsage.sh [contextId]
```

<details>
<summary><b>Capture and Replay specific configuration options table</b>
</summary>

```shell
$ /opensearch-migrations/deployment/cdk/opensearch-service-migration/awsFeatureUsage.sh default
Synthesizing all stacks...
Synthesizing stack: networkStack-default
Synthesizing stack: migrationInfraStack
Synthesizing stack: reindexFromSnapshotStack
Synthesizing stack: migration-console
Finding resource usage from synthesized stacks...
-----------------------------------
IAM Policy Actions:
cloudwatch:GetMetricData
...
-----------------------------------
Resources Types:
AWS::CDK::Metadata
...
```
</details>


### Network Configuration

Check failure on line 233 in _migrations/deploying-migration-assistant/configuration-options.md

View workflow job for this annotation

GitHub Actions / vale

[vale] _migrations/deploying-migration-assistant/configuration-options.md#L233

[OpenSearch.HeadingCapitalization] 'Network Configuration' is a heading and should be in sentence case.
Raw output
{"message": "[OpenSearch.HeadingCapitalization] 'Network Configuration' is a heading and should be in sentence case.", "location": {"path": "_migrations/deploying-migration-assistant/configuration-options.md", "range": {"start": {"line": 233, "column": 5}}}, "severity": "ERROR"}
The migration tooling expects the source cluster, target cluster, and migration resources to exist in the same VPC. If this is not the case, manual networking setup outside of this documentation is likely required.
Loading
Loading