AWS Auto Scalingとその他のAuto Scalingとの比較

AWS Auto Scalingとは

AWS Auto Scalingは、Amazon EC2インスタンスとスポットフリート、Amazon ECS タスク、Amazon DynamoDBテーブルとインデックス、Amazon Aurora レプリカなどの複数のAWSリソースを簡単かつ安全にスケーリングして、インフラストラクチャのコストを削減しながら、アプリケーションのパフォーマンスを最適化するサービスです。

AWS Auto Scalingの利点

スケーリングを迅速に設定する

AWS Auto Scalingでは、単一の直感的なインターフェイスで複数のAWSリソースに対するターゲット使用率レベルを設定できます。他のコンソールに移動することなく、すべてのスケーラブルリソースの平均使用率をすばやく確認できます。

(利用例)

アプリケーションがAmazon EC2とAmazon DynamoDBを使用している場合、AWS Auto Scalingを使用して、アプリケーション内のすべてのEC2 Auto Scalingグループとデータベーステーブルのためのリソースプロビジョニングを管理する

スマートなスケーリング判断を行う

AWS Auto Scalingでは、異なるAWSリソースのグループが需要の変化に対応する方法を自動化するスケーリングプランを構築できます。これにより可用性、コスト、または両方のバランスを最適化することができます。AWS Auto Scalingにおける自動化の例を、以下に示します。

  • ユーザーのユーザーの設定に基づいて、すべてのスケーリングポリシーの作成とターゲットの設定を自動的に行う
  • アプリケーションを監視し、需要の変化に応じてリアルタイムでリソースグループの容量を自動的に追加または削除する

パフォーマンスを自動的に維持する

AWS Auto Scalingでは、次のことが行われます。

  • アプリケーションの継続的な監視と最適なパフォーマンスレベルを維持する
  • 需要の増加に応じて、リソースの容量を自動的に増加させる

これらにより、ワークロードが断続的、予測不可能、または継続的に変化している場合でも、最適なアプリケーションのパフォーマンスと可用性を維持できます。

必要なリソース分のみ支払う

AWS Auto Scalingの利用は無料です。また、AWS Auto Scalingが需要の増減に応じてリソース容量を自動的に調整するため、過度な支出を避けることができます。

つまり、AWS Auto Scalingは、AWSのサービスの消費時における使用率とコスト効率性の最適化に役立ち、実際に必要なリソースの料金を支払うようにしてくれます。

AWS Auto Scalingの特徴

統合されたスケーリング

AWS Auto Scalingを使用すると、1つの統合されたインターフェイスからアプリケーションを強化するすべてのスケーラブルなリソースのAuto Scalingを構成することができます。各AWSリソースにおけるAWS Auto Scalingの役割を以下に示します。

Amazon EC2

Amazon EC2 Auto Scalingグループ内で、Amazon EC2インスタンスを起動または終了する

Amazon EC2スポットフリート

Amazon EC2スポットフリートのインスタンスを起動または終了する
料金やキャパシティが原因で中断されているインスタンスを自動的に置き換える

Amazon ECS

負荷の変動に合わせて、Amazon ECSサービスの必要数を調整する

Amazon DynamoDB

Amazon DynamoDBテーブルまたはグローバルセカンダリインデックスで、プロビジョニングされている読み込みや書き込みキャパシティを増やす

これにより、スロットリングなしでトラフィックの急増な増加に対応できます。

Amazon Aurora

Amazon Aurora DBクラスターにプロビジョニングされているAmazon Auroraリードレプリカの数を動的に調整する

これにより、アクティブな接続やワークロードの急激な増加に対応できます。

リソースの自動検出

AWS Auto Scalingは環境をスキャンし、アプリケーションで使われているスケーラブルなクラウドリソースを自動的に検出します。これにより、これらのリソースを各サービスインターフェイスから各々、手作業で確認する必要がなくなります。

組込みスケーリング戦略

AWS Auto Scalingでは、あらかじめ以下の最適化戦略が定義されています。

  • パフォーマンスの最適化
  • コストの最適化
  • パフォーマンスとコストのバランスをとった最適化

必要に応じて、目標リソース使用率を設定することもできます。AWS Auto Scalingは、上記の3つのスケーリングに関わる戦略から1つを選択し、リソースごとに適切なスケーリングポリシーを作成します。

予測スケーリング

AWS Auto Scalingは、予測スケーリングによって強化されたことで、キャパシティをさらに高速、シンプル、正確にプロビジョニングできます。

予測スケーリングでは、定期的なスパイクなどの今後のトラフィックを予想し、予想される変動に先立って適切な数のAmazon EC2インスタンスをプロビジョニングします。

予測スケーリングでは機械学習アルゴリズムによって毎日および毎週の変動パターンが検出され、予測が自動的に調整されます。これにより、AWS Auto Scalingのパラメータを長期的に手動で調整する必要がなく、AWS Auto Scalingの設定や使用がさらにシンプルになります。

フルマネージド型

AWS Auto Scalingは次のことをします。

  • スケーリングプランに含まれるすべてのリソースにターゲット追跡スケーリングポリシーを自動的に作成し、選択されているスケーリング戦略を使って各メトリクスのターゲット値を設定する
  • 利用している各リソースのスケーリング調整をトリガーするAmazon CloudWatchアラームを作成及び管理する

また、AWSターゲット追跡スケーリングポリシーは、メトリクスを設定されたターゲット値近くに維持してくれます。

スマートスケーリングポリシー

AWS Auto Scalingは、以下のスマートスケーリングポリシーによって、支払い料金が最適化されます。

  • 適切なスケーリング調整を継続的に計算し、メトリクスでターゲット値を維持するために必要なキャパシティをすぐに追加および削除する
  • 自己最適型であるAWSターゲット追跡スケーリングポリシーによって、実際の負荷パターンを学習して、リソースキャパシティの変動を最小限に抑える

Auto Scalingの比較

AWS Auto Scalingは、

  • ターゲット追跡スケーリングポリシーのみ、作成および対応するサービス
  • 既存のAmazon EC2 Auto Scalingグループに対する動的なスケーリングポリシーを設定するためのサービス

であるため、状況に応じて、その他のAuto Scalingの使用を検討する必要があります。

ここでは、その使い分けについて解説します。

Auto Scalingは、AWS Auto Scaling、Amazon EC2 Auto Scaling、個別サービス用のAuto Scalingがあります。

AWS Auto Scalingが適当な場合

AWS Auto Scalingは、複数のサービスにまたがる複数のリソースのスケーリングを管理する場合の使用に最適です。理由を以下に示します。

  • 事前に定義されたスケーリング戦略を使って、複数のAmazon EC2 Auto Scalingグループやその他のリソースに対する動的なスケーリングポリシーを定義できるため
  • AWS Auto Scalingを使ってアプリケーション内のスケーラブルなすべてのリソースに対するスケーリングポリシーを設定する方が、個々のサービスコンソールでリソースごとのスケーリングポリシーを管理するより時間がかからず、簡単なため
  • AWS Auto Scalingに含まれる事前に定義されたスケーリング戦略でスケーリングポリシーを簡単に設定できるため

Amazon EC2 Auto Scalingが適当な場合

次の場合に、Amazon EC2 Auto Scalingは最適です。

  • スケーリング対象がAmazon EC2 Auto Scalingグループのみの場合
  • 目的がAmazon EC2フリートの正常性の維持のみの場合

また、AWS Auto Scalingはターゲット追跡スケーリングのみに対応しているため、次の場合にも最適です。

  • Amazon EC2 Auto Scalingグループを作成する必要がある場合
  • スケジュールに基づくスケーリングポリシーやステップスケーリングポリシーを設定する必要がある場合

個別サービス用のAuto Scalingが適当な場合

次の場合に、個別サービス用のAuto Scalingの使用を検討する必要があります。

  • 個々のサービスコンソール、Auto Scaling API、Application Auto Scaling APIIを使って、AWSの個々のサービスをスケーリングする場合
  • ステップスケーリングポリシーやスケジュールに基づくスケジュールを設定する場合

まとめ

本記事では、AWS Auto Scalingの利点や特徴、その他のAuto Scalingの使い分けに関する比較について解説しました。AWS Auto Scalingは、無料で利用できる上にAWSリソースのパフォーマンスとコストを最適化してくれるサービスです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です