Page List

Search on the blog

2021年5月7日金曜日

ecsとasgを使ってオートスケールするサービスを立ち上げる

  GWの自己研鑽4日目のメモです。

AWS ECS(EC2起動)でのAuto Scalingまわりの調査&検証をしました。

  • サービスの Auto Scaling
    • 公式ドキュメントを読んだ
      • ECSはサービスのリソース使用率(CPUやメモリの使用量)メトリクスをcloudwatchに発行している
      • このメトリクスを利用して自動的にサービスのスケールイン・スケールアウトをすることができる
    • ターゲット追跡スケーリングをやってみた
  • コンテナインスタンスの auto scaling
    • EC2起動の場合はサービスをホストしているコンテナインスタンスのauto scalingも考慮する必要がある。
    • 公式ドキュメントを読んだ
      • Capacity Providerというものを使うといいらしい
    • Capacity Provider = クラスタ中のタスクが利用するインフラを管理するやつ
      • target capacity(0~100)を定義するとその値をターゲット追跡してくれるらしい
      • 例えば100と設定するとクラスタ内にあるコンテナインスタンスのサービス使用率が100に近くなるようにscale-out/scale-inが行われる
    • Capacity Provider Strategy = どのCapacity Providerを使ってタスクのインフラを管理するかを決める戦略
      • クラスタは複数のCapacity Providerを持つことができるので、サービスを作るときにどの戦略でいくか選ぶ
      • 最低でもX個のタスクはCapacity Provider Aを使う(base値)、全体のうちY%のタスクはCapacity Provider Bを使う(weight値)というような戦略を作ることができる
    • Default Capacity Provider Strategy = デフォルトのCapacity Provider Strategy
      • サービス起動時にCapacity Provider Strategyを指定しなかった場合に使われる戦略。
      • クラスタごとに決めることができる
    • Classmethodの記事を参考に実際に動かしてみた


0 件のコメント:

コメントを投稿