[新機能] Amazon Athena の Capacity Reservationsにオートスケーリングソリューションがリリースされました
クラウド事業本部の石川です。Amazon Athenaのキャパシティ予約(Capacity Reservations)に待望のオートスケーリングソリューションがリリースされました。これまで手動で調整していたDPU(Data Processing Units)の管理が自動化され、ワークロードの需要に応じて動的にキャパシティを調整できるようになります。この新機能の概要と設定方法について解説します。
これまでの課題
Athenaのキャパシティ予約は、専用のコンピューティングリソースを確保することで、クエリのパフォーマンスを予測可能にし、同時実行性を保証する機能です。
しかし、これまではDPUの調整を手動で行う必要があり、以下のような課題がありました。
- ワークロードのピーク時に手動でスケールアップが必要
- 閑散時でも高いキャパシティを維持してしまいコストが増大
- 適切なキャパシティを維持するために継続的な監視が必要
ソリューション概要
今回リリースされたオートスケーリング機能は、AWS Step FunctionsとAmazon CloudWatchを活用して、キャパシティ予約のDPUを自動的に調整するソリューションは、CloudFromationで提供されています。
-
動的なスケーリング
- 使用率が高しきい値を超えるとスケールアップ
- 使用率が低しきい値を下回るとスケールダウン
-
カスタマイズ可能な設定
- 使用率しきい値の設定
- 最小/最大DPU数の制限
- スケーリング単位の調整
- 評価頻度の設定
-
サーバーレスアーキテクチャ
- Step Functionsステートマシンによる実装
- CloudWatchメトリクスベースの判断
- CloudFormationテンプレートによる簡単なデプロイ
設定パラメーター
Amazon Athena ユーザーガイド Automatically adjust capacityの以下のリンクからCloudFormationの起動も可能です。

CloudFormation テンプレートはこちらから直接ダウンロードできます。
このソリューションのCloudFromationテンプレートでは、以下のパラメーターをカスタマイズできます。
| パラメーター | デフォルト値 | 説明 |
|---|---|---|
| AthenaCapacityReservationName | (必須入力) | 監視・調整対象のキャパシティ予約名 |
| MaxTargetDpus | (必須入力) | スケールアップ可能な最大DPU数 |
| MinTargetDpus | 24 | スケールダウン可能な最小DPU数 |
| ScaleOutDpuAmount | 16 | スケールアップ時に追加するDPU数 |
| ScaleInDpuAmount | 8 | スケールダウン時に削除するDPU数 |
| HighUtilizationThreshold | 75 | スケールアップをトリガーする使用率(%) |
| LowUtilizationThreshold | 25 | スケールダウンをトリガーする使用率(%) |
| EvaluationLookbackWindow | 300 | 使用率測定の時間窓(秒) |
| EvaluationFrequency | rate(5 minutes) | 使用率チェックの頻度でEventBridgeスケジュール式で指定 |
※ すべてのDPU値は、Athenaのキャパシティ予約の要件に従い、4の倍数である必要があります。

セットアップ手順
前提条件
- アクティブなキャパシティ予約が存在すること
- CloudFormationスタックのデプロイとStep Functionsリソース作成に必要なIAM権限を持っていること
デプロイ手順
方法1: Athenaコンソールから
- Athenaコンソールにアクセス
- キャパシティ予約の詳細ページを開く
- 「Set up auto-scaling」を選択
- CloudFormationコンソールにリダイレクトされ、テンプレートが自動的にロードされる
方法2: CloudFormationコンソールから直接
- AWS Management Consoleにサインイン
- CloudFormationサービスを開く
- 「スタックの作成」を選択
- テンプレートURLを指定(Athenaのドキュメントに記載)
- パラメーターを設定
- IAMリソースの作成を承認してスタックをデプロイ
デプロイが完了すると、数分でステータスが「CREATE_COMPLETE」になります。
動作の仕組み
オートスケーリングソリューションのデフォルトでは以下のような流れで動作します。
- メトリクス監視
- Step Functionsが定期的(デフォルト5分間隔)にCloudWatchメトリクスをチェック
- 使用率評価
- 直近の時間窓(デフォルト300秒)での平均使用率を計算
- スケーリング判断
- 使用率 > 高しきい値(75%)の場合にスケールアップ
- 使用率 < 低しきい値(25%)の場合にスケールダウン
- その間は、現状維持
- キャパシティ調整
- 判断に基づいてDPUを追加または削除
- 制限の適用
- 最小/最大DPU数の範囲内で調整
設定のポイント
CloudFormationテンプレートのカスタマイズ
提供されているCloudFormationテンプレートをベースに、以下のようなカスタマイズが可能です。
- 複数のキャパシティ予約を一つのステートマシンで管理
- 時間帯によってしきい値を変更
- スケーリング時の通知機能の追加
- カスタムメトリクスに基づくスケーリング
Step Functionsステートマシンの拡張
より高度な制御が必要な場合、ステートマシンを直接編集して以下のような機能を追加できます。
- スケーリングの冷却期間の実装
- 予測的スケーリング
- コスト最適化ロジックの組み込み
- 外部システムとの連携
コスト最適化の効果
オートスケーリングを導入することで、以下のようなコスト最適化が期待できます。
- 過剰プロビジョニングの削減: ピーク時以外のリソース使用を最小化
- パフォーマンスの維持: 必要な時に必要なリソースを確保
- 運用コストの削減: 手動監視・調整の工数削減
例えば、日中8時間がピークタイムで、夜間16時間が低負荷の環境では、適切な設定により30-50%のコスト削減が可能になるケースもあります。
注意事項
このオートスケーリングソリューションにおいても、DPU変更に関する制約は回避できません。しかしながら、手動なら削減を忘れて数時間〜終日過剰課金が発生するところを、このソリューションの自動なら最短の1時間後に確実に削減することが可能になります。
- DPU値は必ず4の倍数で設定する必要があります
- スケーリング操作には時間がかかるため、急激な負荷変動には対応しきれない場合があります
- CloudWatchメトリクスの遅延を考慮して、評価頻度を設定してください
- 最小DPU数は、最低限必要なパフォーマンスを保証できる値に設定することをお勧めします
参考: DPU変更に関する制約
| 操作 | 制限事項 | 備考 |
|---|---|---|
| DPUの増加 | いつでも可能 | 制限なし |
| DPUの削減 | 1時間の待機が必要 | 予約作成またはDPU追加から1時間後 |
| 変更の反映時間 | 最大30分 | リクエスト送信から実際の反映まで |
| 最小予約期間 | 1時間 | 1時間後は分単位課金 |
| DPU単位 | 4の倍数 | 24 DPU以上が必須 |
最後に
Amazon Athenaのキャパシティ予約オートスケーリングソリューションは、手動によるDPU管理から解放されることで、運用チームはより戦略的な業務に集中できるようになります。本ソリューションはサーバーレスアーキテクチャで構築されているため、追加のインフラ管理は不要です。CloudFormationテンプレートによる簡単なデプロイと、柔軟なカスタマイズオプションにより、各組織のニーズに合わせた最適化が可能です。DPU変更の制約など考慮すべき点はありますが、自動化による確実な削減実行は大きなメリットです。ぜひこの機会に導入を検討し、コストとパフォーマンスの最適なバランスを実現してください。






