

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

# ARC のゾーンシフト
<a name="arc-zonal-shift"></a>

Amazon Application Recovery Controller (ARC) *ゾーンシフト*を使用すると、サポートされているリソースのトラフィックを の障害のあるアベイラビリティーゾーン (AZ) から同じリージョンの正常な AZs AWS リージョン にシフトできます。障害が発生している AZ からリソースのトラフィックを切り替えることにより、停電や AZ 内のハードウェア/ソフトウェアの問題によって生じる影響の期間や深刻度を低減し、問題の緩和やアプリケーションの迅速な復旧に役立ちます。例えば、不適切なデプロイが原因でレイテンシーの問題が発生していたり、アベイラビリティーゾーンで障害が発生していたりする場合、トラフィックをシフトすることを選択できます。

ゾーンシフトを使用するには、リソースをオプトインする必要があります。詳細については、[サポートされているリソース](arc-zonal-shift.resource-types.md) を参照してください。

ゾーンシフトを開始する前に、アプリケーションをプリスケールし、トラフィックをアベイラビリティーゾーンからシフトするのに十分な容量があることを確認する必要があります。プレスケーリング後、移行元のアベイラビリティーゾーンとトラフィックを移行するリソースを選択し、ゾーンシフトを開始できます。シフトはいつでもキャンセルでき、トラフィックを元のアベイラビリティーゾーンに戻すことができます。詳細については、[ARC のゾーンシフトのベストプラクティス](route53-arc-best-practices.zonal-shifts.md)を参照してください。

すべてのゾーンシフトは一時的な緩和策です。ゾーンシフトを開始するときに、最初の有効期限を 1 分から 3 日 (72 時間) に設定します。トラフィックシフトを継続する必要がある場合は延長できます。

特定の状況では、ゾーンシフトによって AZ からトラフィックが切り替えられない場合があります。詳細については、「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。

# ゾーンシフトの仕組み
<a name="arc-zonal-shift.how-it-works"></a>

サポートされているリソースに対してゾーンシフトを開始すると、そのリソースのトラフィックは、指定したアベイラビリティーゾーン (AZ) から切り替えられます。ARC がサポートするリソースは、指定した AZ を異常としてマークするための連携機能を備えており、その結果として、障害のある AZ からトラフィックが切り替えられます。

**トラフィックの切り替え開始** - ARC でゾーンシフトを開始しても、アベイラビリティーゾーンからすぐにトラフィックが移動しない場合があります。クライアントの挙動または接続の再利用によっては、アベイラビリティーゾーンで進行中の既存の接続が完了するまでに、若干時間がかかる場合もあります。DNS 設定や既存の接続を含むその他の要因は数分で完了しますが、時間がかかる場合があります。詳細については、「[トラフィックのシフトを迅速に完了させる](route53-arc-best-practices.zonal-shifts.md#arc-zonal-shift.existing-connections)」を参照してください。

**トラフィックシフトの終了** - ゾーンシフトの有効期限が切れるか、取り消した場合、ARC はトラフィックの切り替えを停止するための処理を行い、トラフィック切り替えを開始したときの手順を逆に実行します。これで、復旧した AZ がリソースで使用可能として認識され、AZ へのトラフィックが再開されます。

ゾーンシフトを開始するときは、すべてのゾーンシフトに有効期限を設定する必要があります。ゾーンシフトの有効期限は、初回は最大で 3 日 (72 時間) 後に設定できます。ただし、ゾーンシフトはいつでも新しい有効期限に更新できます。アベイラビリティーゾーンへのトラフィックを復旧する準備ができていたら、有効期限が切れる前にゾーンシフトをキャンセルすることも可能です。

**トラフィックが切り替わらない場合** - 特定の状況では、ゾーンシフトを行ってもアベイラビリティーゾーンからトラフィックが切り替えられないことがあります。例えば、ロードバランサーのゾーンシフトを開始した時点で、対象の AZ にあるロードバランサーのターゲットグループにインスタンスが存在しない場合や、すべてのインスタンスが異常である場合などが該当します。この場合、ロードバランサーはフェイルオープン状態となり、ゾーンシフトを開始してもトラフィックは移動しません。

リソースのゾーンシフトを開始する前に、成功したゾーンシフトのすべての条件が満たされていることを確認してください。 AWS リソースは、ゾーンシフトを異なる方法で処理します。ゾーンシフトのサポートに関する詳細は、「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。

# AWS リージョン ゾーンシフトの可用性
<a name="introduction-regions-zonal"></a>

Amazon Application Recovery Controller (ARC) のリージョンサポートとサービスエンドポイントに関する詳細は、「*Amazon Web Services 全般のリファレンス*」にある「[Amazon Application Recovery Controller (ARC) エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/r53arc.html)」を参照してください。

ゾーンシフトとゾーンオートシフトは現在、ここ AWS リージョン に記載されている で利用できます。ゾーンシフトおよびゾーンオートシフトは、中国 (北京) リージョンおよび中国 (寧夏) リージョンでも利用できます。Amazon Application Recovery Controller (ARC) を使用するリソースには、追加で考慮すべき点がある場合があります。詳細については、[サポートされているリソース](arc-zonal-shift.resource-types.md) を参照してください。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/r53recovery/latest/dg/introduction-regions-zonal.html)

# ゾーンシフトのコンポーネント
<a name="introduction-components-zonal"></a>

次の図は、トラフィックを AWS リージョンのアベイラビリティーゾーンから遠ざけるゾーンシフトの例を示しています。ゾーンシフトに組み込まれているチェック機能により、リソースに既にアクティブなゾーンシフトがある場合は、別のゾーンシフトを開始できないようになっています。

![\[3 つのアベイラビリティーゾーンを持つゾーンシフトの図\]](http://docs.aws.amazon.com/ja_jp/r53recovery/latest/dg/images/ZonalShiftDiagramRev2023.png)


以下は、ARC におけるゾーンシフト機能のコンポーネントです。

**ゾーンシフト**  
 AWS アカウントのマネージドリソースのゾーンシフトを開始して AWS リージョン、トラフィックを のアベイラビリティーゾーンからリージョン内の正常な AZs に一時的に移動し、1 つの AZ の問題から迅速に復旧します。ゾーンシフトでサポートされているリソースの詳細については、「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。

**組み込みの安全チェック**  
ARC に組み込まれているチェックにより、1 つのリソースについて一度に複数のトラフィックシフトが行われることはありません。つまり、アベイラビリティーゾーンからトラフィックをアクティブにシフトできるのは、1 件のユーザー起動のゾーンシフト、練習用実行、またはオートシフトのいずれか 1 つだけです。例えば、あるリソースがオートシフトで遠ざけられているときにゾーンシフトを開始した場合は、ゾーンシフトが優先されます。詳細については、「[ARC のゾーンオートシフト](arc-zonal-autoshift.md)」と「[練習実行の結果](arc-zonal-autoshift.how-it-works.precedence.md#ZAShiftPrecedence)」を参照してください。

**リソース識別子**  
ゾーンシフトに含めるリソースの識別子です。識別子は、リソースの Amazon リソースネーム (ARN) です。  
ゾーンシフトでは、ARC でサポートされている AWS サービスのアカウント内のリソースのみを選択できます。ゾーンシフトでサポートされているリソースの詳細については、「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。

**マネージドリソース**  
一部の AWS リソースはゾーンシフトに手動でオプトインする必要があり、他のリソースは自動的に有効になります。ゾーンシフトでサポートされているリソースの詳細については、「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。

**リソース名**  
ゾーンシフトに指定できる ARC のリソースの名前。

**ステータス (ゾーンシフトステータス)**  
ゾーンシフトのステータスです。ゾーンシフトの `Status` には、次のいずれかの値が設定されます。  
+ **ACTIVE (アクティブ)**: ゾーンシフトが開始され、アクティブの状態です。
+ **EXPIRED (期限切れ)**: ゾーンシフトが期限切れの状態です (有効期限を超過)。
+ **CANCELED (キャンセル)**: ゾーンシフトがキャンセルされた状態です。

**適用ステータス**  
適用ステータスは、リソースに対してシフトが適用されているかどうかを示します。ステータスが `APPLIED` のシフトによって、リソースについてアプリケーショントラフィックが遠ざけられたアベイラビリティーゾーンと、そのトラフィックシフトが終了するタイミングが決まります。

**シフトタイプ**  
ゾーンシフトタイプを定義します。`shiftType` は以下のイベント値を持ちます。  
+ **ZONAL\$1SHIFT**
+ **ZONAL\$1AUTOSHIFT**
+ **PRACTICE\$1RUN**
+ **FIS\$1EXPERIMENT**

**有効期限 (満了期限)**  
ゾーンシフトの有効期限 (満了期限) です。ゾーンシフトは一時的なものです。ゾーンシフトは、最初は 3 日間 (72 時間) 有効になるように設定できます。  
ゾーンシフトを開始するときに、ゾーンシフトをアクティブにする時間を指定します。ARC によってそれが有効期限 (満了期限) に変換されます。例えば、アベイラビリティーゾーンへのトラフィックをリカバリする準備ができている場合は、ゾーンシフトをキャンセルできます。または、顧客が開始したゾーンシフトを更新して別の有効期限を指定することによって、ゾーンシフトを延長することもできます。  
ゾーンオートシフトの一部であるゾーンシフトの練習実行をキャンセルできます。

# ゾーンシフトのデータプレーンとコントロールプレーン
<a name="data-and-control-planes-zonal-shift"></a>

フェイルオーバーとディザスタリカバリを計画する際は、フェイルオーバーメカニズムの耐障害性を考慮してください。フェイルオーバー中に依存するメカニズムは、可用性が高く、災害シナリオで必要なときに使用できるようにすることをお勧めします。信頼性と耐障害性を最大限に高めるため、可能であれば通常、データプレーン機能をメカニズムに使用する必要があります。そのことを念頭に置いて、サービス機能がコントロールプレーンとデータプレーンにどのように分けられているのか、また、サービスのデータプレーンで非常に高い信頼性が期待できるのはどのような場合なのかを理解することが重要です。

ほとんどの AWS サービスと同様に、ゾーンシフト機能の機能はコントロールプレーンとデータプレーンでサポートされています。どちらのタイプも信頼できるように構築されていますが、コントロールプレーンはデータ整合性のために最適化され、データプレーンは可用性のために最適化されています。データプレーンは、コントロールプレーンが使用できなくなるような破壊的なイベントでも、可用性を維持できるように設計されています。

一般に、コントロールプレーンを使用すると、サービス内のリソースの作成、更新、削除などの基本的な管理機能を実行できます。**データプレーンはサービスのコア機能を提供します。**

データプレーン、コントロールプレーン、および が高可用性目標を達成するためのサービス AWS を構築する方法の詳細については、Amazon Builders' Library の「ア[ベイラビリティーゾーンを使用した静的安定性」を参照してください](https://aws.amazon.com/builders-library/static-stability-using-availability-zones/)。

# ARC のゾーンシフトの料金
<a name="introduction-pricing-zonal-shift"></a>

ゾーンシフトでは、サポートされているリソースに対してゾーンシフトを開始し、アベイラビリティーゾーンで発生した問題からアプリケーションを復旧させることができます。ゾーンシフトは追加料金なしで使用できます。

ARC の料金および料金例の詳細については、「[ARC の料金](https://aws.amazon.com/application-recovery-controller/pricing/)」を参照してください。

# ARC のゾーンシフトのベストプラクティス
<a name="route53-arc-best-practices.zonal-shifts"></a>

ARC で、マルチ AZ リカバリにゾーンシフトを使用する場合は、次のベストプラクティスに従うことが推奨されます。

**トピック**
+ [キャパシティプランニングと事前スケーリング](#ZSBestPracticeCapacityPrescaling)
+ [クライアントがエンドポイントに接続したままになる時間を制限する](#arc-zonal-shift.existing-connections)
+ [ゾーンシフトの開始を事前にテストする](#ZSBestPracticeTestShifting)
+ [すべてのアベイラビリティーゾーンが正常で、トラフィックを取るようにする](#ZSBestPracticeEnsureHealthyAZs)
+ [ディザスタリカバリにデータプレーン API オペレーションを使用する](#ZSBestPracticeUseDataPlane)
+ [ゾーンシフトでトラフィックを一時的にのみ移動する](#ZSBestPracticeMoveTrafficTemp)

**キャパシティプランニングと事前スケーリング**  
ゾーンシフトを開始するときは、事前にスケーリングするか、自動スケーリングができるようにキャパシティを計画することで、アベイラビリティーゾーンにかかる通常よりも大きな負荷に対応できるようにしておきます。リカバリに重点が置かれたアーキテクチャでは一般的に、(通常) 3 つのレプリカのうちいずれかがオフラインになったとき、ピーク時のトラフィックに対応できるだけの十分なヘッドルームを確保するように、コンピューティングキャパシティを事前にスケールすることが推奨されています。  
サポートされているリソースに対してゾーンシフトを開始し、トラフィックが AZ から切り替えられると、アプリケーションがリクエストの処理に使用していたキャパシティは削除されます。AZ からのトラフィック切り替えを事前に計画し、残りの AZ でもリクエストの処理を継続できることを確認する必要があります。

**クライアントがエンドポイントに接続したままになる時間を制限する**  
Amazon Application Recovery Controller (ARC) がゾーンシフトやゾーンオートシフトなどを使用してトラフィックを障害から遠ざける場合、ARC がアプリケーショントラフィックを移動するために使用するメカニズムは DNS 更新です。DNS 更新により、すべての新しい接続が障害のある場所から遠ざけられます。  
ただし、既存のオープン接続を持つクライアントは、クライアントが再接続するまで、障害が発生したロケーションに対してリクエストを引き続き行う場合があります。迅速な復旧を確保するために、クライアントがエンドポイントに接続し続ける時間を制限することをお勧めします。

**ゾーンシフトの開始を事前にテストする**  
ゾーンシフトを開始してトラフィックをアプリケーションのアベイラビリティーゾーンから移動するテストを、定期的に行います。ゾーンシフトを計画して、障害の発生時にアプリケーションをリカバリするフェイルオーバーの定期テストの一環として、できればテストと本番の両方の環境でその開始を実行します。定期テストは、運用上のイベントに備え、イベントの発生時には自信を持って緩和できるようにするために不可欠なものです。

**すべてのアベイラビリティーゾーンが正常で、トラフィックを取るようにする**  
ゾーンシフトは、アベイラビリティーゾーン内でリソース、つまりアプリケーションレプリカを異常とマークすることにより機能します。つまり、アプリケーション内のリソースが概ね正常であり、リージョンの各アベイラビリティーゾーンでトラフィックを確実に処理していることを確認することが非常に重要です。それを追跡するには、ダッシュボードを使うのがお勧めです。ダッシュボードでは、異常のあるターゲットの Elastic Load Balancing メトリクスや、アベイラビリティーゾーン別の bytesProcessed などを確認できます。  
リソースの状態のモニタリングは、2 つ目の隣接するリージョンから行うことを検討します。このアプローチにより、エンドユーザーの体験をより多く反映させることができ、さらに、アプリケーションとモニタリングの両方が同じ災害から同時に影響を受けるリスクを下げることができます。

**ディザスタリカバリにデータプレーン API オペレーションを使用する**  
アプリケーションをほとんど依存関係なく迅速に復旧する必要がある場合にゾーンシフトを開始するには、可能であれば、 AWS Command Line Interface または API をゾーンシフトアクションとともに、認証情報を事前に保存しておくことをお勧めします。使いやすさを考慮して AWS マネジメントコンソール、 でゾーンシフトを開始することもできます。ただし、スピーディな、信頼性の高いリカバリがカギとなるケースでは、データプレーンオペレーションの方が適しています。詳細については、「[Zonal Shift API Reference Guide](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)」を参照してください。

**ゾーンシフトでトラフィックを一時的にのみ移動する**  
ゾーンシフトは、障害を緩和するためにトラフィックをアベイラビリティーゾーンから一時的に移動する機能です。問題を解決するためのアクションを実行したら、すぐにアプリケーションのリソースをサービスに戻す必要があります。そうすることで、アプリケーション全体が、完全な冗長性とレジリエンスを備えた元の状態に戻ります。

# ゾーンシフト API オペレーション
<a name="actions.zonalshift"></a>

次の表は、マルチ AZ アプリケーションについてアベイラビリティーゾーンからトラフィックを遠ざけるゾーンシフトで使用できる ARC API オペレーションを一覧にしたものです。この表には、関連ドキュメントへのリンクも含まれています。

 AWS Command Line Interfaceで一般的なゾーンシフト API オペレーションを使用する方法の例については、「[ゾーンシフト AWS CLI で を使用する例](getting-started-cli-zonalshift.md)」を参照してください。


| アクション | ARC コンソールの使用 | ARC API の使用 | 
| --- | --- | --- | 
| ゾーンシフトを開始する | 「[ゾーンシフトの開始](arc-zonal-shift.start-cancel.md#arc-zonal-shift.start)」を参照してください。 | 「[StartZonalShift](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_StartZonalShift.html)」を参照 | 
| ゾーンシフトの更新 | 「[ゾーンシフトの更新またはキャンセル](arc-zonal-shift.start-cancel.md#arc-zonal-shift.update-cancel)」を参照してください。 | 「[UpdateZonalShift](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_UpdateZonalShift.html)」を参照 | 
| ゾーンシフトを一覧表示する | 「[ARC のゾーンシフト](arc-zonal-shift.md)」を参照してください。 | 「[ListZonalShifts](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListZonalShifts.html)」を参照 | 
| マネージドリソースを一覧表示する | 「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。 | 「[ListManagedResources](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListManagedResources.html)」を参照 | 
| マネージドリソースを取得する | 「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。 | 「[GetManagedResource](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_GetManagedResource.html)」を参照 | 
| ゾーンシフトのキャンセル | 「[ゾーンシフトの更新またはキャンセル](arc-zonal-shift.start-cancel.md#arc-zonal-shift.update-cancel)」を参照してください。 | 「[CancelZonalShift](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_CancelZonalShift.html)」を参照 | 

# ゾーンシフト AWS CLI で を使用する例
<a name="getting-started-cli-zonalshift"></a>

このセクションでは、 を使用して、API オペレーションを使用して Amazon Application Recovery Controller (ARC) のゾーンシフト機能 AWS Command Line Interface を操作する、ゾーンシフトを使用するアプリケーションの例を示します。これらの例は、CLI を使用したゾーンシフトの操作方法の基本的な理解を深めることを目的としています。

ARC のゾーンシフトを使用すると、サポートされているリソースのトラフィックを特定のアベイラビリティーゾーンから一時的に切り替え、アプリケーションが AWS リージョンの他のアベイラビリティーゾーンで正常に動作し続けることができます。

すべてのゾーンシフトは一時的なもので、最初は 3 日以内に期限切れになるように設定する必要があります。ただし、後でゾーンシフトを更新して新しい有効期限を設定できます。

の使用の詳細については AWS CLI、[AWS CLI 「 コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/arc-zonal-shift/index.html)」を参照してください。ゾーンシフト API アクションのリストと詳細情報へのリンクについては、「[ゾーンシフト API オペレーション](actions.zonalshift.md)」を参照してください。

## ゾーンシフトを開始する
<a name="getting-started-cli-zonalshift.start-zonal-shift"></a>

CLI で `start-zonal-shift` コマンドを使用して、ゾーンシフトを開始できます。

```
aws arc-zonal-shift start-zonal-shift \
       --resource-identifier arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05 \
       --away-from use1-az1 \
       --expires-in 10m \
       --comment "Shifting traffic away from use1-az1"
```

```
{
    "awayFrom": "use1-az1",
    "comment": "Shifting traffic away from use1-az1",
    "expiryTime": "2024-12-17T21:37:26-08:00",
    "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
    "startTime": "2024-12-17T21:27:26-08:00",
    "status": "ACTIVE",
    "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
}
```

## マネージドリソースを取得する
<a name="getting-started-cli-zonalshift.get-managed-resource"></a>

マネージドリソースに関する情報は、CLI で `get-managed-resource` コマンドを使用して取得できます。

```
aws arc-zonal-shift get-managed-resource \
       --resource-identifier arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05
```

```
{
    "appliedWeights": {
        "use1-az1": 0.0,
        "use1-az2": 1.0,
        "use1-az6": 1.0
    },
    "arn": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
    "autoshifts": [],
    "name": "Testing",
    "zonalAutoshiftStatus": "DISABLED",
    "zonalShifts": [
        {
            "appliedStatus": "APPLIED",
            "awayFrom": "use1-az1",
            "comment": "Shifting traffic away from use1-az1",
            "expiryTime": "2024-12-17T21:37:26-08:00",
            "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
            "startTime": "2024-12-17T21:27:26-08:00",
            "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
            "shiftType": "MANUAL"
        }
    ]
}
```

## マネージドリソースを一覧表示する
<a name="getting-started-cli-zonalshift.list-managed-resource"></a>

CLI で `list-managed-resources` コマンドを使用して、アカウント内のマネージドリソースを一覧表示できます。

```
aws arc-zonal-shift list-managed-resources 
```

```
{
    "items": [
        {
            "appliedWeights": {
                "use1-az1": 0.0,
                "use1-az2": 1.0,
                "use1-az6": 1.0
            },
            "arn": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
            "autoshifts": [],
            "availabilityZones": [
                "use1-az1",
                "use1-az2",
                "use1-az6"
            ],
            "name": "Testing",
            "practiceRunStatus": "DISABLED",
            "zonalAutoshiftStatus": "DISABLED",
            "zonalShifts": [
                {
                    "appliedStatus": "APPLIED",
                    "awayFrom": "use1-az1",
                    "comment": "Shifting traffic away from use1-az1",
                    "expiryTime": "2024-12-17T21:37:26-08:00",
                    "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
                    "startTime": "2024-12-17T21:27:26-08:00",
                    "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
                }
            ]
        }
    ]
}
```

## ゾーンシフトを一覧表示する
<a name="getting-started-cli-zonalshift.list-zonal-shifts"></a>

CLI で `list-zonal-shifts` コマンドを使用して、アカウント内のゾーンシフトを一覧表示できます。

```
aws arc-zonal-shift list-zonal-shifts 
```

```
{
    "items": [
        {
            "awayFrom": "use1-az1",
            "comment": "Shifting traffic away from use1-az1",
            "expiryTime": "2024-12-17T21:37:26-08:00",
            "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
            "startTime": "2024-12-17T21:27:26-08:00",
            "status": "ACTIVE",
            "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
        }
    ]
}
```

## ゾーンシフトを更新する
<a name="getting-started-cli-zonalshift.update-zonal-shift"></a>

CLI で `update-zonal-shift` コマンドを使用して、ゾーンシフトを更新できます。

```
aws arc-zonal-shift update-zonal-shift \  
       --zonal-shift-id 9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38 \
       --expires-in 1h \
       --comment "Still shifting traffic away from use1-az1"
```

```
{
    "awayFrom": "use1-az1",
    "comment": "Still shifting traffic away from use1-az1",
    "expiryTime": "2024-12-17T22:29:38-08:00",
    "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
    "startTime": "2024-12-17T21:27:26-08:00",
    "status": "ACTIVE",
    "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
}
```

## ゾーンシフトをキャンセルする
<a name="getting-started-cli-zonalshift.cancel-zonal-shift"></a>

CLI で `cancel-zonal-shift` コマンドを使用して、ゾーンシフトをキャンセルできます。

```
aws arc-zonal-shift cancel-zonal-shift \
       --zonal-shift-id 9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38
```

```
{
    "awayFrom": "use1-az1",
    "comment": "Still shifting traffic away from use1-az1",
    "expiryTime": "2024-12-17T22:29:38-08:00",
    "resourceIdentifier": "arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/Testing/5a19403ecd42dc05",
    "startTime": "2024-12-17T21:27:26-08:00",
    "status": "CANCELED",
    "zonalShiftId": "9ac9ec1e-1df1-0755-3dc5-8cf573cd9c38"
}
```

# サポートされているリソース
<a name="arc-zonal-shift.resource-types"></a>

Amazon Application Recovery Controller (ARC) は現在、ゾーンシフトとゾーンオートシフトで次のリソースの有効化をサポートしています。
+ [Amazon EC2 Auto Scaling グループ](arc-zonal-shift.resource-types.ec2-auto-scaling-groups.md)
+ [アマゾン エラスティックKubernetesサービス](arc-zonal-shift.resource-types.eks.md)
+ クロスゾーンのロードバランサーの有効/無効を問わない [アプリケーション ロード バランサー](arc-zonal-shift.resource-types.app-load-balancers.md)
+ クロスゾーンのロードバランサーの有効/無効を問わない [Network Load Balancer](arc-zonal-shift.resource-types.network-load-balancers.md)

Network Load Balancer と Application Load Balancer の具体的な要件については、このセクションの追加トピックを参照してください。

ARC でゾーンシフト、ゾーンオートシフト、リソースを使用する場合は、以下の条件を確認してください。
+ トラフィックをそのリソースにシフトするには、リソースがアクティブになっており、正常にプロビジョニングされている必要があります。リソースのゾーンシフトを開始するときは、事前に、そのリソースが ARC のマネージドリソースであることを確認します。たとえば、 でマネージドリソースのリストを表示するか AWS マネジメントコンソール、リソースの識別子を指定して `get-managed-resource`オペレーションを使用します。
+ リソースを使用してゾーンシフトを開始するときは、ゾーンシフトを開始するアベイラビリティーゾーンと AWS リージョン に、リソースをデプロイする必要があります。ゾーンシフトが、シフトの対象となる AZ と同じリージョンで開始すること、および、トラフィックのシフト先となるリソースも、同じ AZ とリージョンにあることを確認します。
+ リソースでゾーンシフトを実行するときは、適切な IAM アクセス許可があることを確認します。詳細については、「[ゾーンシフトの IAM とアクセス許可](security_iam_service-with-iam-zonal-shift.md)」を参照してください。
+ Network Load Balancer または Application Load Balancer がフェイルオープン状態の場合、ゾーンシフトは効果がありません。これは想定された動作です。なぜなら、ロードバランサーがフェイルオープン状態のときに、ゾーンシフトが AZ を強制的に異常状態にして、リージョンの他の AZ にトラフィックを切り替えることはできないためです。詳細については、「*Network Load Balancer ユーザーガイド*」の「[ロードバランサーの Route 53 DNS フェイルオーバーを使用する](https://docs.aws.amazon.com//elasticloadbalancing/latest/network/load-balancer-target-groups.html#r53-dns-failover)」および「*Application Load Balancer ユーザーガイド*」の「[ロードバランサーの Route 53 DNS フェイルオーバーを使用する](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/load-balancer-target-groups.html#r53-dns-failover)」を参照してください。
+ 複数のロードバランサーが同じターゲットにトラフィックを転送する場合、クロスゾーン対応ロードバランサーのゾーンシフトは、トラフィックがゾーンシフトによってシフトされない場合でも、すべてのロードバランサーのターゲット容量を減らします。

# Amazon EC2 Auto Scaling グループ
<a name="arc-zonal-shift.resource-types.ec2-auto-scaling-groups"></a>

Amazon EC2 Auto Scaling グループには、オートスケーリングと管理のための、論理グループとして扱われる Amazon EC2 インスタンスの集合が含まれています。また、Auto Scaling グループによって、ヘルスチェックの置き換えやスケーリングポリシーなど、Amazon EC2 Auto Scaling の機能も使用できます。Auto Scaling グループでのインスタンス数の維持と自動スケーリングの両方が Amazon EC2 Auto Scaling サービスの主な機能です。

## Auto Scaling グループのゾーンシフトの使用
<a name="using-asg-zs"></a>

ゾーンシフトを有効にするには、次のいずれかの方法を使用します。

------
#### [ Console ]

**新しいグループでゾーンシフトを有効にするには (コンソール)**

1. [「起動テンプレートを使用して Auto Scaling グループを作成する](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template)」の手順に従って、ステップ 10 までの手順の各ステップを完了します。

1. **[他のサービスと統合する]**ページの **[ARC ゾーンシフト]** で、チェックボックスを選択してゾーンシフトを有効にします。

1. **[ヘルスチェックの動作]** で、[異常を無視] または [異常なものとの置換を実行] を選択します。`replace-unhealthy` に設定すると、異常なインスタンスはアベイラビリティーゾーンのアクティブなゾーンシフトに置き換えられます。`ignore-unhealthy` に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられません。

1. [「起動テンプレートを使用して Auto Scaling グループを作成する](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template)」の手順に進みます。

------
#### [ AWS CLI ]

**新しいグループでゾーンシフトを有効にするには (AWS CLI)**  
[create-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドに `--availability-zone-impairment-policy` パラメータを追加します。

`--availability-zone-impairment-policy` パラメータには次の 2 つのオプションがあります。
+ **ZonalShiftEnabled** – `true` に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトに登録し、ARC コンソールで[ゾーンシフトを開始、更新、またはキャンセル](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)できます。`false` に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトから登録解除します。`false` に設定するには、ゾーンシフトが既に有効になっている必要があります。
+ **ImpairedZoneHealthCheckBehavior** – `replace-unhealthy` に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられます。`ignore-unhealthy` に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられません。

次の例では、`my-asg` という名前の新しい Auto Scaling グループでゾーンシフトを有効にします。

```
aws autoscaling create-auto-scaling-group \
  --launch-template LaunchTemplateName=my-launch-template,Version='1' \
  --auto-scaling-group-name my-asg \
  --min-size 1 \
  --max-size 10 \
  --desired-capacity 5 \
  --availability-zones us-east-1a us-east-1b us-east-1c \
  --availability-zone-impairment-policy '{
      "ZonalShiftEnabled": true,
      "ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy       
    }'
```

------

------
#### [ Console ]

**既存のグループでゾーンシフトを有効にするには (コンソール)**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 画面上部のナビゲーションバーで、Auto Scaling グループ AWS リージョン を作成した を選択します。

1. Auto Scaling グループの横にあるチェックボックスをオンにします。

   ページの下部にスプリットペインが開きます。

1. **[統合]** タブの **[ARC ゾーンシフト]** で、**[編集]** を選択します。

1. ゾーンシフトを有効にするには、チェックボックスをオンにします。

1. **[ヘルスチェックの動作]** で、**[異常を無視]** または **[異常なものとの置換を実行]** を選択します。
   + ヘルスチェックの動作が異常を無視するように設定されている場合、異常のあるインスタンスはアベイラビリティーゾーンでアクティブなゾーンシフトに置き換えられ*ません*。
   + ヘルスチェックの動作が異常を置き換えるように設定されている場合、異常のあるインスタンスはアベイラビリティーゾーンでアクティブなゾーンシフトに置き換えられます。

1. **[更新]** を選択します。

------
#### [ AWS CLI ]

**既存のグループでゾーンシフトを有効にするには (AWS CLI)**  
[update-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドに `--availability-zone-impairment-policy` パラメータを追加します。

`--availability-zone-impairment-policy` パラメータには次の 2 つのオプションがあります。
+ **ZonalShiftEnabled** – `TRUE` に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトに登録し、ARC コンソールで[ゾーンシフトを開始、更新、またはキャンセル](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)できます。`FALSE` に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトから登録解除します。`FALSE` に設定するには、ゾーンシフトが既に有効になっている必要があります。
+ **ImpairedZoneHealthCheckBehavior** – `replace-unhealthy` に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられます。`ignore-unhealthy` に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられません。

次の例では、指定された Auto Scaling グループでゾーンシフトを有効にします。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --availability-zone-impairment-policy '{
      "ZonalShiftEnabled": true,
      "ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy       
    }'
```

------

ゾーンシフトを開始するには、「[ゾーンシフトの開始、更新またはキャンセル](arc-zonal-shift.start-cancel.md)」を参照してください。

## Auto Scaling グループに対するゾーンシフトの仕組み
<a name="how-it-works-asg-zs"></a>

次のアベイラビリティーゾーンを含む Auto Scaling グループがあるとします。
+ `us-east-1a`
+ `us-east-1b`
+ `us-east-1c`

`us-east-1a` の障害に気づき、ゾーンシフトを開始します。`us-east-1a` でゾーンシフトが開始されると、次の動作が発生します。
+ **スケールアウト** – Auto Scaling は、正常なアベイラビリティーゾーン (`us-east-1b` および ) ですべての新しいキャパシティーリクエストを起動します`us-east-1c`。
+ **動的スケーリング** – Auto Scaling は、スケーリングポリシーが希望する容量を減らすのをブロックします。Auto Scaling は、スケーリングポリシーが希望する容量を増やすのをブロックしません。
+ **インスタンスの更新** – Auto Scaling は、アクティブなゾーンシフト中に遅延したインスタンスの更新プロセスのタイムアウトを延長します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/r53recovery/latest/dg/arc-zonal-shift.resource-types.ec2-auto-scaling-groups.html)

## ゾーンシフトの使用に関するベストプラクティス
<a name="best-practices-asg-zs"></a>

ゾーンシフトの使用時にアプリケーションの高可用性を維持するには、次のベストプラクティスをお勧めします。
+ EventBridge 通知をモニタリングして、進行中のアベイラビリティーゾーンの障害イベントが発生するタイミングを特定します。詳細については、[EventBridge による Amazon EC2 Auto Scaling の自動化](https://docs.aws.amazon.com//autoscaling/ec2/userguide/automating-ec2-auto-scaling-with-eventbridge.html)」を参照してください。
+ 適切なしきい値を持つスケーリングポリシーを使用して、アベイラビリティーゾーンの損失を許容できる十分な容量があることを確認します。
+ 最小正常パーセンテージが 100 のインスタンスメンテナンスポリシーを設定します。この設定で、Auto Scaling は、異常なインスタンスを終了する前に、新しいインスタンスを使用する準備が整うのを待ちます。

事前スケーリングされたお客様には、以下もお勧めします。
+ 障害イベント中に異常なインスタンスを置き換える必要がないため、障害のあるアベイラビリティーゾーンのヘルスチェック動作として **[異常を無視]** を選択します。
+ Auto Scaling グループに対して ARC のゾーンオートシフトを使用します。のゾーンオートシフト機能 Amazon Application Recovery Controller (ARC) を使用すると AWS 、 がアベイラビリティーゾーンの障害 AWS を検出したときに、リソースのトラフィックをアベイラビリティーゾーンから遠ざけることができます。詳細については、「[ARC のゾーンオートシフト](arc-zonal-autoshift.md)」を参照してください。

クロスゾーンが無効になっているロードバランサーを使用するお客様には、以下もお勧めします。
+ アベイラビリティーゾーンの分散に対して **[バランシング (限定)]** を使用します。
+ Auto Scaling グループとロードバランサーの両方でゾーンシフトを使用している場合は、まず Auto Scaling グループのゾーンシフトをキャンセルしてください。次に、すべてのアベイラビリティーゾーン間で容量のバランスを取れるまで待ってから、ロードバランサーでゾーンシフトをキャンセルします。
+ ゾーンシフトを有効にし、クロスゾーン無効ロードバランサーを使用すると、容量が不均衡になる可能性があるため、Auto Scaling には追加の検証があります。ベストプラクティスに従っている場合は、 のチェックボックスを選択する AWS マネジメントコンソール か`CreateAutoScalingGroup`、、、または の `skip-zonal-shift-validation`フラグを使用して`UpdateAutoScalingGroup`、この可能性を確認できます`AttachTrafficSources`。

# アマゾン エラスティックKubernetesサービス
<a name="arc-zonal-shift.resource-types.eks"></a>

Amazon EKS には、アベイラビリティーゾーンのヘルスの低下や障害などのイベントに対するアプリケーションの回復力を高める機能があります。Amazon EKS クラスターでワークロードを実行する場合、ゾーンシフトまたはゾーンオートシフトを使用して、アプリケーション環境の耐障害性とアプリケーション復旧をさらに改善できます。

## Amazon Elastic Kubernetes Service でのゾーンシフトの使用
<a name="using-eks-zs"></a>

ゾーンシフトを有効にするには、次のいずれかの方法を使用します。詳細については、「*Amazon Elastic Kubernetes Service ユーザーガイド*」の「[ARC ゾーンシフトについて](https://docs.aws.amazon.com//eks/latest/userguide/zone-shift-enable.html#zone-shift-enable-steps)」を参照してください。

------
#### [ Console ]

**新しい Amazon EKS クラスターでゾーンシフトを有効にするには (コンソール)**

1. ARC に登録する Amazon EKS クラスターの名前とリージョンを見つけます。

1. [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) で Amazon EKS コンソールを開きます。

1. クラスターを選択します。

1. **[クラスター情報]** ページの **[概要]** タブを選択します。

1. **[ゾーンシフト]** で、**[管理]** を選択します。

1. **[EKS ゾーンシフト]** で **[有効]** または **[無効]** を選択します。

------
#### [ AWS CLI ]

**新しい Amazon EKS クラスターでゾーンシフトを有効にするには (AWS CLI)**
+ 次のコマンドを入力します。

  ```
  aws eks create-cluster --name my-eks-cluster --role-arn my-role-arn-to-create-cluster --resources-vpc-config subnetIds=string,string,securityGroupIds=string,string,endpointPublicAccess=boolean,endpointPrivateAccess=boolean,publicAccessCidrs=string,string --zonal-shift-config enabled=true
  ```

**既存の Amazon EKS クラスターでゾーンシフトを有効にするには (AWS CLI)**
+ 次のコマンドを入力します。

  ```
  aws eks update-cluster-config --name my-eks-cluster --zonal-shift-config enabled=true
  ```

------

Amazon EKS クラスターのゾーンシフトを開始することも、ゾーンオートシフトを有効にすることで AWS にゾーンシフトを許可することもできます。ARC で Amazon EKS クラスターのゾーンシフトを有効にしたら、ARC コンソール、 AWS CLI、またはゾーンシフトとゾーンオートシフト APIs を使用して、ゾーンシフトを開始したり、ゾーンオートシフトを有効にしたりできます。

ゾーンシフトの開始に関する詳細については、「[ゾーンシフトの開始、更新またはキャンセル](arc-zonal-shift.start-cancel.md)」を参照してください。

ゾーンシフトで Amazon EKS を有効にする方法の詳細については、「*Amazon Elastic Kubernetes Service ユーザーガイド*」の「[Amazon EKS での ARC ゾーンシフトについて](https://docs.aws.amazon.com//eks/latest/userguide/zone-shift.html)」を参照してください。

## Amazon Elastic Kubernetes Service のゾーンシフトの仕組み
<a name="how-it-works-eks-zs"></a>

Amazon EKS のゾーンシフト中、次のことが自動的に行われます。
+ 影響を受ける AZ 内のすべてのノードが遮断されます。これにより、Kubernetes スケジューラーが異常な AZ のノードに新しいポッドをスケジューリングできなくなります。
+ [Managed Node Groups](https://docs.aws.amazon.com//eks/latest/userguide/managed-node-groups.html) を使用している場合、[アベイラビリティーゾーンの再調整](https://docs.aws.amazon.com//autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage)は中断され、新しい Amazon EKS データプレーンノードが正常な AZs でのみ起動されるように Auto Scaling グループが更新されます。
+ 異常な AZ のノードは終了されず、ポッドはこれらのノードから削除されません。これは、ゾーンシフトの有効期限が切れたりキャンセルされたりしたときに、トラフィックがフル容量を保持している AZ に安全に戻ることができるようにするためです。
+ EndpointSlice コントローラーは、障害のある AZ 内のすべてのポッドエンドポイントを検索し、関連する EndpointSlices から削除します。これにより、正常な AZ のポッドエンドポイントのみがネットワークトラフィックの受信対象になります。ゾーンシフトがキャンセルまたは期限切れになると、EndpointSlice コントローラーは EndpointSlices を更新して、復元された AZ にエンドポイントを含めます。

詳細については、「[AWS Containers ブログ](https://aws.amazon.com/blogs/containers/amazon-eks-now-supports-amazon-application-recovery-controller/)」を参照してください。

# アプリケーション ロード バランサー
<a name="arc-zonal-shift.resource-types.app-load-balancers"></a>

## Application Load Balancer のゾーンシフト
<a name="using-alb-zs"></a>

ゾーンシフトで Application Load Balancer を使用するには、Application Load Balancer 属性で ARC ゾーンシフト統合を有効にする必要があります。Application Load Balancer は、クロスゾーンが有効な設定またはクロスゾーンが無効な設定のゾーンシフトをサポートします。

ARC 統合を有効にしてゾーンシフトの使用を開始する前に、次の情報を確認します。
+ 1 つのアベイラビリティーゾーンに対してのみ、特定のロードバランサーのゾーンシフトを開始できます。複数のアベイラビリティーゾーンに対してゾーンシフトを開始することはできません。
+ AWS は、複数のインフラストラクチャの問題がサービスに影響を与える場合、DNS からゾーンロードバランサーの IP アドレスをプロアクティブに削除します。ゾーンシフトを開始する前に、現在のアベイラビリティーゾーンの容量を必ず確認してください。
+ ゾーンシフトは、シングル AZ ターゲットグループでは機能しません。
+ Application Load Balancer が Network Load Balancer のターゲットである場合は、常に Network Load Balancer からゾーンシフトを開始します。Application Load Balancer からゾーンシフトを開始すると、Network Load Balancer はシフトを認識せず、引き続き Application Load Balancer にトラフィックを送信します。

ロードバランサーのゾーンシフトは、Elastic Load Balancing コンソール (ほとんどの AWS リージョン) または ARC コンソールで開始できます。

------
#### [ Console ]

**ロードバランサーでゾーンシフトを有効にするには (コンソール)**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. **[ナビゲーション]** ページの **[ロードバランシング]** で **[ロードバランサー]** を選択します。

1. Application Load Balancer の名前を選択します。

1. **[属性]** タブで、**[編集]** を選択します。

1. **[アベイラビリティーゾーンルーティング設定]** で、[ARC ゾーンシフト統合] を **[有効化]** に設定します。

1. **[保存]** を選択します。

------
#### [ AWS CLI ]

**ロードバランサーでゾーンシフトを有効にするには (AWS CLI)**
+ 次のコマンドを入力します。

  ```
  aws elbv2 modify-load-balancer-attributes --load-balancer-arn my-alb-arn --attributes Key=zonal_shift.config.enabled,Value=true
  ```

------

ゾーンシフトの開始に関する詳細については、「[ゾーンシフトの開始、更新またはキャンセル](arc-zonal-shift.start-cancel.md)」を参照してください。

`keepalive` オプションを使用して、接続の継続時間を設定できます。詳細については、「Application Load Balancer ユーザーガイド」の「[HTTP クライアントのキープアライブ期間](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#http-client-keep-alive-duration)」を参照してください。Application Load Balancer では、HTTP クライアントのキープアライブ期間の値はデフォルトで 3600 秒 (1 時間) に設定されます。アプリケーションの目標復旧時間に合わせて、例えば 300 秒のように値を小さくすることをお勧めします。HTTP クライアントのキープアライブ時間を設定する際は、一般的に再接続が増えてレイテンシーに影響が出ることと、障害のある AZ やリージョンからすべてのクライアントをより早く切り替えられることとのトレードオフである点を考慮してください。

## Application Load Balancer のゾーンシフトの仕組み
<a name="how-it-works-alb-zs"></a>

クロスゾーン負荷分散が有効になっている Application Load Balancer でゾーンシフトが開始されると、影響を受けるアベイラビリティーゾーンでターゲットへのすべてのトラフィックがブロックされ、ゾーンシフトによってゾーン IP アドレスが DNS から削除されます。

詳細については、「*Application Load Balancer ユーザーガイド*」の「[Application Load Balancer の統合](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/load-balancer-integrations.html#zonal-shift)」を参照してください。

# Network Load Balancer
<a name="arc-zonal-shift.resource-types.network-load-balancers"></a>

## Network Load Balancer でのゾーンシフトの使用
<a name="using-nlb-zs"></a>

ゾーンシフトで Network Load Balancer を使用するには、Network Load Balancer 属性で ARC ゾーンシフト統合を有効にする必要があります。Network Load Balancer は、クロスゾーンが有効な設定またはクロスゾーンが無効な設定のゾーンシフトをサポートします。

ゾーンシフトとゾーンオートシフトを使用するようにオプトインするリソース、および障害のあるアベイラビリティーゾーンからフェイルアウェイするタイミングを選択できます。インターネット向けと内部両方の Network Load Balancer がサポートされています。

クロスゾーン対応の Network Load Balancer のゾーンシフトを有効にするには、ロードバランサーにアタッチされているすべてのターゲットグループが次の条件を満たしている必要があります。
+ クロスゾーン負荷分散が有効になっている (または `use_load_balancer_configuration` に設定されている)。
  + ターゲットグループのクロスゾーン負荷分散の詳細については、「[ターゲットグループに対するクロスゾーン負荷分散](https://docs.aws.amazon.com//elasticloadbalancing/latest/network/edit-target-group-attributes.html#target-group-cross-zone)」を参照してください。
+ ターゲットグループプロトコルは TCP または TLS である必要があります。
  + Network Load Balancer ターゲットグループプロトコルの詳細については、「[ルーティング設定](https://docs.aws.amazon.com//elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-routing-configuration)」を参照してください。
+ 異常のあるターゲットの接続終了は無効にする必要があります。
  + ターゲットグループ接続の終了の詳細については、「[異常のあるターゲットの接続終了](https://docs.aws.amazon.com//elasticloadbalancing/latest/network/edit-target-group-attributes.html#unhealthy-target-connection-termination)」を参照してください。
+ ターゲットグループには、Application Load Balancer をターゲットとして含めないでください。
  + Application Load Balancer をターゲットとして使用する方法の詳細については、「[Application Load Balancer を Network Load Balancer のターゲットとして使用する](https://docs.aws.amazon.com//elasticloadbalancing/latest/network/application-load-balancer-target.html)」を参照してください。

Network Load Balancer のゾーンシフトは、 AWS CLI、、 AWS マネジメントコンソールまたは Elastic Load Balancing ウィジェットを使用して開始できます。Application Load Balancer が Network Load Balancer のターゲットである場合は、ゾーンシフトは Network Load Balancer から開始する必要があります。Application Load Balancer からゾーンシフトを開始すると、Network Load Balancer は Application Load Balancer とそのターゲットにトラフィックを送信し続けます。

------
#### [ Console ]

**ロードバランサーでゾーンシフトを有効にするには (コンソール)**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. **[ナビゲーション]** ページの **[ロードバランシング]** で **[ロードバランサー]** を選択します。

1. Network Load Balancer の名前を選択します。

1. **[属性]** タブで、**[編集]** を選択します。

1. **[アベイラビリティーゾーンルーティング設定]** で、**[ARC ゾーンシフト統合]** を **[有効化]** に設定します。

1. **[保存]** を選択します。

------
#### [ AWS CLI ]

**ロードバランサーでゾーンシフトを有効にするには (AWS CLI)**
+ 次のコマンドを入力します。

  ```
  aws elbv2 modify-load-balancer-attributes --load-balancer-arn my-nlb-arn --attributes Key=zonal_shift.config.enabled,Value=true
  ```

------

ゾーンシフトを開始する方法の詳細については、「[ゾーンシフトの開始、更新またはキャンセル](arc-zonal-shift.start-cancel.md)」を参照してください。

## Network Load Balancer のゾーンシフトの仕組み
<a name="howt-it-works-nlb-zs"></a>

ARC は、登録された Network Load Balancer のヘルスチェックの失敗を作成し、ゾーンシフトの開始時に障害が発生した AZ の Network Load Balancer ノードが DNS から削除されるようにします。Network Load Balancer は、影響を受けたゾーンのターゲットを無効にしてトラフィックの受信を停止し、Elastic Load Balancing はこれらのターゲットをゾーンシフトの無効なターゲットとして扱います。無効状態のターゲットは、引き続きヘルスチェックを受信します。ターゲットが正常で、ゾーンシフトの有効期限が切れる (またはキャンセルされる) と、以前に障害が発生したゾーンのターゲットへのルーティングが再開されます。

クロスゾーン負荷分散が有効になっている Network Load Balancer のゾーンシフト中に、ゾーンロードバランサーの IP アドレスは DNS から削除されます。障害のあるアベイラビリティーゾーン内のターゲットへの既存の接続は、それらが自然に閉じられるまで保持されますが、障害のあるアベイラビリティーゾーン内のターゲットへの新しい接続はルーティングされなくなります。

 詳細については、「*Network Load Balancer ユーザーガイド*」の「[Network Load Balancer のゾーンシフト](https://docs.aws.amazon.com//elasticloadbalancing/latest/network/zonal-shift.html)」を参照してください。

# ゾーンシフトの開始、更新またはキャンセル
<a name="arc-zonal-shift.start-cancel"></a>

このセクションでは、ゾーンシフトの開始やゾーンシフトのキャンセルなど、ゾーンシフトを操作する手順について説明します。

## ゾーンシフトの開始
<a name="arc-zonal-shift.start"></a>

このセクションでは、Amazon Application Recovery Controller (ARC) のコンソールで顧客開始のゾーンシフトを開始する手順について説明します。ゾーンシフトをプログラムで操作する方法については、「[Zonal Shift API Reference Guide](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)」を参照してください。

ARC でゾーンシフトを開始するだけでなく、Elastic Load Balancing コンソール (サポートされているリージョン) でロードバランサーのゾーンシフトを開始することもできます。詳細については、[「Elastic Load Balancing ユーザーガイド」の「ゾーンシフト](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/zonal-shift.html)」を参照してください。 Elastic Load Balancing 

## ゾーンシフトを開始するには


1. [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard) で ARC コンソールを開きます。

1. **[マルチ AZ]** で **[ゾーンシフト]** を選択します。

1. **[ゾーンシフト]** ページで **[ゾーンシフトを開始]** を選択します。

1. トラフィックを移動させたいアベイラビリティーゾーンを選択します。

1. **リソース**テーブルからサポートされているリソースを選択して、トラフィックをシフトします。

1. **[ゾーンシフトの有効期限を設定]** で、ゾーンシフトの有効期限を選択または入力します。ゾーンシフトは、最初は 1 分～3 日 (72 時間) まで設定できます。

   すべてのゾーンシフトは一時的なものです。有効期限は必ず設定しますが、アクティブなシフトは、後から新しい有効期限 (最大 3 日後) に更新できます。

1. コメントを入力します。必要に応じて、後でゾーンシフトを更新してコメントを編集できます。

1. このチェックボックスをオンにすると、ゾーンシフトを開始した際、トラフィックがアベイラビリティーゾーンからシフトし、アプリケーションの容量が減ることを了承します。

1. **[開始]** を選択します。

## ゾーンシフトの更新またはキャンセル
<a name="arc-zonal-shift.update-cancel"></a>

このセクションでは、Amazon Application Recovery Controller (ARC) のコンソールで、開始するゾーンシフトを更新する方法、またはゾーンシフトをキャンセルする手順について説明します。ゾーンシフトをプログラムで操作する方法については、「[Zonal Shift API Reference Guide](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/Welcome.html)」を参照してください。

ゾーンシフトは、更新して新しい有効期限を設定できます。また、コメントを編集したり置き換えたりもできます。ゾーンシフトは、有効期限が切れる前であればいつでもキャンセルできます。

開始したゾーンシフト、またはゾーンオートシフトの練習実行のリソースに対して AWS 開始されたゾーンシフトをキャンセルできます。ゾーンオートシフトの練習シフトの詳細については、「[ゾーンオートシフトと練習実行の仕組み](arc-zonal-autoshift.how-it-works.md)」を参照してください。

## ゾーンシフトを更新するには


1. [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard) で ARC コンソールを開きます。

1. **[マルチ AZ]** で **[ゾーンシフト]** を選択します。

1. 更新するゾーンシフトを選択し、**[ゾーンシフトを更新]** を選択します。

1. **[Set zonal shift expiration time]** (ゾーンシフトの有効期限の設定) で、オプションで有効期限を選択または入力します。

1. **[Comment]** (コメント) には、必要に応じて既存のコメントを編集するか、新しいコメントを入力します。

1. **[更新]** を選択します。

## ゾーンシフトをキャンセルするには


1. [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard) で ARC コンソールを開きます。

1. **[マルチ AZ]** で **[ゾーンシフト]** を選択します。

1. 更新するゾーンシフトを選択し、**[ゾーンシフトをキャンセル]** を選択します。

1. ダイアログボックスで、**[確認]** を選択します。

# Amazon Application Recovery Controller (ARC) のゾーンシフトのログ記録とモニタリング
<a name="monitoring-zonal-shift"></a>

 AWS CloudTrail を使用して、Amazon Application Recovery Controller (ARC) のゾーンシフトをモニタリングし、パターンを分析し、問題のトラブルシューティングに役立てることができます。

**Topics**
+ [AWS CloudTrail を使用したゾーンシフト API コールのログ記録](cloudtrail-zonal-shift.md)

# AWS CloudTrail を使用したゾーンシフト API コールのログ記録
<a name="cloudtrail-zonal-shift"></a>

ARC のゾーンシフトは、AWS CloudTrail と統合されています。これは、ARC のユーザー、ロール、または AWS のサービスで実行されたアクションを記録するためのサービスです。CloudTrail は、ゾーンシフトに対するすべての API コールをイベントとしてキャプチャします。キャプチャされたコールには、ARC コンソールからのコールと、ゾーンシフトの ARC API オペレーションへのコードコールが含まれます。

証跡を作成する場合は、ゾーンシフトのイベントを含む、Amazon S3 バケットへの CloudTrail イベントの継続的デリバリーを有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。

CloudTrail で収集した情報を使用して、ゾーンシフトの ARC に対するリクエスト、リクエスト元の IP アドレス、リクエストした人、リクエストが行われた日時などの詳細を確認できます。

CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)」を参照してください。

## CloudTrail のゾーンシフト情報
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail は、AWS アカウントを作成すると、その中で有効になります。ゾーンシフトの ARC でアクティビティが発生すると、そのアクティビティは他の AWS サービスイベントと共に、**[イベント履歴]** 内で CloudTrail イベントに記録されます。最近のイベントは、AWS アカウント で表示、検索、ダウンロードできます。詳細については、「[CloudTrail イベント履歴の操作](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。

ゾーンシフトの ARC のイベントなど、AWS アカウント で継続しているイベントの記録については、証跡を作成します。*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべての AWS リージョン に適用されます。証跡は、AWS パーティションのすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集したイベントデータをより詳細に分析し、それに基づいて対応するため、他の AWS サービスを構成できます。詳細については、次を参照してください:
+ [追跡を作成するための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail がサポートされているサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [CloudTrail の Amazon SNS 通知の設定](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [複数のリージョンから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)および[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

すべての ARC アクションは CloudTrail によってログに記録され、「[Amazon Application Recovery Controller のルーティングコントロール API リファレンスガイド](https://docs.aws.amazon.com/routing-control/latest/APIReference/)」に記載されています。例えば、`StartZonalShift` および `ListManagedResources` の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます:
+ リクエストが、ルート認証情報と AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたか。
+ リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「[CloudTrail userIdentity エレメント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

## イベント履歴での ARC イベントの表示
<a name="amazon-arc-events-in-cloudtrail-event-history"></a>

CloudTrail では、[**イベント履歴**] に最近のイベントが表示されます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail イベント履歴の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。

## ゾーンシフトログファイルエントリの理解
<a name="understanding-service-name-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントは任意ソースからの単一リクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどの情報を含みます。CloudTrail ログファイルは、パブリック API 呼び出しの順序付けられたスタックトレースではないため、特定の順序では表示されません。

次の例は、ゾーンシフトの `ListManagedResources` アクションを実行する CloudTrail ログエントリです。

```
{
      "eventVersion": "1.08",
      "userIdentity": {
        "type": "AssumedRole",
        "principalId": "A1B2C3D4E5F6G7EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/admin",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
          "sessionIssuer": {
            "type": "Role",
            "principalId": "AROA33L3W36EXAMPLE",
            "arn": "arn:aws:iam::111122223333:role/admin",
            "accountId": "111122223333",
            "userName": "EXAMPLENAME"
          },
          "webIdFederationData": {},
          "attributes": {
            "creationDate": "2022-11-14T16:01:51Z",
            "mfaAuthenticated": "false"
          }
        }
      },
      "eventTime": "2022-11-14T16:14:41Z",
      "eventSource": "arc-zonal-shift.amazonaws.com",
      "eventName": "ListManagedResources",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "192.0.2.50",
      "userAgent": "Boto3/1.17.101 Python/3.8.10 Linux/4.14.231-180.360.amzn2.x86_64 exec-env/AWS_Lambda_python3.8 Botocore/1.20.102",      
      "requestParameters": null,
      "responseElements": null,
      "requestID": "VGXG4ZUE7UZTVCMTJGIAF_EXAMPLE",
      "eventID": "4b5c42df-1174-46c8-be99-d67_EXAMPLE",
      "readOnly": true,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "111122223333"
      "eventCategory": "Management"
      }
    }
```

次の例は、ゾーンシフトの競合の例外を含む `StartZonalShift` アクションを実行する CloudTrail ログエントリです。

```
{
      "eventVersion": "1.08",
      "userIdentity": {
        "type": "AssumedRole",
        "principalId": "A1B2C3D4E5F6G7EXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/admin",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
          "sessionIssuer": {
            "type": "Role",
            "principalId": "AROA33L3W36EXAMPLE",
            "arn": "arn:aws:iam::111122223333:role/admin",
            "accountId": "111122223333",
            "userName": "EXAMPLENAME"
          },
          "webIdFederationData": {},
          "attributes": {
            "creationDate": "2022-11-14T16:01:51Z",
            "mfaAuthenticated": "false"
          }
        }
      },
      "eventTime": "2022-11-14T16:10:38Z",
      "eventSource": "arc-zonal-shift.amazonaws.com",
      "eventName": "StartZonalShift",
     "awsRegion": "us-west-2",
      "sourceIPAddress": "192.0.2.50",
      "userAgent": "Boto3/1.17.101 Python/3.8.10 Linux/4.14.231-180.360.amzn2.x86_64 exec-env/AWS_Lambda_python3.8 Botocore/1.20.102",
      "errorCode": "ConflictException",
      "errorMessage": "There's already an active zonal shift for that resource identifier: 'arn:aws:testservice:us-west-2:077059137270:testResource/456apples'. Active zonal shift: 'bac23b74-176e-c073-de8f-484ca508910f'",
      "requestParameters": {
        "resourceIdentifier": "arn:aws:testservice:us-west-2:077059137270:testResource/456apples",
        "awayFrom": "usw2-az1",
        "expiresIn": "2m",
        "comment": "HIDDEN_FOR_SECURITY_REASONS"
      },
      "responseElements": null,
      "requestID": "OP4OYXZ54HUPMIPGWH_EXAMPLE",
      "eventID": "0bca6660-e999-43a5-9008-EXAMPLE",
      "readOnly": false,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "111122223333"
      "eventCategory": "Management"
      }
    }
```

# ARC でのゾーンシフトの Identity and Access Management
<a name="security-iam-zonalshift"></a>

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰が*認証* (サインイン) でき、誰が ARC リソースの使用を*許可される* (権限を持つ) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

**Topics**
+ [IAM を使用したゾーンシフトの仕組み](security_iam_service-with-iam-zs.md)
+ [ゾーンシフトのアクセス許可](security_iam_service-with-iam-zonal-shift.md)
+ [アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples-zonal.md)

# IAM を使用したゾーンシフトの仕組み
<a name="security_iam_service-with-iam-zs"></a>

IAM を使用して Amazon Application Recovery Controller (ARC) のゾーンシフトへのアクセスを管理する前に、ゾーンシフトで使用できる IAM 機能について説明します。


**ゾーンシフトで使用できる IAM の機能**  

| IAM 機能 | ゾーンシフトのサポート | 
| --- | --- | 
|  [アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies)  |   あり  | 
|  [リソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)  |   なし   | 
|  [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions)  |   あり  | 
|  [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources)  |   あり  | 
|  [ポリシー条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   あり  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   なし   | 
|  [ABAC (ポリシー内のタグ)](#security_iam_service-with-iam-tags)  |   部分的  | 
|  [一時認証情報](#security_iam_service-with-iam-roles-tempcreds)  |   あり  | 
|  [プリンシパルアクセス権限](#security_iam_service-with-iam-principal-permissions)  |   あり  | 
|  [サービスロール](#security_iam_service-with-iam-roles-service)  |   いいえ   | 
|  [サービスリンクロール](#security_iam_service-with-iam-roles-service-linked)  |   はい  | 

 AWS サービスがほとんどの IAM 機能と連携する方法の概要を把握するには、「IAM *ユーザーガイド*」の[AWS 「IAM と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## ARC のアイデンティティベースのポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

**アイデンティティベースのポリシーのサポート:** あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「*IAM ユーザーガイド*」の「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

ARC のアイデンティティベースのポリシーの例を表示するには、「[Amazon Application Recovery Controller (ARC) のアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md)」を参照してください。

## ARC 内のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**リソースベースのポリシーのサポート:** なし 

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。

## ゾーンシフトのポリシーアクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**ポリシーアクションのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

ゾーンシフトにおける ARC アクションのリストを確認するには、「[サービス認証リファレンス](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-actions-as-permissions)」の「*Amazon Route 53 ゾーンシフトで定義されるアクション*」を参照してください。

ARC におけるゾーンシフト用ポリシーのアクションでは、アクションの前に次のプレフィックスを使用しています。

```
arc-zonal-shift
```

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。例えば、次のようになります。

```
"Action": [
      "arc-zonal-shift:action1",
      "arc-zonal-shift:action2"
         ]
```

ワイルドカード (\$1) を使用して複数アクションを指定できます。例えば、`Describe` という単語で始まるすべてのアクションを指定するには次のアクションを含めます。

```
"Action": "arc-zonal-shift:Describe*"
```

ゾーンシフトにおける ARC のアイデンティティベースのポリシーの例を表示するには、「[ARC でのゾーンシフトのアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples-zonal.md)」を参照してください。

## ゾーンシフトのポリシーリソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**ポリシーリソースのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件**下で**アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\$1) を使用します。

```
"Resource": "*"
```

リソースタイプとその ARN のリスト、および各リソースの ARN で指定できるアクションについては、「*サービス認証リファレンス*」の以下のトピックを参照してください。
+ [Amazon Route 53 - ゾーンシフトで定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-actions-as-permissions)

条件キーで使用できるアクションとリソースについては、「*サービス認証リファレンス*」の以下のトピックを参照してください。
+ [Amazon Route 53 - ゾーンシフトで定義される条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-policy-keys)

ゾーンシフトにおける ARC のアイデンティティベースのポリシーの例を表示するには、「[ARC でのゾーンシフトのアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples-zonal.md)」を参照してください。

## ゾーンシフトのポリシー条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**サービス固有のポリシー条件キーのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

ゾーンシフト条件キーのリストについては、「*サービス認証リファレンス*」の以下のトピックを参照してください。
+ [Amazon Route 53 - ゾーンシフトで定義される条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-policy-keys)

条件キーで使用できるアクションとリソースについては、「サービス認証リファレンス」の以下のトピックを参照してください。**
+ [Amazon Route 53 - ゾーンシフトで定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53applicationrecoverycontroller-zonalshift-actions-as-permissions)
+ [Amazon Route 53 - ゾーンシフトで定義されるリソースタイプ](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53applicationrecoverycontroller-zonalshift.html#amazonroute53applicationrecoverycontroller-zonalshift-resources-for-iam-policies)

ゾーンシフトにおける ARC のアイデンティティベースのポリシーの例を表示するには、「[ARC でのゾーンシフトのアイデンティティベースのポリシーの例](security_iam_id-based-policy-examples-zonal.md)」を参照してください。

## ARC のアクセスコントロールリスト (ACL)
<a name="security_iam_service-with-iam-acls"></a>

**ACL のサポート:** なし 

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするためのアクセス許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

## ARC での属性ベースのアクセス制御 (ABAC)
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** 一部

属性ベースのアクセスコントロール (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグをアタッチし、プリンシパルのタグがリソースのタグと一致するときにオペレーションを許可するように ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は**あり**です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「**部分的**」になります。

ABAC の詳細については、「*IAM ユーザーガイド*」の「[ABAC 認可でアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「*IAM ユーザーガイド*」の「[属性ベースのアクセスコントロール (ABAC) を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

ARC には、ABAC に対する以下の部分的なサポートが含まれています。
+ ゾーンシフトは、ゾーンシフト用に ARC に登録されている、マネージドリソースの ABAC をサポートしています。Network Load Balancer と Application Load Balancer マネージドリソースにおける ABAC の詳細については、「Elastic Load Balancing ユーザーガイド」の「[Elastic Load Balancing での ABAC](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-tags)」を参照してください。

## ARC での一時的な認証情報の使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**一時的な認証情報のサポート:** あり

一時的な認証情報は、 AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「*IAM ユーザーガイド*」の「[IAM の一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」および「[AWS のサービス と IAM との連携](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## ARC のクロスサービスプリンシパル権限
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** あり

IAM エンティティ (ユーザーまたはロール) を使用して でアクションを実行すると AWS、プリンシパルと見なされます。ポリシーによって、プリンシパルに許可が付与されます。一部のサービスを使用する際に、アクションを実行することで、別サービスの別アクションがトリガーされることがあります。この場合、両方のアクションを実行するためのアクセス許可が必要です。

アクションにポリシーで追加の依存アクションが必要かどうかを確認するには、「*サービス認証リファレンス*」の以下のトピックを参照してください。
+ [ Amazon Route 53 ゾーンシフト](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53applicationrecoverycontroller-zonalshift.html)

## ARC のサービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** なし 

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービスに許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

## ARC のサービスにリンクされたロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**サービスリンクロールのサポート:** あり

 サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。

ゾーンシフトはサービスリンクロールを使用しません。

# ゾーンシフトの IAM とアクセス許可
<a name="security_iam_service-with-iam-zonal-shift"></a>

このセクションでは、特に Elastic Load Balancing などの別の AWS サービスの機能を使用する場合に、Amazon Application Recovery Controller (ARC) のゾーンシフト機能に対するアクセス許可の仕組みに関する追加情報を提供します。ARC 機能が IAM やアクセス許可とどのように連携するのかといった一般的な情報については、概要トピックの「[ARC でのゾーンシフトの Identity and Access Management](security-iam-zonalshift.md)」を参照してください。

ゾーンシフトは、Application Load Balancer、Network Load Balancer、Amazon EC2 Auto Scaling グループ、Amazon EKS をサポートしています。IAM 条件キーを使用して、IAM アクセス許可ポリシーをこれらのリソースにスコープできます。以下は、異なるタイプの複数のリソースを持つ条件キーを使用するポリシーの例です。

```
{
    "Condition": {
        "StringLike": {
            "arc-zonal-shift:ResourceIdentifier": [
                "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/*",
                "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/*",
                "arn:aws:eks:us-east-1:123456789012:cluster/*"
            ]
        }
    },
    "Action": [
        "arc-zonal-shift:StartZonalShift"
    ],
    "Resource": "*",
    "Effect": "Allow"
}
```

詳細については、「[サポートされているリソース](arc-zonal-shift.resource-types.md)」を参照してください。

IAM の概要トピックで説明されているアクセス許可に加えて、ゾーンシフトに関する IAM 権限には、以下の点が適用されます。
+ ARC でゾーンシフトを使用するのに必要なアクセス許可があることを確認します。詳細については、「[ゾーンシフトコンソールアクセス](security_iam_id-based-policy-examples-zonal.md#security_iam_id-based-policy-examples-console-zonal)」および「[ゾーンシフトオペレーションアクセス](security_iam_id-based-policy-examples-zonal.md#security_iam_id-based-policy-examples-api-zonal)」を参照してください。
+ ARC でアカウント内のマネージドロードバランサーリソースのゾーンシフトを実行するときは、IAM で Elastic Load Balancing のアクセス許可を追加する必要はありません。
+ Elastic Load Balancing へのフルアクセスを提供する AWS マネージドポリシーには、ゾーンシフトを操作するためのアクセス許可が含まれています。Elastic Load Balancing アクセスに AWS マネージドポリシーを使用する場合、ロードバランサーのゾーンシフトを開始したり、Elastic Load Balancing コンソールで を操作するために、ゾーンシフトの IAM で追加のアクセス許可は必要ありません。詳細については、「[Elastic Load Balancing のAWS マネージドポリシー](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/managed-policies.html)」を参照してください。

# ARC でのゾーンシフトのアイデンティティベースのポリシーの例
<a name="security_iam_id-based-policy-examples-zonal"></a>

デフォルトでは、ユーザーおよびロールには、ARC リソースを作成または変更する権限はありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

これらのサンプルの JSON ポリシードキュメントを使用して IAM アイデンティティベースのポリシーを作成する方法については、「*IAM ユーザーガイド*」の「[IAM ポリシーを作成する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)」を参照してください。

ARC が定義するアクションとリソースタイプの詳細 (各リソースタイプの ARN の形式を含む) については、「*サービス認証リファレンス*」の「[Amazon Application Recovery Controller (ARC) のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html)」を参照してください。

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices-zonal)
+ [例: ゾーンシフトコンソールアクセス](#security_iam_id-based-policy-examples-console-zonal)
+ [例: ゾーンシフト API アクション](#security_iam_id-based-policy-examples-api-zonal)

## ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices-zonal"></a>

ID ベースのポリシーは、ユーザーのアカウントで誰かが ARC リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## 例: ゾーンシフトコンソールアクセス
<a name="security_iam_id-based-policy-examples-console-zonal"></a>

Amazon Application Recovery Controller (ARC) コンソールにアクセスするには、最小限のアクセス許可セットが必要です。これらのアクセス許可により、 の ARC リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

 AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

でゾーンシフトを使用するためのフルアクセスをユーザーに付与するには AWS マネジメントコンソール、次のようなポリシーをユーザーにアタッチします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                   "arc-zonal-shift:ListManagedResources",
                   "arc-zonal-shift:GetManagedResource",
                   "arc-zonal-shift:ListZonalShifts",
                   "arc-zonal-shift:StartZonalShift",
                   "arc-zonal-shift:UpdateZonalShift",
                   "arc-zonal-shift:CancelZonalShift"
             ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeAvailabilityZones",
            "Resource": "*"
        }
    ]
}
```

------

## 例: ゾーンシフト API アクション
<a name="security_iam_id-based-policy-examples-api-zonal"></a>

ゾーンシフト API は一時的にトラフィックをアベイラビリティーゾーンからシフトしてアプリケーションを復旧します。

ユーザーがゾーンシフト API アクションを使用できるようにするには、以下のように、ユーザーが使用すべき API オペレーションに対応したポリシーをアタッチします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [		
                   "arc-zonal-shift:ListManagedResources",
                   "arc-zonal-shift:GetManagedResource",
                   "arc-zonal-shift:ListZonalShifts",
                   "arc-zonal-shift:StartZonalShift",
                   "arc-zonal-shift:UpdateZonalShift",
                   "arc-zonal-shift:CancelZonalShift"
             ],
            "Resource": "*"
        }
    ]
}
```

------