

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ルーティングコントロールコンポーネントの設定
<a name="getting-started-cli-routing-config"></a>

最初のステップでは、クラスターを作成します。ARC クラスターは 5 つのエンドポイントのセットで、5 つの異なる AWS リージョンのそれぞれに 1 つずつあります。ARC のインフラストラクチャは、これらのエンドポイントが連携して機能することをサポートし、フェイルオーバーオペレーションの高い可用性と逐次一貫性を保証します。

## 1. クラスターを作成する
<a name="getting-started-cli-routing.cluster"></a>

1a. クラスターを作成する。`network-type` はオプションで、`IPV4` または `DUALSTACK` のいずれかになります。デフォルトは `IPV4` です。

```
aws route53-recovery-control-config create-cluster --cluster-name test --network-type DUALSTACK
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "PENDING",
    "Owner": "123456789123",
    "NetworkType": "DUALSTACK"
}
```

ARC リソースを初めて作成すると、クラスターの作成中はステータスが `PENDING` になります。その進行状況は、`describe-cluster` を呼び出して確認できます。

1b. クラスターを記述します。

```
aws route53-recovery-control-config --region us-west-2 \
				describe-cluster --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "DEPLOYED",
    "Owner": "123456789123",
    "NetworkType": "DUALSTACK"
}
```

ステータスが DEPLOYED の場合、ユーザーが操作できるエンドポイントのセットを含むクラスターを、ARC が正常に作成したことを意味します。`list-clusters` を呼び出すと、すべてのクラスターを一覧表示できます。

1c. クラスターを一覧表示します。

```
aws route53-recovery-control-config --region us-west-2 list-clusters
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "DEPLOYED",
    "Owner": "123456789123",
    "NetworkType": "DUALSTACK"
}
```

1d. クラスターのネットワークタイプを更新します。オプションは `IPV4` または `DUALSTACK` です。

```
aws route53-recovery-control-config update-cluster \
--cluster-arn arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234 \
--network-type DUALSTACK
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "PENDING",
    "Owner": "123456789123",
   "NetworkType": "DUALSTACK"
}
```

## 2. コントロールパネルを作成する
<a name="getting-started-cli-routing.panel"></a>

コントロールパネルは、ARC のルーティングコントロールを整理のために論理的にまとめたものです。クラスターを作成すると、ARC は `DefaultControlPanel` という名前のコントロールパネルを自動的に提供します。このコントロールパネルはすぐに使用できます。

コントロールパネルは 1 つのクラスターにのみ存在できます。コントロールパネルを別のクラスターに移動する場合は、そのコントロールパネルを削除して 2 つ目のクラスターで作成する必要があります。アカウントのすべてのコントロールパネルは、`list-control-panels` を呼び出すことで確認できます。特定のクラスター内のコントロールパネルだけを表示するには、`--cluster-arn` フィールドを追加します。

2a. コントロールパネルを一覧表示します。

```
aws route53-recovery-control-config --region us-west-2 \
				list-control-panels --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/eba23304-1a51-4674-ae32-b4cf06070bdd
```

```
{
    "ControlPanels": [
        {
            "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/1234567dddddd1234567dddddd1234567",
            "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh",
            "DefaultControlPanel": true,
            "Name": "DefaultControlPanel",
            "RoutingControlCount": 0,
            "Status": "DEPLOYED"
        }
    ]
}
```

オプションで、`create-control-panel` を呼び出して独自のコントロールパネルを作成できます。

2b. コントロールパネルを作成します。

```
aws route53-recovery-control-config --region us-west-2 create-control-panel \
        --control-panel-name NewControlPanel2 \
        --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
{
    "ControlPanel": {
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh",
        "DefaultControlPanel": false,
        "Name": "NewControlPanel2",
        "RoutingControlCount": 0,
        "Status": "PENDING"
    }
}
```

ARC リソースを初めて作成すると、作成中はステータスが `PENDING` になります。`describe-control-panel` を呼び出して、進行状況を確認できます。

2c. コントロールパネルを記述します。

```
aws route53-recovery-control-config --region us-west-2 describe-control-panel \
				--control-panel-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456
```

```
{
    "ControlPanel": {
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh",
        "DefaultControlPanel": true,
        "Name": "DefaultControlPanel",
        "RoutingControlCount": 0,
        "Status": "DEPLOYED"
    }
}
```

## 3. ルーティングコントロールを作成する
<a name="getting-started-cli-routing.control"></a>

これでクラスターをセットアップし、コントロールパネルを確認したので、ルーティングコントロールの作成を開始できます。ルーティングコントロールを作成するときには、少なくとも、ルーティングコントロールを組み込むクラスターの Amazon リソースネーム (ARN) を指定する必要があります。ルーティングコントロールのコントロールパネルの ARN を指定することもできます。また、コントロールパネルが配置されているクラスターも指定する必要があります。

コントロールパネルを指定しない場合、ルーティングコントロールは自動的に作成されたコントロールパネル (`DefaultControlPanel`) に追加されます。

`create-routing-control` を呼び出して、ルーティングコントロールを作成できます。

3a. ルーティングコントロールを作成します。

```
aws route53-recovery-control-config --region us-west-2 create-routing-control \
				--routing-control-name NewRc1 \
				--cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
{
    "RoutingControl": {
        "ControlPanelArn": " arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "Name": "NewRc1",
        "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "Status": "PENDING"
    }
}
```

ルーティングコントロールは他の ARC リソースと同じ作成パターンに従うため、describe オペレーションを呼び出すことによって進行状況を追跡できます。

3b. ルーティングコントロールを記述します。

```
aws route53-recovery-control-config --region us-west-2 describe-routing-control \
			    --routing-control-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
```

```
{
    "RoutingControl": {
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "Name": "NewRc1",
        "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "Status": "DEPLOYED"
    }
}
```

`list-routing-controls` を呼び出すと、コントロールパネルにルーティングコントロールを一覧表示できます。コントロールパネルの ARN は必須です。

3c. ルーティングコントロールを一覧表示します。

```
aws route53-recovery-control-config --region us-west-2 list-routing-controls \
        --control-panel-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456
```

```
{
    "RoutingControls": [
        {
            "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
            "Name": "Rc1",
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
            "Status": "DEPLOYED"
        },
        {
            "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
            "Name": "Rc2",
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/hijklmnop987654321",
            "Status": "DEPLOYED"
        }
    ]
}
```

ルーティングコントロールの状態を扱う次の例では、このセクションにリストされている 2 つのルーティングコントロール (Rc1 と Rc2) があることを前提としています。この例では、各ルーティングコントロールは、アプリケーションがデプロイされているアベイラビリティーゾーンを表します。

## 4. 安全ルールを作成する
<a name="getting-started-cli-routing.safety"></a>

複数のルーティングコントロールを同時に使用する場合、両方のルーティングコントロールがオフになりすべてのトラフィックフローが停止するといった意図しない結果を避けるために、有効または無効にする際の安全対策を講じたいと思うかもしれません。これらの安全対策を作成するには、ルーティングコントロールの安全ルールを作成します。

安全ルールには、アサーションルールとゲートルールという 2 つのタイプがあります。安全ルールの詳細については、「[ルーティングコントロールの安全ルールを作成する](routing-control.safety-rules.md)」を参照してください。

次の呼び出しは、2 つのルーティングコントロールのうち少なくとも 1 つが常に `On` に設定されているようにするアサーションルールの作成例です。ルールを作成するには、`assertion-rule` パラメータで `create-safety-rule` を実行します。

アサーションルール API オペレーションの詳細は、「Amazon Application Recovery Controller ルーティングコントロール API リファレンスガイド」の「[AssertionRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-assertionrule)」を参照してください。

4a. アサーションルールを作成します。

```
aws route53-recovery-control-config --region us-west-2 create-safety-rule \
        --assertion-rule '{"Name": "TestAssertionRule", 
        "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", 
        "WaitPeriodMs": 5000, 
        "AssertedControls":
        ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" 
        "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi"], 
        "RuleConfig": {"Threshold": 1, "Type": "ATLEAST", "Inverted": false}}'
```

```
{
    "Rule": {
        "ASSERTION": {
            "Arn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/safetyrule/333333444444",
            "AssertedControls": [
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" 
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi"],
            "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx",
            "Name": "TestAssertionRule",
            "RuleConfig": {
                "Inverted": false,
                "Threshold": 1,
                "Type": "ATLEAST"
            },
            "Status": "PENDING",
            "WaitPeriodMs": 5000
        }
    }
}
```

次の呼び出しは、コントロールパネルにある一連のターゲットのルーティングコントロールに対する全体的なスイッチの「オン/オフ」または「ゲート」を提供するゲートルールの作成例です。これにより、例えば自動化による未承認の更新がされないように、ターゲットのルーティングコントロールの更新を禁止できます。この例では、ゲートスイッチは `GatingControls` パラメータで指定されるルーティングコントロールであり、制御または「ゲート」される 2 つのルーティングコントロールは `TargetControls` パラメータで指定されます。

**注記**  
ゲートルールを作成する前に、DNS フェイルオーバーレコードを含まないゲートルーティングコントロールと、DNS フェイルオーバーレコードで構成するターゲットルーティングコントロールを作成する必要があります。

ルールを作成するには、`gating-rule` パラメータで `create-safety-rule` を実行します。

アサーションルール API オペレーションの詳細は、「Amazon Application Recovery Controller ルーティングコントロール API リファレンスガイド」の「[GatingRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-gatingrule)」を参照してください。

4b. ゲートルールを作成します。

```
aws route53-recovery-control-config --region us-west-2 create-safety-rule \
        --gating-rule '{"Name": "TestGatingRule", 
        "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", 
        "WaitPeriodMs": 5000, 
        "GatingControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def"] 
        "TargetControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi", 
        "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/lmn789lmn789lmn"], 
        "RuleConfig": {"Threshold": 0, "Type": "OR", "Inverted": false}}'
```

```
{
    "Rule": {
        "GATING": {
            "Arn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/safetyrule/444444444444",
            "GatingControls": [
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def"
            ],
            "TargetControls": [
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi" 
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/lmn789lmn789lmn"
            ],
            "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx",
            "Name": "TestGatingRule",
            "RuleConfig": {
                "Inverted": false,
                "Threshold": 0,
                "Type": "OR"
            },
            "Status": "PENDING",
            "WaitPeriodMs": 5000
        }
    }
}
```

他のルーティングコントロールのリソースと同様に、安全ルールはデータプレーンに伝播した後で記述、一覧表示、削除できます。

1 つ以上の安全ルールを設定した後は、引き続きクラスターを操作したり、ルーティングコントロールの状態を設定または取得したりできます。`set-routing-control-state` オペレーションによって作成したルールが破られると、次のような例外が発生します。

`Cannot modify control state for [0123456bbbbbbb0123456bbbbbb01234560123 abcdefg1234567] due to failed rule evaluation 0123456bbbbbbb0123456bbbbbb0123456333333444444`

最初の識別子は、ルーティングコントロールの ARN と連結されたコントロールパネルの ARN です。2 番目の識別子は、安全ルールの ARN と連結されたコントロールパネルの ARN です。

## 5. ヘルスチェックを作成する
<a name="getting-started-cli-routing.healthcheck"></a>

ルーティングコントロールを使用してトラフィックをフェイルオーバーするには、Amazon Route 53 でヘルスチェックを作成し、そのヘルスチェックを DNS レコードに関連付けます。トラフィックをフェイルオーバーするために、ARC ルーティングコントロールはヘルスチェックをフェイルに設定して、Route 53 がトラフィックを再ルーティングするようにします。(ヘルスチェックはアプリケーションの正常性を無効にします。単にトラフィックを再ルーティングする方法として使用されます)。

例えば、2 つのセル (リージョンまたはアベイラビリティーゾーン) があるとします。1 つはアプリケーションのプライマリセルとして設定し、もう 1 つはセカンダリとしてフェイルオーバーするように設定します。

フェイルオーバー用にヘルスチェックを設定するには、例えば次の操作を行います。

1. ARC CLI を使用して、各セルのルーティングコントロールを作成します。

1. Route 53 CLI を使用して、ルーティングコントロールごとに Route 53 で ARC ヘルスチェックを作成します。

1. Route 53 CLI を使用して、Route 53 に 2 つのフェイルオーバー DNS レコードを作成し、それぞれにヘルスチェックを関連付けます。

5a. 各セルにルーティングコントロールを作成します。

```
aws route53-recovery-control-config --region us-west-2 create-routing-control \
        --routing-control-name RoutingControlCell1 \
        --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
aws route53-recovery-control-config --region us-west-2 create-routing-control \
        --routing-control-name RoutingControlCell2 \
        --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

5b. 各ルーティングコントロールにヘルスチェックを作成します。

**注記**  
Amazon Route 53 CLI を使用して ARC ヘルスチェックを作成します。

```
aws route53 create-health-check --caller-reference RoutingControlCell1 \
        --health-check-config \
        Type=RECOVERY_CONTROL,RoutingControlArn=arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
```

```
{
    "Location": "https://route53.amazonaws.com/2015-01-01/healthcheck/11111aaaa-bbbb-cccc-dddd-ffffff22222",
    "HealthCheck": {
        "Id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "CallerReference": "RoutingControlCell1",
        "HealthCheckConfig": {
            "Type": "RECOVERY_CONTROL",
            "Inverted": false,
            "Disabled": false,
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567"
        },
        "HealthCheckVersion": 1
    }
}
```

```
aws route53 create-health-check --caller-reference RoutingControlCell2 \
				--health-check-config \
				Type=RECOVERY_CONTROL,RoutingControlArn=arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
```

```
{
    "Location": "https://route53.amazonaws.com/2015-01-01/healthcheck/11111aaaa-bbbb-cccc-dddd-ffffff22222",
    "HealthCheck": {
        "Id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "CallerReference": "RoutingControlCell2",
        "HealthCheckConfig": {
            "Type": "RECOVERY_CONTROL",
            "Inverted": false,
            "Disabled": false,
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567"
        },
        "HealthCheckVersion": 1
    }
}
```

5c. 2 つのフェイルオーバー DNS レコードを作成し、それぞれにヘルスチェックを関連付けます。

Route 53 CLI を使用して、Route 53 でフェイルオーバー DNS レコードを作成します。レコードを作成するには、[change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html) コマンドの Amazon Route 53 AWS CLI Command Reference の指示に従います。レコードには、各セルの DNS 値と、Route 53 がヘルスチェックに作成した対応する `HealthCheckID` 値を指定します (6b を参照)。

プライマリセルの場合:

```
{
    "Name": "myapp.yourdomain.com",
    "Type": "CNAME",
    "SetIdentifier": "primary",
    "Failover": "PRIMARY",
    "TTL": 0,
    "ResourceRecords": [
        {
            "Value": "cell1.yourdomain.com"
        }
    ],
    "HealthCheckId": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

セカンダリセルの場合:

```
{
    "Name": "myapp.yourdomain.com",
    "Type": "CNAME",
    "SetIdentifier": "secondary",
    "Failover": "SECONDARY",
    "TTL": 0,
    "ResourceRecords": [
        {
            "Value": "cell2.yourdomain.com"
        }
    ],
    "HealthCheckId": "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
}
```

ここで、プライマリセルからセカンダリセルにフェイルオーバーするには、ステップ 4b の CLI の例に従って、`RoutingControlCell1` を `OFF` に、`RoutingControlCell2` を `ON` にします。