REL 7: 需要の変化に適応するようにワークロードを設計するには、どうすればよいですか?
スケーラブルなワークロードには、リソースを自動で追加または削除する伸縮性があるので、リソースは常に、現行の需要に厳密に適合します。
リソース
AWS Auto Scaling: How Scaling Plans Work
What Is Amazon EC2 Auto Scaling?
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
What is Amazon CloudFront?
Distributed Load Testing on AWS: simulate thousands of connected users
Telling Stories About Little's Law
AWS Marketplace: products that can be used with auto scaling
APN Partner: partners that can help you create automated compute solutions
ベストプラクティス:
-
リソースの取得またはスケーリング時に自動化を使用する: 障害のあるリソースを交換したり、ワークロードをスケーリングしたりする場合は、Amazon S3 や AWS Auto Scaling などのマネージド型の AWS のサービスを使用してプロセスを自動化します。サードパーティーのツールや AWS SDK を使用して、スケーリングを自動化することもできます。
-
ワークロードの障害を検出したときにリソースを取得する: 可用性が影響を受ける場合、必要に応じてリソースをリアクティブにスケールし、ワークロードの可用性を復元します。
-
ワークロードにより多くのリソースが必要であることを検出した時点でリソースを取得する: 需要に合わせてリソースをプロアクティブにスケールし、可用性への影響を回避します。
-
ワークロードの負荷テストを実施する: 負荷テスト手法を採用して、スケーリングアクティビティがワークロード要件を満たすかどうかを測定します。
改善計画
リソースの取得またはスケーリング時に自動化を使用する
What is AWS Auto Scaling?
- 必要に応じて、Amazon EC2 インスタンスおよびスポットフリート、Amazon ECS タスク、Amazon DynamoDB テーブルおよびインデックス、Amazon
Aurora レプリカ、AWS Marketplace アプライアンスで Auto Scaling を設定します。
Managing throughput capacity automatically with DynamoDB Auto Scaling- サービス API を操作して、アラーム、スケーリングポリシー、ウォームアップ時間、およびクールダウン時間を指定します。
What is Elastic Load Balancing?
- Application Load Balancers は、パスごとに負荷を分散することができます。
What is an Application Load Balancer?- Application Load Balancer は、ドメイン名の下のパスに基づいてトラフィックをさまざまなワークロードに分散するように構成します。
- Application Load Balancer を使用すれば、AWS Auto Scaling と統合して需要を管理するという方法で負荷を分散することができます。
Using a load balancer with an Auto Scaling group
- Network Load Balancers は、接続ごとに負荷を分散することができます。
What is a Network Load Balancer?- Network Load Balancer は、TCP を使用してトラフィックをさまざまなワークロードに分散するか、ワークロードの IP アドレスの一定のセットが含まれるように設定します。
- Network Load Balancer を使用すれば、AWS Auto Scaling と統合して需要を管理するという方法で負荷を分散することができます。
- Amazon Route 53 または信頼できる DNS プロバイダーを使用する
What is Amazon Route 53? - CloudFront ディストリビューションとロードバランサーを管理するには、Route 53 を使用します。
- 管理する予定のドメインとサブドメインを決定します。
- ALIAS レコードまたは CNAME レコードを使用して適切なレコードセットを作成します。
Working with records
- AWS Global Accelerator は、ローカルまたはグローバルユーザーが使用するアプリケーションの可用性とパフォーマンスを向上させるサービスです。Application
Load Balancer、Network Load Balancer、Amazon EC2 インスタンスなど、単一または複数の AWS リージョンのアプリケーションエンドポイントへの固定エントリポイントとして機能する静的
IP アドレスが提供されます。
What Is AWS Global Accelerator?
What is Amazon CloudFront?
- ワークロード用の Amazon CloudFront ディストリビューションを設定するか、サードパーティーの CDN を使用します。
- エンドポイントのセキュリティグループまたはアクセスポリシーで CloudFront の IP 範囲を使用することで、ワークロードへのアクセスを CloudFront からのみアクセス可能として制限することができます。
ワークロードの障害を検出したときにリソースを取得する
- AWS Auto Scaling のコアコンポーネントであるスケーリングプランを使用します。ここでは、リソースをスケーリングするための一連の手順を設定します。AWS
CloudFormation を使用する場合、または AWS リソースにタグを追加する場合は、アプリケーションごとに異なるリソースセットに対してスケーリングプランをセットアップできます。AWS
Auto Scaling は、各リソースに合わせてカスタマイズされたスケーリング戦略のレコメンデーションを提供します。スケーリングプランを作成すると、AWS Auto
Scaling は、動的スケーリングと予測スケーリング方法を組み合わせて、スケーリング戦略をサポートします。
AWS Auto Scaling: How Scaling Plans Work - Amazon EC2 Auto Scaling を使用すると、アプリケーションの負荷を処理するための正しい数の Amazon EC2 インスタンスを利用できます。Auto
Scaling グループと呼ばれる EC2 インスタンスのコレクションを作成します。各 Auto Scaling グループのインスタンスの最小数を指定できます。Amazon
EC2 Auto Scaling では、グループがこのサイズを下回ることはありません。各 Auto Scaling グループのインスタンスの最大数を指定できます。Amazon
EC2 Auto Scaling では、グループがこのサイズを超えることはありません。
What Is Amazon EC2 Auto Scaling? - Amazon DynamoDB Auto Scaling は、AWS Application Auto Scaling サービスを使用して、実際のトラフィックパターンに応じて、お客様に代わってプロビジョニングされたスループットキャパシティーを動的に調整します。これにより、テーブルまたはグローバルセカンダリインデックスは、プロビジョニングされた読み込みおよび書き込みキャパシティーを増やすことができ、スロットリングなしでトラフィックの急激な増加を処理できます。
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
ワークロードにより多くのリソースが必要であることを検出した時点でリソースを取得する
- 特定のリクエストレートを処理するために必要なコンピューティングリソースの数 (コンピューティングの同時実行) を計算します。
Telling Stories About Little's Law - 使用状況の履歴パターンがある場合に、Amazon EC2 Auto Scaling のスケジュールに基づくスケーリングをセットアップする
Scheduled Scaling for Amazon EC2 Auto Scaling - AWS 予測スケーリングを使用する
Predictive Scaling for EC2, Powered by Machine Learning
ワークロードの負荷テストを実施する
Distributed Load Testing on AWS: simulate thousands of connected users
- リクエストの組み合わせを特定する: なされるリクエストの組み合わせはさまざまであるため、トラフィックの混在を組み合わせを特定する際は、さまざまな時間枠を確認する必要があります。
- ロードドライバーを実装する: カスタムコード、オープンソース、または商用ソフトウェアを使用して、ロードドライバーを実装できます。
- 最初は小さなキャパシティーを使用して負荷テストを実施する: 1 つのインスタンスまたはコンテナと同じくらいの少なさのキャパシティーに負荷をかけることで、すぐに効果が現れます。
- 大きなキャパシティーに対して負荷テストを実施する: この効果は分散された負荷によって異なるため、できるだけ製品環境に近いに対してテストする必要があります。