

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

# Amazon EC2 Auto Scaling とは
<a name="what-is-amazon-ec2-auto-scaling"></a>

Amazon EC2 Auto Scaling は、アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるようにします。*Auto Scaling グループ*と呼ばれる EC2 インスタンスの集合を作成します。各 Auto Scaling グループ内のインスタンスの最小数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも小さくなることはありません。各 Auto Scaling グループ内のインスタンスの最大数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも大きくなることはありません。グループの作成時、またはそれ以降の任意の時点で、希望するキャパシティーを指定した場合、Amazon EC2 Auto Scaling によって、グループのインスタンス数はこの数に設定されます。スケーリングポリシーを指定する場合、Amazon EC2 Auto Scaling でアプリケーションに対する需要の増減に応じて、インスタンスを起動または終了できます。

例えば、次の Auto Scaling グループで、インスタンス数の最小サイズが 4、希望するキャパシティが 6、最大サイズが 12 であるとします。定義するスケーリングポリシーによって、指定した条件に基づいて、インスタンスの最小数と最大数の間でインスタンス数が調整されます。

![\[VPC 内の Auto Scaling グループの基本的なアーキテクチャ図。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/asg-basic-arch.png)


## Amazon EC2 Auto Scaling の機能
<a name="ec2-auto-scaling-features"></a>

Amazon EC2 Auto Scaling では、EC2 インスタンスは、スケーリングと管理の目的で論理ユニットとして処理されるように、Auto Scaling グループとして整理されます。Auto Scaling グループは起動テンプレート (または起動設定) を EC2 インスタンスの設定テンプレートとして使用します。

Amazon EC2 Auto Scaling の主な特徴を以下に挙げます。

**実行中のインスタンスのヘルスのモニタリング**  
Amazon EC2 Auto Scaling は、EC2 ヘルスチェックを使用してインスタンスのヘルスと可用性を自動的にモニタリングし、終了したインスタンスまたは障害が発生したインスタンスを置き換えて、希望するキャパシティを維持します。

**カスタムヘルスチェック**  
組み込みのヘルスチェックに加えて、アプリケーションに固有のカスタムヘルスチェックを定義して、期待どおりに応答していることを確認できます。インスタンスがカスタムヘルスチェックに不合格の場合、希望するキャパシティを維持するために自動的に置き換えられます。

**アベイラビリティーゾーン間でのキャパシティのバランス調整。**  
Auto Scaling グループに複数のアベイラビリティーゾーンを指定でき、Amazon EC2 Auto Scaling は、グループがスケールするにつれて、アベイラビリティーゾーン間でインスタンスを均等に分散させることができます。これにより、1 か所の障害があってもアプリケーションが保護されることで、高可用性と耐障害性が得られます。

**複数のインスタンスタイプと購入オプション**  
単一の Auto Scaling グループで、複数のインスタンスタイプと購入オプション (スポットインスタンスとオンデマンドインスタンス) を起動できるため、スポットインスタンスの使用によってコストを最適化できます。また、リザーブドインスタンスと Savings Plans の割引は、グループ内のオンデマンドインスタンスと併用することで活用できます。

**スポットインスタンスの自動交換**  
グループにスポットインスタンスが含まれている場合、スポットインスタンスが中断したら、Amazon EC2 Auto Scaling は代わりのスポットキャパシティを自動的にリクエストできます。キャパシティのバランス再調整により、Amazon EC2 Auto Scaling は中断されるリスクが高いスポットインスタンスをモニタリングし、プロアクティブに置き換えることもできます。

**負荷分散**  
Elastic Load Balancing の負荷分散とヘルスチェックを使用して、正常なインスタンスへのアプリケーショントラフィックの均等な分散を確保できます。インスタンスが起動または終了されるたびに、Amazon EC2 Auto Scaling はロードバランサーからインスタンスを自動的に登録および登録解除します。

**スケーラビリティ**  
Amazon EC2 Auto Scaling では、Auto Scaling グループをスケールする方法もいくつか用意されています。自動スケーリングを使用すると、ピーク負荷を処理するキャパシティを追加し、需要が低い場合にキャパシティを削除することで、アプリケーションの可用性を維持し、コストを削減できます。必要に応じて、Auto Scaling グループのサイズを手動で調整することもできます。

**インスタンスの更新**  
インスタンス更新機能は、AMI または起動テンプレートを更新するときに、インスタンスをローリング方式で更新するメカニズムを提供します。また、カナリアデプロイと呼ばれる段階的なアプローチを使用して、グループ全体にロールアウトする前に、新しい AMI をテストしたり、小さなインスタンスのセットでテンプレートを起動したりすることもできます。

**ライフサイクルフック**  
ライフサイクルフックは、新しいインスタンスの起動時またはインスタンスが終了する前に呼び出されるカスタムアクションを定義するのに役立ちます。この機能は、イベント駆動型アーキテクチャの構築に特に役立ちますが、ライフサイクルを通じてインスタンスを管理することもできます。

**ステートフルワークロードのサポート**  
ライフサイクルフックには、シャットダウン時に状態を維持するメカニズムも用意されています。ステートフルアプリケーションの継続性を確保するために、スケールイン保護ポリシーまたはカスタム終了ポリシーを使用して、実行時間が長いプロセスのインスタンスが早期に終了するのを防ぐこともできます。

Amazon EC2 Auto Scaling のメリットの詳細については、「[アプリケーションアーキテクチャに対する Auto Scaling の利点](auto-scaling-benefits.md)」を参照してください。

## Amazon EC2 Auto Scaling の料金
<a name="as-pricing"></a>

Amazon EC2 Auto Scaling では追加料金は発生しないため、簡単に試して、 AWS アーキテクチャにどのようなメリットがあるかを確認してください。使用した AWS リソース (EC2 インスタンス、EBS ボリューム、CloudWatch アラームなど) に対してのみ料金が発生します。

## はじめに
<a name="what-is-auto-scaling-next-steps"></a>

使用を開始するには、「[最初の Auto Scaling グループを作成する](create-your-first-auto-scaling-group.md)」チュートリアルを最後まで行って Auto Scaling グループを作成し、そのグループ内のインスタンスが終了するときにどのように応答するかを確認してください。

## Auto Scaling グループの使用
<a name="auto-scaling-group-interfaces"></a>

Auto Scaling グループは、以下のインターフェイスのいずれかを使用して、作成、アクセス、および管理することできます。
+ **AWS マネジメントコンソール** – Auto Scaling グループへのアクセスに使用できるウェブインターフェイスを提供します。にサインアップしている場合は AWS アカウント、 にサインインし AWS マネジメントコンソール、ナビゲーションバーの検索ボックスを使用して Auto Scaling グループを検索し、**Auto Scaling グループ**を選択することで**Auto Scaling グループ**にアクセスできます。
+ **AWS Command Line Interface (AWS CLI)** – Windows、macOS AWS のサービス、および Linux でサポートされているさまざまなコマンドセットを提供します。開始するには、「[を使用する準備をする AWS CLI](setting-up.md#set-up-cli)」を参照してください。詳細については、AWS CLI コマンドリファレンスの「[autoscaling](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/)」を参照してください。
+ **AWS Tools for Windows PowerShell** – PowerShell 環境でスクリプトを作成するユーザー向けに、幅広い AWS 製品のコマンドを提供します。使用を開始する方法については『[AWS Tools for PowerShell ユーザーガイド](https://docs.aws.amazon.com/powershell/latest/userguide/)』を参照してください。詳細については、「[AWS Tools for PowerShell コマンドレットリファレンス](https://docs.aws.amazon.com/powershell/latest/reference/Index.html)」を参照してください。
+ **AWS SDKs** – 言語固有の API オペレーションを提供し、署名の計算、リクエストの再試行の処理、エラーの処理など、接続の詳細の多くを処理します。詳細については、[AWS SDK](https://aws.amazon.com/developer/tools/#SDKs) を参照してください。
+ **クエリ API** – HTTPS リクエスを使用して呼び出す低レベル API アクションを提供します。クエリ API の使用は、 AWS のサービスにアクセスする最も直接的な方法です。ただし、この方法では、リクエストに署名するハッシュの生成やエラー処理など、低レベルの詳細な作業をアプリケーションで処理する必要があります。詳細については、「[Amazon EC2 Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/)」(Amazon EC2 Auto Scaling API リファレンス) を参照してください。
+ **CloudFormation** – CloudFormation テンプレートを使用した Auto Scaling グループの作成をサポートします。詳細については、「[を使用して Auto Scaling グループを作成する AWS CloudFormation](creating-auto-scaling-groups-with-cloudformation.md)」を参照してください。

プログラムで に接続するには AWS のサービス、 エンドポイントを使用します。Amazon EC2 Auto Scaling への呼び出しのエンドポイントの詳細については、「Top Secret Regions User GuideEndpoints in Secret Region[Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/general/latest/gr/as.html)」の*AWS 全般のリファレンス*in China」を参照してください。

# アプリケーションアーキテクチャに対する Auto Scaling の利点
<a name="auto-scaling-benefits"></a>

Amazon EC2 Auto Scaling をアプリケーションアーキテクチャに追加するのは、 AWS クラウドの利点を最大化する方法の 1 つです。Amazon EC2 Auto Scaling を使用する場合、アプリケーションには次のようなメリットがあります。
+ 耐障害性の向上。Amazon EC2 Auto Scaling では、インスタンスに異常が発生したタイミングを検出し、インスタンスを削除して、その代わりに新しいインスタンスを起動することができます。複数のアベイラビリティーゾーンを使用するように Amazon EC2 Auto Scaling を設定することもできます。1 つのアベイラビリティーゾーンが利用できなくなると、Amazon EC2 Auto Scaling は別のアベイラビリティーゾーンでインスタンスを起動して補正します。
+ 可用性の向上。Amazon EC2 Auto Scaling は、現在のトラフィック需要を処理するための適切なキャパシティを、お使いのアプリケーションに常に持たせるのに役立ちます。
+ コスト管理の強化。Amazon EC2 Auto Scaling では、必要に応じて動的に処理能力を増減できます。使用する EC2 インスタンスの料金を支払うので、必要なときにインスタンスを起動し、不要な場合は削除することで費用を節約できます。

**Contents**
+ [例: 変化する需要に対応する](#autoscaling-benefits-example)
+ [例: ウェブアプリアーキテクチャ](#autoscaling-design-example)
+ [例: 複数のアベイラビリティーゾーン全体にインスタンスを分散させる](#arch-AutoScalingMultiAZ)
  + [インスタンスの分散](#AutoScalingBehavior.Rebalancing)
  + [アクティビティの再分散](#AutoScalingBehavior.InstanceUsage)

## 例: 変化する需要に対応する
<a name="autoscaling-benefits-example"></a>

Amazon EC2 Auto Scaling のいくつかのメリットを示すために、 AWSで実行されている基本的なウェブアプリケーションを例として取り上げます。このアプリケーションでは、従業員は会議に使用できる会議室を検索できます。週の始めと終わりには、このアプリケーションの使用量は最小になります。週の中盤では、より多くの従業員が会議をスケジュールしているため、アプリケーションの使用量が大幅に増加します。

以下のグラフは、1 週間を通じてアプリケーションの処理能力がどのくらい使用されているかを示しています。

![\[アプリケーションの処理能力の使用量に関する例。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/capacity-example-diagram.png)


従来、このような処理能力の変化に対応した計画を立てるには 2 通りの方法がありました。最初の方法は、アプリケーションが使用量に応じて十分な処理能力を常に確保できるように、十分な数のサーバーを追加する方法です。ただし、この方法の欠点は、アプリケーションがこの十分な処理能力を必要としない日数が発生することです。余分な処理能力が未使用のままになり、実質的には、アプリケーションの実行を維持するためのコストが増加します。

![\[必要を上回る処理能力の購入によって発生するコスト効率の低下を示す例。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/capacity-example-over-diagram.png)


2 番目の方法は、アプリケーションの平均的な使用量を処理するための十分な処理能力を確保する方法です。この方法では、使用される機会が少ない機器を購入しないため、コストはあまりかかりません。ただし、アプリケーションの使用量が処理能力を超えた場合に、カスタマーエクスペリエンスが低下するというリスクがあります。

![\[必要を下回る処理能力の購入によって発生するカスタマーエクスペリエンスの低下を示す例。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/capacity-example-under-diagram.png)


このアプリケーションに Amazon EC2 Auto Scaling を追加することによって、3 番目の方法が利用可能になります。必要な場合にのみアプリケーションに新しいインスタンスを追加し、それらのインスタンスが不要になった場合は、インスタンスを終了できます。Amazon EC2 Auto Scaling では EC2 インスタンスを使用するため、インスタンスを使用した場合に、それらのインスタンスの料金のみを支払うだけで済みます。この方法により、費用効率が高いアーキテクチャの利用が可能になります。このようなアーキテクチャでは最適なカスタマーエクスペリエンスが提供され、費用を最小限に抑えることができます。

![\[Amazon EC2 Auto Scaling による必要に応じたキャパシティの調整を示す例。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/capacity-example-with-as-diagram.png)


## 例: ウェブアプリアーキテクチャ
<a name="autoscaling-design-example"></a>

一般的なウェブアプリケーションのシナリオでは、顧客のトラフィックのボリュームに対応するために、アプリケーションの複数のコピーを同時に実行します。このようなアプリケーションの複数のコピーは、同じ EC2 インスタンス（クラウドサーバー）でホストされ、それぞれが顧客のリクエストを処理します。

Amazon EC2 Auto Scaling は、お客様に代わって、これらの EC2 インスタンスの起動と終了を管理します。お客様は、Auto Scaling グループが EC2 インスタンスを起動または終了するタイミングを特定する一連の条件 (Amazon CloudWatch アラームなど) を定義します。Auto Scaling グループをネットワークアーキテクチャに追加することによって、アプリケーションの可用性と耐障害性を向上させることができます。

![\[Auto Scaling グループを使用する基本的な 3 層アーキテクチャ。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/sample-3-tier-architecture-auto-scaling-diagram.png)


Auto Scaling グループは必要な数だけ作成できます。例えば、各層のための Auto Scaling グループを作成できます。

Auto Scaling グループ内のインスタンス間のトラフィックを分散させるために、アーキテクチャにロードバランサーを導入できます。詳細については、「[Elastic Load Balancing](autoscaling-load-balancer.md)」を参照してください。

## 例: 複数のアベイラビリティーゾーン全体にインスタンスを分散させる
<a name="arch-AutoScalingMultiAZ"></a>

アベイラビリティーゾーンは、所定の AWS リージョンにある隔離された場所です。各リージョンには、そのリージョンに対して高可用性を提供するために設計された複数のアベイラビリティーゾーン (AZ) があります。アベイラビリティーゾーンは独立しているため、複数のゾーンを使用するようにアプリケーションを設計すると、アプリケーションの可用性が向上します。詳細については、「[Amazon EC2 Auto Scaling のレジリエンス](disaster-recovery-resiliency.md)」を参照してください。

アベイラビリティーゾーンは、 AWS リージョン コードに続けて文字識別子 ( など`us-east-1a`) で識別されます。デフォルトの VPC を使用する代わりに独自の VPC とサブネットを作成する場合は、各アベイラビリティーゾーンに 1 つ、または複数のサブネットを定義できます。各サブネットが完全に 1 つのアベイラビリティーゾーン内に含まれている必要があり、1 つのサブネットが複数のゾーンに、またがることはできません。詳細については、「*Amazon VPC ユーザーガイド*」の「[Amazon VPC の仕組み](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)」を参照してください。

Auto Scaling グループを作成するときは、Auto Scaling グループをデプロイする VPC とサブネットを選択する必要があります。Amazon EC2 Auto Scaling は、選択されたサブネットにインスタンスを作成します。そのため、各インスタンスは Amazon EC2 Auto Scaling によって選択された特定のアベイラビリティーゾーンに関連付けられます。インスタンスを起動すると、Amazon EC2 Auto Scaling は、可用性と信頼性を高めるためにインスタンスをゾーン間で均等に分散させようと試みます。

以下の画像は、3 つのアベイラビリティーゾーン間にデプロイされた多層アーキテクチャの概要です。

![\[3 つのアベイラビリティーゾーンにまたがる一般的な Auto Scaling グループ。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/sample-3-tier-architecture-with-azs-diagram.png)


### インスタンスの分散
<a name="AutoScalingBehavior.Rebalancing"></a>

Amazon EC2 Auto Scaling は自動的に、有効化された各アベイラビリティーゾーン内で等しい数のインスタンスを維持しようと試みます。Amazon EC2 Auto Scaling は、インスタンス数が最も少ないアベイラビリティーゾーンで新しいインスタンスの起動を試みることによって、これを実行します。アベイラビリティーゾーンに複数のサブネットが選択されている場合、Amazon EC2 Auto Scaling は、アベイラビリティーゾーンで使用可能な IP アドレスの数が最も多いサブネットでインスタンスの起動を試行します。この試みが失敗した場合、Amazon EC2 Auto Scaling は成功するまで別のアベイラビリティーゾーンでのインスタンスの起動を試みます。

アベイラビリティーゾーンが異常、または利用不能な状況では、アベイラビリティーゾーン間でのインスタンスの分散が不均等になる可能性があります。アベイラビリティーゾーンが回復すると、Amazon EC2 Auto Scaling は Auto Scaling グループのバランスを自動的に再調整します。これは、インスタンス数が最も少ない有効なアベイラビリティーゾーンでインスタンスを起動し、その他のゾーンでインスタンスを終了することによって行われます。

### アクティビティの再分散
<a name="AutoScalingBehavior.InstanceUsage"></a>

再分散アクティビティは、アベイラビリティーゾーンの再調整とキャパシティ再調整の 2 つのカテゴリに分類されます。

**アベイラビリティーゾーンの再調整**

特定のアクションが発生すると、Auto Scaling グループはアベイラビリティーゾーン間で不均衡になる可能性があります。Amazon EC2 Auto Scaling は、これらのアベイラビリティーゾーンを再調整することによって、これを補正します。再調整アクティビティは、以下のアクションが原因で行われる場合があります。
+ Auto Scaling グループに関連付けられたアベイラビリティーゾーンを変更する。
+ インスタンスを明示的に終了もしくはデタッチする、またはインスタンスをスタンバイにすることでグループのバランスが悪くなる。
+ それまでキャパシティが不足していたアベイラビリティーゾーンが回復し、使用できるキャパシティが増えた。
+ これまでスポット価格が上限価格より高かったアベイラビリティーゾーンで、スポット価格が上限価格より低くなった。

再調整するにあたって、Amazon EC2 Auto Scaling は新しいインスタンスを起動してから古いインスタンスを終了します。そうすることで、再調整によってアプリケーションのパフォーマンスや可用性が損なわれることがなくなります。

Amazon EC2 Auto Scaling は古いインスタンスを終了する前に新しいインスタンスの起動を試みるため、指定された最大キャパシティ、またはそれに近いキャパシティが使用されていると、再調整アクティビティが妨げられる、または完全に停止される可能性があります。

この問題を回避するため、システムは、再調整アクティビティの実行中に指定された最大キャパシティを一時的に超過することができます。デフォルトでは、超過は、10% または 1 インスタンスのどちらか大きい方の範囲で行うことができます。この超過範囲は、グループのキャパシティが最大またはそれに近く、再調整が必要な場合にのみ拡張されます。この追加キャパシティーは、グループの再分散に要する時間にわたってのみ提供されます (通常は数分)。

または、インスタンスメンテナンスポリシーを使用して Auto Scaling グループのしきい値を確立でき、グループはそのしきい値範囲内のキャパシティのみを増減できます。このようにして、グループのバランスが再調整される速度を制御できます。詳細については、「[インスタンスメンテナンスポリシー](ec2-auto-scaling-instance-maintenance-policy.md)」を参照してください。

**キャパシティーの再調整**

スポットインスタンスを使用するときは、Auto Scaling グループのキャパシティの再調整を有効にできます。これは、Amazon EC2 がスポットインスタンスの中断リスクが高まっていることを報告するときに、Amazon EC2 Auto Scaling がスポットインスタンスの起動を試行できるようにします。新しいインスタンスの起動後、Amazon EC2 Auto Scaling は古いインスタンスを終了します。詳細については、「[リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整](ec2-auto-scaling-capacity-rebalancing.md)」を参照してください。

# Amazon EC2 Auto Scaling インスタンスのライフサイクル
<a name="ec2-auto-scaling-lifecycle"></a>

Auto Scaling グループの EC2 インスタンスに、他の EC2 インスタンスとは異なるパスまたはライフサイクルがあります。Auto Scaling グループがインスタンスを起動すると、ライフサイクルが起動してサービスに組み込まれます。インスタンスを削除するとライフサイクルが終了するか、または Auto Scaling グループがインスタンスをサービスから削除して終了します。

**注記**  
インスタンスが起動すると、サービスを使用していなくてもすぐに課金されます。

次の図は、Amazon EC2 Auto Scaling ライフサイクルのインスタンス状態の遷移を示しています。

![\[Auto Scaling グループ内のインスタンスのライフサイクル。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/auto-scaling-instance-lifecycle.png)


## スケールアウト
<a name="as-lifecycle-scale-out"></a>

以下で、イベントを Auto Scaling グループで直接スケールアウトして EC2 インスタンスを起動し、グループにアタッチします。
+ 手動でグループのサイズを拡大します。詳細については、「[既存の Auto Scaling グループの希望するキャパシティを変更する](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)」を参照してください。
+ スケーリングポリシーを作成して、指定した需要の増加に基づいてグループのサイズを自動的に拡大します。詳細については、「[Amazon EC2 Auto Scaling の動的スケーリング](as-scale-based-on-demand.md)」を参照してください。
+ スケジュールでスケーリングを設定して、特定の時間でグループのサイズを拡大します。詳しくは、「[Amazon EC2 Auto Scaling のスケジュールされたスケーリング](ec2-auto-scaling-scheduled-scaling.md)」を参照してください。

スケールアウトイベントが発生した場合、Auto Scaling グループは割り当てられた起動テンプレートを使用して、必要な数の EC2 インスタンスを起動します。これらのインスタンスは `Pending` 状態で起動します。ライフサイクルフックを Auto Scaling グループに追加する場合は、ここでカスタムアクションを実行できます。詳細については、「[ライフサイクルフック](#as-lifecycle-hooks)」を参照してください。

各インスタンスが完全に設定され、Amazon EC2 ヘルスチェックに合格すると、Auto Scaling グループにインスタンスをアタッチして `InService` 状態へ移行します。インスタンスは、Auto Scaling グループで必要なキャパシティにカウントされます。

Elastic Load Balancing ロードバランサーからのトラフィックを受信するように Auto Scaling グループが設定されている場合、Amazon EC2 Auto Scaling は、インスタンスを `InService` としてマークする前にロードバランサーに登録します。

スケールアウトイベントについて、ロードバランサーにインスタンスを登録する手順の概要を次に示します。

![\[スケールアウトイベントの概要図。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/scale-out-diagram.png)


## インスタンスが実行中
<a name="as-lifecycle-inservice"></a>

以下のいずれかが発生するまで、インスタンスは `InService` 状態のままとなります。
+ スケールインイベントが発生し、Amazon EC2 Auto Scaling が Auto Scaling グループのサイズを縮小するためにこのインスタンスを削除する。詳細については、「[スケールイン中に終了する Auto Scaling インスタンスを制御する](as-instance-termination.md)」を参照してください。
+ ユーザーがインスタンスを `Standby` 状態にする 詳細については、「[スタンバイを入力し終了します。](#as-lifecycle-standby)」を参照してください。
+ Auto Scaling グループからインスタンスをデタッチします。詳細については、「[Auto Scaling グループからインスタンスをデタッチまたはアタッチする](ec2-auto-scaling-detach-attach-instances.md)」を参照してください。
+ インスタンスが必要な数のヘルスチェックに失敗したため、Auto Scaling グループから削除され、終了されて置き換えられます。詳しくは、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

## スケールイン
<a name="as-lifecycle-scale-in"></a>

以下で、イベントを Auto Scaling グループで直接スケールインして EC2 インスタンスをグループからデタッチして、終了します。
+ 手動でグループのサイズを縮小します。詳細については、「[既存の Auto Scaling グループの希望するキャパシティを変更する](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)」を参照してください。
+ スケーリングポリシーを作成して、指定した需要の縮小に基づいてグループのサイズを自動的に縮小します。詳細については、「[Amazon EC2 Auto Scaling の動的スケーリング](as-scale-based-on-demand.md)」を参照してください。
+ スケジュールでスケーリングを設定して、特定の時間にグループのサイズを縮小します。詳しくは、「[Amazon EC2 Auto Scaling のスケジュールされたスケーリング](ec2-auto-scaling-scheduled-scaling.md)」を参照してください。

作成したそれぞれのスケールアウトイベントについて、対応するスケールインイベントを作成することが重要です。これにより、アプリケーションに割り当てられたリソースが、それらのリソースに対する要求に可能な限り厳密に対応するようになります。

スケールインイベントが発生すると、Auto Scaling グループは 1 つ以上のインスタンスをデタッチします。Auto Scaling グループは終了ポリシーを使用して、終了するインスタンスを決定します。Auto Scaling グループからの終了のプロセス中にあるインスタンスは、`Terminating` 状態に移行し、稼働状態に戻ることはできません。

Elastic Load Balancing ロードバランサーからのトラフィックを受信するように Auto Scaling グループが設定されている場合、Amazon EC2 Auto Scaling は、終了するインスタンスをロードバランサーからインスタンスを登録解除します。インスタンスの登録を解除すると、新しいリクエストはすべてロードバランサーのターゲットグループ内の他のインスタンスにリダイレクトされ、インスタンスへの既存の接続は登録解除の遅延の期限が切れるまで継続できます。

ライフサイクルフックを Auto Scaling グループに追加する場合は、終了するインスタンスに対してカスタムアクションを実行できます。詳細については、「[ライフサイクルフック](#as-lifecycle-hooks)」を参照してください。最後に、インスタンスは完全に終了し `Terminated` 状態へ移行します。

スケールインイベントについて、ロードバランサーからインスタンスを登録解除する手順の概要を次に示します。

![\[スケールインイベントの概要図。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/scale-in-diagram.png)


## インスタンスのデタッチ
<a name="as-lifecycle-detach"></a>

Auto Scaling グループからインスタンスをデタッチできます。インスタンスをデタッチした後で、インスタンスを Auto Scaling グループとは別に管理するか、または別の Auto Scaling グループにアタッチできます。

詳細については、「[Auto Scaling グループからインスタンスをデタッチまたはアタッチする](ec2-auto-scaling-detach-attach-instances.md)」を参照してください。

## インスタンスのアタッチ
<a name="as-lifecycle-attach"></a>

特定の基準を満たす実行中の EC2 インスタンスを Auto Scaling グループにアタッチできます。インスタンスがアタッチされると、Auto Scaling グループの一部として管理されます。

詳細については、「[Auto Scaling グループからインスタンスをデタッチまたはアタッチする](ec2-auto-scaling-detach-attach-instances.md)」を参照してください。

## ライフサイクルフック
<a name="as-lifecycle-hooks"></a>

インスタンスを起動または終了したときにカスタムアクションを実行できるように、ライフサイクルフックを Auto Scaling グループに追加できます。

Amazon EC2 Auto Scaling はスケールアウトイベントに応答すると、1 つ以上のインスタンスを起動します。これらのインスタンスは `Pending` 状態で起動します。Auto Scaling グループに `autoscaling:EC2_INSTANCE_LAUNCHING` ライフサイクルフックを追加すると、インスタンスは `Pending` 状態から `Pending:Wait` 状態に移行します。ライフサイクルアクションを完了したら、インスタンスは `Pending:Proceed` 状態に移行します。インスタンスが完全に設定されると、Auto Scaling グループにアタッチされて `InService` 状態へ移行します。

Amazon EC2 Auto Scaling はスケールインイベントに応答すると、1 つ以上のインスタンスを終了します。これらのインスタンスは Auto Scaling グループからデタッチされ `Terminating` 状態へ移行します。Auto Scaling グループに `autoscaling:EC2_INSTANCE_TERMINATING` ライフサイクルフックを追加すると、インスタンスは `Terminating` 状態から `Terminating:Wait` 状態に移行します。ライフサイクルアクションを完了したら、インスタンスは `Terminating:Proceed` 状態に移行します。インスタンスが完全に終了すると、`Terminated` 状態へ移行します。

詳細については、「[Amazon EC2 Auto Scaling のライフサイクルフック](lifecycle-hooks.md)」を参照してください。

## スタンバイを入力し終了します。
<a name="as-lifecycle-standby"></a>

`InService` 状態にあるインスタンスを、`Standby` 状態に移行できます。これによりインスタンスをサービスから削除し、トラブルシューティングや変更を加えてから、サービスに戻すことができます。

`Standby`状態のインスタンスは引き続き Auto Scaling グループによって管理されます。ただし、このようなインスタンスを稼働状態に戻すまで、それらはアプリケーションのアクティブな部分にはなりません。

詳細については、「[Auto Scaling グループからインスタンスを一時的に削除する](as-enter-exit-standby.md)」を参照してください。

# Auto Scaling リソースとグループのクォータ
<a name="ec2-auto-scaling-quotas"></a>

 AWS アカウント には、サービスごとに AWS 、以前は制限と呼ばれていたデフォルトのクォータがあります。特に明記されていない限り、クォータは地域固有です。一部のクォータについては引き上げをリクエストできますが、その他のクォータについては引き上げることはできません。

Amazon EC2 Auto Scaling のクォータを表示するには、[Service Quotas コンソール](https://console.aws.amazon.com/servicequotas/home)を開きます。ナビゲーションペインで、[**AWS のサービス**] を選択し、**[Amazon EC2 Auto Scaling]** を選択します。

クォータの引き上げをリクエストするには、*Service Quotas ユーザーガイド* の「[クォータ引き上げリクエスト](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)」を参照してください。Service Quotas でクォータがまだ利用できない場合は、[[クォータの引き上げをリクエスト](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-auto-scaling)] フォームを使用してください。クォータの引き上げは、リクエストされたリージョンに関連付けられます。

**Amazon EC2 Auto Scaling リソース**  
 AWS アカウント には、作成できる Auto Scaling グループと起動設定の数に関連する次のクォータがあります。


| [リソース]  | デフォルトのクォータ | 
| --- | --- | 
| リージョンあたりの Auto Scaling グループ | 500 | 
| リージョンごとの起動設定 | 200 | 

**Auto Scaling グループの設定**  
 AWS アカウント には、Auto Scaling グループの設定に関連する次のクォータがあります。変更することはできません。


| リソース | クォータ | 
| --- | --- | 
| Auto Scaling グループあたりのスケーリングポリシー | 50 | 
| Auto Scaling グループあたりのスケジュールされたアクション | 125 | 
| ステップスケーリングポリシーあたりのステップ調整 | 20 | 
| Auto Scaling グループあたりのライフサイクルフック | 50 | 
| Auto Scaling グループあたりの SNS トピック | 10 | 
| Auto Scaling グループあたりの Classic Load Balancer | 50 | 
| Auto Scaling グループごとの Elastic Load Balancing ターゲットグループ | 50 | 
| Auto Scaling グループごとの VPC Lattice ターゲットグループ | 5 | 

**Auto Scaling グループ API オペレーション**  
Amazon EC2 Auto Scaling では、Auto Scaling グループをバッチで変更するための API オペレーションを利用できます。1 回のオペレーションで許可される項目の最大数 (配列メンバーの最大数) に対する API の制限を以下に示します。変更することはできません。


| 操作 | 配列メンバーの最大数 | 
| --- | --- | 
| [AttachInstances](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachInstances.html) | 20 個のインスタンス ID  | 
| [AttachLoadBalancers](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachLoadBalancers.html) | 10 個のロードバランサー | 
| [AttachLoadBalancerTargetGroups](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachLoadBalancerTargetGroups.html) | 10 個のターゲットグループ | 
| [BatchDeleteScheduledAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_BatchDeleteScheduledAction.html) | 50 個のスケジュールに基づくアクション | 
| [BatchPutScheduledUpdateGroupAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_BatchPutScheduledUpdateGroupAction.html) | 50 個のスケジュールに基づくアクション | 
| [DetachInstances](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachInstances.html) | 20 個のインスタンス ID | 
| [DetachLoadBalancers](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancers.html) | 10 個のロードバランサー | 
| [DetachLoadBalancerTargetGroups](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancerTargetGroups.html) | 10 個のターゲットグループ | 
| [EnterStandby](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnterStandby.html) | 20 個のインスタンス ID | 
| [ExitStandby](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_ExitStandby.html) | 20 個のインスタンス ID | 
| [SetInstanceProtection](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_SetInstanceProtection.html) | 50 個のインスタンス ID | 

## Amazon EC2 Auto Scaling API のリクエストスロットリング
<a name="api-request-throttling"></a>

Amazon EC2 Auto Scaling API リクエストは、サービス帯域幅を維持するためにトークンバケットスキームを使用してスロットリングされます。詳細については、「*Amazon EC2 Auto Scaling API リファレンス*」の「[API リクエストレート](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/Welcome.html)」を参照してください。

## EC2 終了レート
<a name="instance-termination-rates"></a>

Amazon EC2 Auto Scaling は、Auto Scaling グループがスケールインするときに一度に実行できる EC2 インスタンスの終了オペレーションの数を動的に決定します。これは、Auto Scaling グループ間で一度に終了されるインスタンスの数にばらつきが見られる可能性があることを意味します。これらのばらつきは、Amazon EC2 Auto Scaling がロードバランサーからインスタンスを登録解除する必要があるかどうかなど、外部の考慮事項によって発生します。

## その他のサービス
<a name="quotas-for-other-services"></a>

Amazon EC2 や Amazon VPC など、他のサービスのクォータが Auto Scaling グループに影響を及ぼすことがあります。 サービスクォータ を使用して、 内の EC2 インスタンスやその他のリソースのクォータを更新できます AWS アカウント。 サービスクォータ コンソールでは、使用可能なすべてのサービスクォータを表示し、それらの引き上げをリクエストできます。詳細については、「*サービスクォータ ユーザーガイド*」の「[Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)」を参照してください。

起動テンプレート固有のクォータについては、「*Amazon EC2 ユーザーガイド*」の「[起動テンプレートの制限](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launch-template-restrictions.html)」を参照してください。