はじめに
AWS Solution Architect Associate(SAA)試験を勉強して、様々なサービスで、Auto Scaling機能が提供されていることに気づきました。
Auto ScalingはAWSの大きな強みの一つですが、どのサービスが対応しているのか、そしてそれぞれどのように機能するのかを整理しておくことは重要だと思いました。
本記事では、AWSの各種リソースにおけるAuto Scaling機能について、覚えやすい分類とともに解説します。
コンピューティング系
EC2
EC2は最も基本的なAWSのコンピューティングリソースで、Auto Scalingの代表的な利用例。
EC2 Auto Scaling
設定した条件に基づいてEC2インスタンスの数を自動的に増減できる。
- ターゲット追跡スケーリング
特定のメトリクス(CPU使用率など)のターゲット値を維持 - ステップスケーリング
閾値に応じて段階的にインスタンス数を調整する - シンプルスケーリング
基本的な閾値ベースのスケーリング - スケジュールドスケーリング
特定の時間帯に応じてスケーリング(例:業務時間内はより多くのインスタンスを維持)
ECS(コンテナ)
ECSはDockerコンテナを実行するためのサービスで、コンテナベースのアプリケーションに対してAuto Scalingを提供。
- サービスのAuto Scaling
ECSのタスク数を自動的に調整 - クラスターのAuto Scaling
ECSクラスターのEC2インスタンス数を調整(キャパシティープロバイダー) - Fargate
サーバーレスコンテナ実行環境でも自動スケーリングが可能
EKS(Kubernetes)
EKSはマネージドKubernetesサービスで、Kubernetesのネイティブ機能とAWSのAuto Scaling機能を組み合わせている。
- Horizontal Pod Autoscaler (HPA)
ポッド数の自動調整 - Cluster Autoscaler
ワーカーノード(EC2インスタンス)数の自動調整 - AWS Load Balancer Controller
Ingress/Serviceリソースに基づくロードバランサーの自動設定
アプリケーション系
AppStream 2.0(デスクトップストリーミング)
AppStream 2.0はアプリケーションとデスクトップのストリーミングサービス。
- フリート自動スケーリング
ユーザー需要に応じてストリーミングインスタンスの数を調整 - 使用状況ベースのスケーリング
実際の使用状況に基づいて容量を調整
Amazon EMR(ビッグデータ処理)
EMRはHadoopエコシステムを利用した大規模データ処理サービス。
- インスタンスグループのAuto Scaling
作業負荷に応じてクラスター内のインスタンス数を調整 - マネージドスケーリング
Amazon EMRが自動的にクラスターリソースを最適化 - スポットインスタンス統合
コスト最適化のためにスポットインスタンスを活用したスケーリング
Lambda(サーバーレス関数)
Lambdaはサーバーレスでコードを実行するサービスで、自動スケーリングができる。
- 同時実行数の自動調整
リクエスト数に応じて自動的に関数のインスタンスを増減 - プロビジョンド同時実行数
レイテンシーを最小限に抑えるため、事前に容量を確保(ただし自動スケーリングではない) - コールドスタートの最小化
予測可能なワークロードで同時実行数を最適化
データベース系
DynamoDB(NoSQL)
DynamoDBはフルマネージドNoSQLデータベースサービス。
- オンデマンドキャパシティモード
アクセスパターンに応じて自動的にスケーリング - Auto Scaling
プロビジョンドキャパシティモードでの自動的な読み取り/書き込み容量の調整 - グローバルテーブル
複数リージョンにまたがる自動レプリケーションとスケーリング
RDS(リレーショナルDB)
RDSは様々なリレーショナルデータベースエンジンを提供するマネージドサービス。
- ストレージの自動スケーリング
データベースストレージの自動拡張 - 読み取りレプリカのAuto Scaling
読み取りレプリカの数を自動調整 - RDS Proxy
データベースコネクションプーリングによる効率的なスケーリング
アプリケーションからのデータベース接続を最小限に抑えることができる。
Aurora(RDSの発展系)
Auroraは高性能なリレーショナルデータベースで、通常のRDSよりも高度なスケーリング機能を持っている。
- Aurora Serverless
需要に応じて自動的にデータベースキャパシティを調整
サーバーを常時起動しないので柔軟性が高い - Aurora Replica Auto Scaling
リードレプリカの数を自動調整 - Aurora容量範囲
最小・最大容量の設定範囲内で自動スケーリング
まとめ
SAAの勉強を通じて、AWSの多様なAuto Scaling機能を学びました。
各カテゴリで提供される自動スケーリングは、クラウドの「必要な時に必要なだけ」という価値を実現しており、それを加味して、有効に使っていきたいと思いました。