## スケーリングの考え方
- 適切にスケーリングするためにはまずはアプリケーションの特性を知ることが大事
- ワーカーベースのサーバーの場合
- 同時実行数を使ってスケーリングする
- 同時実行数をアプリケーションから CloudWatch にレポートし、同時実行数をスケーリング指標として利用する
- ALB を使っている場合 ALB の `ActiveConnectionCount` を利用することも可能
- [AWS ドキュメント: ベストプラクティス-Auto Scaling とキャパシティ管理](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/bestpracticesguide/capacity.html)
## オートスケール方法
- 2種類の方式がある
- Target Tracking Scaling Policy
- Step Scaling Policy
- Target Tracking Scaling Policy が推奨されている
- [ベストプラクティス](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/bestpracticesguide/capacity.html)
### Target Tracking Scaling Policy
- 指定したメトリクスが指定した値になるようにスケールアウト/スケールインする
- 値を指定すればあとはよしなにやってくれる方法
- 例: CPU使用率が60%になるようにする
- CPU使用率が70%ならスケールアウトするし、30%ならスケールインする
- [ドキュメント](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/service-autoscaling-targettracking.html)
### Step Scaling Policy
- 指定した閾値に基づいてスケールアウト/スケールインする
- どうなったらどうするという設定を指定する方法
- 一気にコンテナを増やす/減らすことができる
- 例: CPU使用率が70% ~ 80%ならコンテナを3つ起動する、CPU使用率が80%以上ならコンテナを5つ起動する
- [ドキュメント](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/service-autoscaling-stepscaling.html)