

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

# Auto Scaling グループのゾーンシフト
<a name="ec2-auto-scaling-zonal-shift"></a>

ゾーンシフトは、Amazon Application Recovery Controller (ARC) の機能です。ゾーンシフトを使用すると、1 つのアクションでアベイラビリティーゾーン内のアプリケーションの障害から迅速に復旧できます。Auto Scaling グループのゾーンシフトを有効にすると、グループは ARC ゾーンシフトサービスに登録されます。その後、 AWS マネジメントコンソール、 AWS CLI、または API を使用してゾーンシフトを開始できます。Auto Scaling グループは、アクティブなゾーンシフトでアベイラビリティーゾーンを障害ありとして扱います。

## Auto Scaling グループのゾーンシフトの概念
<a name="asg-zonal-shift-concepts"></a>

先に進む前に、ARC ゾーンシフトとの統合に関連する以下の主要概念を理解しておく必要があります。

**ARC ゾーンシフト**  
Auto Scaling は、この機能を有効にするとAuto Scaling グループを ARC ゾーンシフトに登録できます。登録後、[ARC `ListManagedResources`](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListManagedResources.html) API を使用してリソースを表示できます。詳細については、[「Amazon Application Recovery Controller (ARC) デベロッパーガイド」の「ARC のゾーンシフト](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.html)」を参照してください。 **

**アベイラビリティーゾーンの再調整**  
Auto Scaling は、各アベイラビリティーゾーンの容量のバランスを維持しようとします。アベイラビリティーゾーン間で不均衡が発生すると、Auto Scaling は自動的に不均衡の修正を試みます。詳細については、「[インスタンスの分散](auto-scaling-benefits.md#AutoScalingBehavior.Rebalancing)」を参照してください。

**動的なスケーリング**  
動的スケーリングは、スケーリングポリシーで選択したメトリクスに基づいて、Auto Scaling グループの希望する容量をスケーリングします。詳細については、「[Amazon EC2 Auto Scaling の動的スケーリング](as-scale-based-on-demand.md)」を参照してください。

**ヘルスチェック**  
Auto Scaling は、Auto Scaling グループ内のすべてのインスタンスのヘルスステータスを定期的にチェックして、インスタンスが実行中で良好な状態であることを確認します。異常なインスタンスが検出されると、Auto Scaling はそのインスタンスを置き換え対象としてマークします。詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

**インスタンスの更新**  
Auto Scaling グループのインスタンスを更新するには、インスタンスの更新を使用できます。インスタンスの更新が開始されると、Auto Scaling は Auto Scaling グループ内のすべてのインスタンスの置き換えを試みます。詳細については、「[インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する](asg-instance-refresh.md)」を参照してください。

**プリスケーリング済み**  
アプリケーションの残りのアベイラビリティーゾーンに十分な容量があるため、1 つのアベイラビリティーゾーンの損失を許容できます。

**スケールアウト**  
Auto Scaling グループの希望する容量を増やすと、Auto Scaling は新しい希望する容量を満たすために追加のインスタンスの起動を試みます。デフォルトでは、Auto Scaling は、Auto Scaling グループ内の有効な各アベイラビリティーゾーン間で同じ容量を維持するために、バランスの取れた方法でインスタンスを起動します。

## Auto Scaling グループのゾーンシフトの仕組み
<a name="asg-zonal-shift-how-it-works"></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 は、ゾーンシフトがアクティブの間に遅延したインスタンスの更新プロセスのタイムアウトを延長します。

次の表は、 でゾーンシフトがトリガーされたときの各オプションのヘルスチェック動作を示しています`us-east-1a`。


| アベイラビリティーゾーンのヘルスチェック動作選択の障害 | ヘルスチェックの動作 | 
| --- | --- | 
|  異常を置き換える  |  異常と思われるインスタンスは、すべてのアベイラビリティーゾーン (`us-east-1a`、`us-east-1b`、および ) で置き換えられます`us-east-1c`。  | 
|  異常を無視する  |  異常と思われるインスタンスは、 `us-east-1b`と で置き換えられます`us-east-1c`。アベイラビリティーゾーンのインスタンスは、アクティブなゾーンシフト () に置き換えられません`us-east-1a`。  | 

## ゾーンシフトを使用するためのベストプラクティス
<a name="asg-zonal-shift-best-practices"></a>

ゾーンシフトを使用するときにアプリケーションの高可用性を維持するには、次のベストプラクティスをお勧めします。
+ EventBridge 通知をモニタリングして、進行中のアベイラビリティーゾーン障害イベントがあるかどうかを確認します。詳細については、「[Auto Scaling イベントの処理に EventBridge を使用する](automating-ec2-auto-scaling-with-eventbridge.md)」を参照してください。
+ 適切なしきい値を持つスケーリングポリシーを使用して、アベイラビリティーゾーンの損失を許容するのに十分な容量があることを確認します。
+ インスタンスメンテナンスポリシーを最小正常率 100 に設定します。この設定では、Auto Scaling は、新しいインスタンスが使用できるようになるのを待ってから、異常なインスタンスを終了します。

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

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

Auto Scaling グループでのゾーンシフトの使用の詳細については、[Amazon EC2 Auto Scaling でのゾーンシフトを使用した](https://aws.amazon.com/blogs/compute/using-zonal-shift-with-amazon-ec2-auto-scaling/) AWS コンピューティングブログ」を参照してください。

# AWS マネジメントコンソール または を使用してゾーンシフトを有効にする AWS CLI
<a name="asg-zonal-shift-enable"></a>

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

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

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

1. [起動テンプレートを使用して Auto Scaling グループを作成する](create-asg-launch-template.md) 「」の手順に従い、ステップ 10 まで手順の各ステップを完了します。

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

1. **ヘルスチェックの動作**で、異常を無視するか、異常を置き換えるを選択します。詳細については、「[Auto Scaling グループのゾーンシフトの仕組み](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)」を参照してください。

1. [起動テンプレートを使用して Auto Scaling グループを作成する](create-asg-launch-template.md) のステップを続行します。

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

**新しいグループでゾーンシフトを有効にするには (AWS CLI）**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/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`、アベイラビリティーゾーンの異常なインスタンスはアクティブなゾーンシフトに置き換えられません。詳細については、「[Auto Scaling グループのゾーンシフトの仕組み](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)」を参照してください。

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

```
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. **統合**タブの **Application Recovery Controller (ARC) ゾーンシフト**で、**編集**を選択します。

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

1. **ヘルスチェックの動作**で、異常を無視するか、異常を置き換えるを選択します。詳細については、「[Auto Scaling グループのゾーンシフトの仕組み](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)」を参照してください。

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

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

**既存のグループでゾーンシフトを有効にするには (AWS CLI）**  
update[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/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 グループのゾーンシフトの仕組み](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)」を参照してください。

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

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

------