RDS — マネージドリレーショナル DB

概要

Amazon RDS (Relational Database Service) は PostgreSQL / MySQL / MariaDB / Oracle / SQL Server / Db2 を AWS 上でマネージドに動かすサービス。 バックアップ、パッチ適用、Multi-AZ レプリケーション、Read Replica、暗号化、モニタリングをマネージドで提供してくれます。 アプリ側は普通に DB クライアントから繋ぐだけ、運用は AWS コンソール / IaC で完結。

RDB が必要な業務系 / トランザクション系のシステムでまず選ばれるサービス。 似たサービスに Aurora があり、互換 API でより高性能・高可用な選択肢として併記されることが多いです。

主な機能

Aurora との比較

観点RDSAurora
互換性純正エンジンそのままMySQL / PostgreSQL 互換 (微妙な差あり)
性能標準MySQL の最大 5 倍 / PostgreSQL の最大 3 倍
可用性Multi-AZ で 1 レプリカ3 AZ × 6 コピーをストレージ層で自動分散
Read Replica最大 15 個最大 15 個 + 全レプリカ ms 級フェイルオーバー
料金安いRDS の 1.2〜1.5 倍
Serverless無しv2 で本格利用可(自動スケール)

使うべきパターン

使わない方が良いパターン

Terraform 最小サンプル(PostgreSQL Multi-AZ)

resource "aws_db_subnet_group" "main" {
  name       = "main"
  subnet_ids = var.private_subnet_ids
}

resource "aws_security_group" "rds" {
  name   = "rds-sg"
  vpc_id = var.vpc_id

  ingress {
    from_port       = 5432
    to_port         = 5432
    protocol        = "tcp"
    security_groups = [var.app_sg_id]   # アプリ SG だけ許可
  }
}

resource "aws_db_instance" "main" {
  identifier             = "myapp-prod"
  engine                 = "postgres"
  engine_version         = "16.3"
  instance_class         = "db.t4g.small"   # ARM 系は安い
  allocated_storage      = 20
  max_allocated_storage  = 100              # Storage Auto-Scaling 上限
  storage_encrypted      = true
  username               = "appuser"
  manage_master_user_password = true        # KMS + Secrets Manager で自動管理

  multi_az               = true
  db_subnet_group_name   = aws_db_subnet_group.main.name
  vpc_security_group_ids = [aws_security_group.rds.id]

  backup_retention_period = 7
  deletion_protection     = true
  skip_final_snapshot     = false
}

用語集

Multi-AZ
同期レプリカを別 AZ に配置する高可用性構成。プライマリ障害時に自動フェイルオーバー。
Read Replica
非同期レプリカで読み取り処理をスケールする仕組み。エンジンにより最大 15 個。
Aurora
RDS と同じ API で互換、ストレージ層を独自実装した高性能 / 高可用版。料金は 1.2〜1.5 倍。
パラメータグループ
DB エンジン設定(max_connections 等)の集合。Terraform で管理可能。
オプショングループ
DB エンジン拡張機能(Oracle の OEM など)の有効化設定。
Performance Insights
クエリ単位で待機イベントや CPU 使用率を可視化する分析機能。
Storage Auto-Scaling
使用量がしきい値を超えると自動でディスクを拡張する仕組み。
Aurora Serverless v2
Aurora の自動スケール版。0.5〜128 ACU の範囲で秒単位にスケール。