「Auroraは高性能だけど、常にインスタンスを稼働させるとコストが心配」「Serverless v1は制約が多かったけど、v2はどう変わったの?」——AWSのデータベースサービス選定で、こうした疑問を持つエンジニアは多いのではないでしょうか。
Aurora Serverless v2は、オートスケーリングによるコスト最適化と、Aurora Provisionedと同等の高パフォーマンスを両立する、AWSのマネージドデータベースサービスです。 SES案件でもAurora関連の需要は増加しており、Serverless v2の知識は案件獲得と単価アップに直結します。
この記事では、Aurora Serverless v2のアーキテクチャから、コスト最適化テクニック、SES案件での活用法、CDK/Terraformによるデプロイ手順まで実践的に解説します。
この記事を3秒でまとめると
- Aurora Serverless v2はACU単位でオートスケールし、使った分だけ課金される
- 最小0.5 ACUから最大256 ACUまで自動調整、マルチAZ対応で高可用性
- SES案件でのDB設計・運用スキルとして高く評価される
Aurora Serverless v2とは? — 従来版との違い
Serverless v1 → v2の進化ポイント
Aurora Serverless v1は2018年にリリースされましたが、以下のような制約がありました。
| 項目 | Serverless v1 | Serverless v2 |
|---|---|---|
| スケーリング | 段階的(ACU倍増) | きめ細かい(0.5 ACU単位) |
| スケーリング速度 | 30秒〜数分 | 数秒 |
| マルチAZ | 非対応 | 対応 |
| Global Database | 非対応 | 対応 |
| リードレプリカ | 非対応 | 最大15台 |
| RDS Proxy | 非対応 | 対応 |
| 一時停止 | あり(0コスト) | なし(最小ACUで課金) |
v2は、v1の主要な制約をほぼすべて解消しています。きめ細かいスケーリングとマルチAZ対応が最大の進化ポイントです。
RDS / Aurora Provisioned との使い分け
AWSのリレーショナルデータベースサービスは複数あり、ワークロードに応じた選択が重要です。
| 比較項目 | RDS | Aurora Provisioned | Aurora Serverless v2 |
|---|---|---|---|
| パフォーマンス | ★★★ | ★★★★★ | ★★★★★ |
| コスト(安定負荷) | $$ | $$$ | $$$(最小ACUが常時課金) |
| コスト(変動負荷) | $$$(過剰プロビジョン) | $$$$ | $$(使った分だけ) |
| 運用負荷 | 中 | 中 | 低 |
| スケーラビリティ | 手動 | 手動+リードレプリカ | 自動 |
Aurora Serverless v2を選ぶべき場面:
- トラフィックの変動が大きい(昼夜差、月末集中等)
- 開発・ステージング環境で使い、夜間はスケールダウンしたい
- 新規プロジェクトで将来のトラフィックが読めない
Aurora Provisionedを選ぶべき場面:
- 24時間安定した高負荷が続く
- 最大パフォーマンスを常に確保する必要がある
- 予算が確定しており、予測可能なコストを求める

Aurora Serverless v2のアーキテクチャと仕組み
ACU(Aurora Capacity Unit)によるオートスケーリング
ACUはAurora Serverless v2の課金単位であり、スケーリングの単位です。
- 1 ACU = 約2GB RAM
- 最小ACU: 0.5(約1GB RAM)
- 最大ACU: 256(約512GB RAM)
- スケーリング粒度: 0.5 ACU単位
スケーリングの動作:
- ワークロードの増加を検知(CPU使用率、接続数、メモリ使用量)
- 数秒以内にACUを自動増加
- ワークロード低下後、徐々にACUを減少
- 最小ACU設定値まで下がると、それ以下にはならない
このきめ細かいスケーリングにより、Provisionedのように「余裕を持って大きめのインスタンスを選ぶ」必要がなくなり、無駄なコストが発生しにくいのが大きなメリットです。
マルチAZ対応と可用性
Aurora Serverless v2は、Aurora Provisionedと同じくマルチAZでの高可用性を実現しています。
- ライターインスタンス: 1つのAZで稼働
- リーダーインスタンス: 別のAZに配置可能(最大15台)
- フェイルオーバー: ライター障害時、リーダーが自動昇格(通常30秒以内)
- ストレージ: 3つのAZに6コピーを自動レプリケーション
SES案件で「高可用性のDB設計」を求められる場面では、Aurora Serverless v2のマルチAZ構成が有力な選択肢になります。
コスト最適化の実践テクニック
最小ACU・最大ACUの設定戦略
コスト最適化の最重要ポイントは、最小ACU・最大ACUの適切な設定です。
本番環境:
最小ACU: 2.0(ベースラインのレスポンスを確保)
最大ACU: 32.0(ピーク時の対応余力)
ステージング環境:
最小ACU: 0.5(最小コスト)
最大ACU: 8.0(テスト時の負荷に対応)
開発環境:
最小ACU: 0.5
最大ACU: 2.0(開発には十分)
アイドル時のコスト vs Provisioned比較
Aurora Serverless v2はv1と異なり完全停止(0コスト)ができない点に注意が必要です。最小ACUでの課金が常に発生します。
| 構成 | アイドル時月額コスト(東京リージョン) |
|---|---|
| Serverless v2(最小0.5 ACU) | 約$45/月 |
| Serverless v2(最小2.0 ACU) | 約$180/月 |
| Provisioned(db.r6g.large) | 約$280/月 |
| Provisioned(db.r6g.xlarge) | 約$560/月 |
変動負荷の場合、Serverless v2はProvisionedの50〜70%のコストで運用できるケースが多いです。
FinOps視点でのモニタリング設定
AWS Well-Architected Frameworkのコスト最適化の柱に基づき、以下のモニタリングを設定することを推奨します。
- CloudWatchメトリクス:
ServerlessDatabaseCapacity(現在のACU使用量) - ACU使用率アラーム: 最大ACUの80%に達したらアラート
- コスト異常検出: AWS Cost Anomaly Detectionで日次監視
- ACU推移のダッシュボード: 24時間・7日間の推移を可視化
SES案件で求められるAurora Serverless v2スキル
案件での頻出タスクと必要知識
SES案件でAurora Serverless v2に関連して求められるタスクは以下の通りです。
- 新規構築: VPC設計、サブネットグループ作成、パラメータグループ設定
- 移行: RDS/Aurora ProvisionedからServerless v2への移行
- パフォーマンスチューニング: ACU設定の最適化、クエリ最適化
- 監視設計: CloudWatchアラーム、Performance Insights設定
- セキュリティ設計: 暗号化、IAM認証、VPCエンドポイント
- DR設計: バックアップ戦略、ポイントインタイムリカバリ
面談でアピールすべきポイント
SES面談でAurora Serverless v2の経験をアピールする際のポイント:
- 「なぜServerless v2を選んだか」を説明できる: RDS/Provisionedとの比較検討のプロセス
- コスト最適化の実績: 「ACU設定の最適化で月額30%削減」のような具体的な数値
- トラブルシューティング経験: スケーリングの遅延、接続数の上限問題等
- IaCでの構築経験: CDK/Terraformでの再現可能なインフラ構築
構築ハンズオン — CDK/Terraformでのデプロイ
VPC + Aurora Serverless v2の構成例
AWS CDK(TypeScript):
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as rds from 'aws-cdk-lib/aws-rds';
export class AuroraServerlessStack extends cdk.Stack {
constructor(scope: cdk.App, id: string) {
super(scope, id);
const vpc = new ec2.Vpc(this, 'Vpc', {
maxAzs: 3,
natGateways: 1,
});
const cluster = new rds.DatabaseCluster(this, 'AuroraCluster', {
engine: rds.DatabaseClusterEngine.auroraPostgres({
version: rds.AuroraPostgresEngineVersion.VER_16_4,
}),
vpc,
vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED },
serverlessV2MinCapacity: 0.5,
serverlessV2MaxCapacity: 16,
writer: rds.ClusterInstance.serverlessV2('writer'),
readers: [
rds.ClusterInstance.serverlessV2('reader', {
scaleWithWriter: true,
}),
],
storageEncrypted: true,
deletionProtection: true,
});
}
}
Terraform:
resource "aws_rds_cluster" "aurora_serverless" {
cluster_identifier = "my-aurora-serverless"
engine = "aurora-postgresql"
engine_mode = "provisioned"
engine_version = "16.4"
database_name = "mydb"
master_username = "admin"
manage_master_user_password = true
storage_encrypted = true
deletion_protection = true
vpc_security_group_ids = [aws_security_group.aurora.id]
db_subnet_group_name = aws_db_subnet_group.aurora.name
serverlessv2_scaling_configuration {
min_capacity = 0.5
max_capacity = 16.0
}
}
resource "aws_rds_cluster_instance" "writer" {
cluster_identifier = aws_rds_cluster.aurora_serverless.id
instance_class = "db.serverless"
engine = aws_rds_cluster.aurora_serverless.engine
engine_version = aws_rds_cluster.aurora_serverless.engine_version
}
トラブルシューティングと運用Tips
Aurora Serverless v2の運用で遭遇しやすい問題と対処法を紹介します。
問題1: スケーリングが追いつかない
- 原因: 急激なトラフィック増加に対してACU増加が間に合わない
- 対処: 最小ACUを上げてベースラインを確保する。予測可能なピーク前にはスケジュールでACUを事前に上げておく
問題2: 接続数エラー
- 原因: ACUに対して接続数が多すぎる
- 対処: RDS Proxyを導入して接続プーリングを行う。アプリ側のコネクションプール設定を見直す
問題3: コストが想定を超える
- 原因: 最大ACUまでスケールアウトが頻繁に発生
- 対処: Performance Insightsで重いクエリを特定し最適化。不要なインデックスの整理
問題4: フェイルオーバーが遅い
- 原因: リーダーインスタンスが存在しない
- 対処: リーダーを最低1台追加し、フェイルオーバー先を確保する
まとめ — サーバーレスDBの需要は今後も拡大
Aurora Serverless v2の重要ポイントを振り返ります。
- 自動スケーリング: ACU単位のきめ細かいスケーリングで、無駄なコストを削減
- 高可用性: マルチAZ、リードレプリカ対応でエンタープライズ要件にも対応
- 運用負荷の軽減: インスタンスサイズの手動調整が不要
- SES案件での需要: DB設計・運用スキルは常に高需要
サーバーレスデータベースの市場は今後も拡大が見込まれます。Aurora Serverless v2のスキルを身につけておくことは、SESエンジニアとしての市場価値を確実に高めます。
まずはAWS無料利用枠でServerless v2クラスターを構築し、ACUのスケーリング動作を体験してみることをおすすめします。
SES BASEでは、AWS関連のSES案件を多数掲載しています。
関連記事: