Amazon RDS 運用管理・コスト最適化ガイド

Amazon Relational Database Service (Amazon RDS) の効果的な運用、管理、およびコスト最適化は、クラウドデータベース戦略において不可欠な要素です。AWSは、これらの側面を効率的に支援するための幅広い機能とツールを提供しています。本記事では、RDSの運用管理とコスト最適化について詳しく解説します。

RDS の運用と管理

Amazon RDS は、AWS クラウドでリレーショナルデータベースを簡単にセットアップし、運用し、スケーリングできるウェブサービスです。DB インスタンスは AWS クラウド内の独立したデータベース環境であり、Amazon RDS の基本的な構成要素となります。

DB インスタンスの作成と接続

作成方法

DB インスタンスの作成は、以下の方法で簡単に行えます:

  • AWS Command Line Interface (AWS CLI)
  • Amazon RDS API
  • AWS Management Console

設定項目

インスタンス作成時には、以下の詳細な設定を指定します:

  • ストレージ: 容量とタイプの選択
  • メモリ: DB インスタンスクラスによる制御
  • データベースエンジンとバージョン: 使用するDB エンジンの選択
  • ネットワーク構成: VPC とサブネットの設定
  • セキュリティ: セキュリティグループとアクセス制御
  • メンテナンス期間: システム更新のタイミング

簡易作成オプション

簡易作成 (Easy Create)」オプションを利用すると、推奨されるベストプラクティスの設定が自動的に適用されます:

  • SQL Server や Oracle: ストレージの暗号化がデフォルトで有効
  • MariaDB、MySQL、PostgreSQL でも利用可能

接続方法

DB インスタンスにはネットワークアドレスであるエンドポイントが提供され、アプリケーションはこのエンドポイントを使用して接続します。認証方法は以下の通りです:

  • マスターユーザーアカウントの認証情報
  • IAM データベース認証

DB インスタンスクラスとストレージの管理

DB インスタンスクラス

DB インスタンスのコンピューティングとメモリの容量を決定する主要なタイプ:

タイプ説明用途
汎用 (db.m*)バランスの取れた性能一般的なワークロード
メモリ最適化 (db.z*, db.x*, db.r*)高メモリ容量メモリ集約型アプリケーション
コンピューティング最適化 (db.c*)高CPU性能計算集約型ワークロード
バースト可能パフォーマンス (db.t*)ベースライン+バースト性能開発/テスト環境、低〜中程度のワークロード
Optimized Reads読み取り最適化読み取り集約型ワークロード

: db.m7g は AWS Graviton3 プロセッサを搭載した汎用 DB インスタンスクラスです。

DB インスタンスストレージ

Amazon RDS はデータベースとログに Amazon Elastic Block Store (Amazon EBS) ボリュームを使用します。

汎用 SSD (gp3)
  • 特徴: コスト効果が高く、ほとんどのデータベースワークロードに適している
  • 性能: ストレージ容量に関係なく IOPS とスループットをカスタマイズ可能
  • ベースライン: 3000 IOPS と 125 MiB/秒のベースラインパフォーマンス
  • スケーリング: 特定のストレージサイズを超えるとパフォーマンスが向上
プロビジョンド IOPS SSD (PIOPS)
  • 特徴: 低レイテンシーと一貫したスループット
  • 用途: I/O 集約型ワークロード、特に本稼働環境
  • メリット: 予測可能なパフォーマンス
ストレージ管理の注意点
  • ストレージ容量は増加のみ可能(減少は不可)
  • ストレージの自動スケーリングを有効化可能
    • 利用可能な空き領域が割り当てストレージの10%未満が5分以上継続時に自動スケールアップ
    • 磁気ストレージでは使用不可
専用ログボリューム (DLV)
  • 機能: トランザクションログを別のストレージボリュームに分離
  • 効果: 書き込みパフォーマンスの向上
  • 対応: PIOPS ストレージでサポート

モニタリングと監査

Amazon CloudWatch

  • 機能: DB インスタンスのパフォーマンスとヘルス状態に関するメトリクス自動収集
  • メトリクス例: CPU 使用率、IOPS、レプリカラグ
  • アラーム: 異常を検知して通知

Amazon RDS Performance Insights

  • 機能: データベースの負荷を視覚化
  • 効果: パフォーマンスボトルネックや問題のあるクエリの特定と分析

拡張モニタリング

  • 機能: オペレーティングシステム (OS) レベルの詳細なメトリクス収集
  • 効果: OS 関連の問題の特定

データベースアクティビティストリーム

  • 対象: Oracle および SQL Server
  • 機能: 詳細なデータベースアクティビティ(監査ログなど)をリアルタイムでストリーミング

AWS CloudTrail

  • 機能: Amazon RDS に対するすべての API コールを記録
  • 効果: 監査証跡の提供(誰が、いつ、どのリソースに対して、何を実行したか)

GuardDuty RDS Protection

  • 機能: データベース内の脅威を継続的にモニタリング
  • 効果: 異常なアクセスパターンや潜在的なセキュリティリスクの検出

RDS イベント通知

  • 機能: DB インスタンスに関する重要なイベント通知
  • : セキュリティパッチの利用可能性など

データ保護(バックアップと復元)

バックアップ種類

Amazon RDS は、データの耐久性と回復性を確保するために2つのバックアップ方法を提供します:

  1. 自動バックアップ

    • DB インスタンスが削除された後も指定された保持期間内であれば保持
    • ポイントインタイムリカバリを可能にする
    • 書き込み I/O が少ない時間帯に設定することを推奨
  2. 手動スナップショット

    • ユーザーが任意のタイミングで作成
    • テスト用の開発環境の初期設定に有用
    • 異なる AWS アカウント間でのデータ共有に利用

クロスリージョン自動バックアップ

  • 災害復旧戦略の一環として利用可能
  • 地理的に分散したバックアップの保持

高可用性と耐久性

マルチ AZ 配置

  • 機能: 異なるアベイラビリティーゾーンに同期スタンバイレプリカを自動プロビジョニング
  • 効果:
    • 高可用性の実現
    • データの冗長性
    • 自動フェイルオーバーサポート
    • I/O フリーズの排除
    • システムバックアップ中のレイテンシースパイクの最小化
  • フェイルオーバー時間: 通常 60~120 秒

マルチ AZ DB クラスター

  • 構成: ライター DB インスタンス 1 つとリーダー DB インスタンス 2 つが 3 つのアベイラビリティーゾーンに配置
  • 特徴: すべての DB インスタンスが読み取りトラフィックを処理可能

リードレプリカ

  • 機能: ソース DB インスタンスの非同期コピー
  • 用途:
    • 読み取り集約型ワークロードのスケーリング
    • 災害復旧シナリオ
  • 制限: 読み取り専用接続のみ許可
  • クロスリージョンリードレプリカ: 異なる AWS リージョンにレプリカを配置し、地域的な障害からの回復力を向上

バージョンアップグレードとメンテナンス

バージョン管理の重要性

セキュリティ、パフォーマンス、コンプライアンスを維持するため、データベースエンジンのバージョンを最新の状態に保つことが推奨されます。

自動アップグレード

  • マイナーバージョンの自動アップグレードを有効化
  • パッチ適用が容易になる

メンテナンスウィンドウ

  • 機能: 基盤となるハードウェア、OS、データベースエンジンのバージョン更新
  • スケジュール: 週単位の時間間隔
  • 注意点: 一部のメンテナンスでは、DB インスタンスが短時間オフライン

ブルー/グリーンデプロイ

  • 対象: MySQL、MariaDB、PostgreSQL
  • 効果: データベース更新において、必要なダウンタイムを最小限に抑制

パラメータグループとオプショングループ

DB パラメータグループ

  • 機能: DB インスタンスの動作を制御する一連のパラメータを保持
  • カスタマイズ: ユーザーはカスタムパラメータグループを作成し、パラメータ値を変更可能
  • 制限: デフォルトのパラメータグループは変更不可

オプショングループ

  • 機能: 特定のカスタムオプションを DB インスタンスに追加
  • : MariaDB 監査プラグインなど

停止と再起動

停止機能

  • 利用可能期間: 最大連続 7 日間まで断続的に停止可能
  • 用途: 一時的なテストや開発作業
  • 課金: 停止中もプロビジョニング済みストレージやバックアップストレージに対して課金

再起動後の保持情報

  • DNS エンドポイント
  • DB パラメータグループ
  • VPC セキュリティグループ
  • DB オプショングループ

タグ付け

機能

  • RDS リソースにタグを付与
  • リソースの分類(アプリケーション、プロジェクト、部門、環境など)

活用例

  • リソース管理タスクの自動化: 特定の環境にタグ付けされたインスタンスの自動 DB スナップショット設定
  • アクセス制御: IAM ポリシー内で RDS リソースへのアクセス制御
  • コスト配分タグ: AWS 請求書を整理

Amazon RDS Custom

概要

Amazon RDS Custom は、データベース管理タスクとオペレーションを自動化しつつ、データベース環境や OS にアクセスしてカスタマイズできるサービスです。

特徴

  • レガシー、カスタム、パッケージのアプリケーション要件を満たすカスタマイズが可能
  • 責任共有モデルが適用され、AWS と利用者が責任を分担

コスト最適化

Amazon RDS の料金は、6つの主要コンポーネントに基づいて請求されます:

  1. DB インスタンス時間
  2. ストレージ容量
  3. I/O リクエスト(磁気ストレージのみ)
  4. プロビジョンド IOPS(SSD ストレージ)
  5. バックアップストレージ
  6. データ転送

料金計算の基本

  • 表示: 1 時間単位で表示
  • 請求: 秒単位で計算
  • 最小課金: 10 分未満の場合は 10 分間の料金が発生

コンピューティング購入オプションの活用

オンデマンドインスタンス

  • 特徴: 使用した DB インスタンス時間に対して時間単位で支払い
  • 課金開始: DB インスタンスが利用可能になった時点から

リザーブド DB インスタンス (RI)

  • 期間: 1 年間または 3 年間の予約
  • 割引: オンデマンド料金と比較して大幅な割引
  • 概念: 物理インスタンスではなく、請求上の割引
RI の適用条件
  • AWS リージョン
  • DB エンジン
  • DB インスタンスタイプ
  • エディション
  • ライセンスタイプ

注意: DB エンジンのバージョンは一致する必要がありません。

支払いオプション
  1. 全前払い: 期間の開始時に全額を支払い
  2. 一部前払い: 一部を前払いし、残りを割引時間料金で支払い
  3. 前払いなし: 前払いなしで割引時間料金を支払い
サイズ柔軟性
  • 機能: 同じ AWS リージョンおよびデータベースエンジンの DB インスタンスクラスタイプ内であれば、DB インスタンスクラスのすべてのサイズに自動適用
  • : db.r5.large の RI は db.r5.xlarge にも適用
  • 制限: 異なるクラスタイプ(例:db.r6g.large)には適用されない
  • 非対応: RDS for SQL Server および RDS for Oracle ライセンス込み
RI のその他の特徴
  • 設定間の移動: マルチ AZ およびシングル AZ の両方の設定に適用
  • 価格適用範囲: 時間単位のオンデマンドインスタンス使用のみ割引(ストレージ、バックアップ、I/O コストは割引対象外
  • キャンセル: RI はキャンセル不可、ただし割引対象の DB インスタンスは削除可能

ストレージオプションと階層の選択

ストレージタイプの特性比較

ストレージタイプ特徴適用場面コスト効率
汎用 SSD (gp2/gp3)バランスの取れた性能一般的なワークロード
プロビジョンド IOPS SSD高性能、低レイテンシーI/O 集約型ワークロード

gp3 ストレージの活用

  • 柔軟性: IOPS とスループットを個別にプロビジョニング
  • 最適化: 必要最小限のパフォーマンスをプロビジョニングしてコストを最適化

データ転送コストの理解

課金対象

  • DB インスタンスとインターネット間のデータ転送
  • AWS リージョン間のデータ転送

非課金対象

  • 同一 AWS リージョン内のソース DB インスタンスとリードレプリカ間のデータ転送

注意事項

  • クロスリージョンレプリケーション: データ転送コストが発生

コスト管理ツールの活用

AWS Cost Explorer

  • 機能: AWS のコストと使用状況を分析し、可視化
  • 効果: コスト傾向の把握と分析

AWS Budgets

  • 機能: カスタム予算を設定
  • アラート: コストがしきい値を超えた場合に通知
  • 効果: プロアクティブなコスト管理

AWS Cost and Usage Report

  • 機能: AWS のコストと使用状況に関する最も包括的なデータを提供
  • 効果: 詳細な分析が可能

AWS コスト配分タグ

  • 機能: RDS リソースにタグを適用してコストを整理
  • 効果: 請求書の分類と特定のプロジェクトや部門のコスト追跡

実践的な運用管理のベストプラクティス

1. 監視戦略の構築

  • CloudWatch メトリクスの定期的な確認
  • Performance Insightsによる継続的なパフォーマンス分析
  • カスタムアラームの設定による異常の早期発見

2. バックアップ戦略の最適化

  • 自動バックアップの保持期間の適切な設定
  • クロスリージョンバックアップによる災害復旧準備
  • 定期的なリストア テストの実施

3. セキュリティ管理

  • IAM データベース認証の活用
  • データベースアクティビティストリームによる監査
  • GuardDuty RDS Protectionによる脅威検出

4. パフォーマンス最適化

  • 適切なDB インスタンスクラスの選択
  • ストレージタイプの最適化
  • リードレプリカによる読み取り性能の向上

5. コスト最適化戦略

  • リザーブドインスタンスの活用
  • 使用パターンの分析による適切なインスタンスサイズの選択
  • 不要なリソースの定期的な見直し

まとめ

Amazon RDS の効果的な運用、管理、およびコスト最適化は、以下の要素を適切に組み合わせることで実現できます:

運用・管理の要点

  • 自動化された管理機能の最大活用
  • 継続的な監視によるプロアクティブな運用
  • 適切なバックアップ戦略によるデータ保護
  • 高可用性構成による事業継続性の確保

コスト最適化の要点

  • リザーブドインスタンスによる大幅な割引活用
  • 適切なストレージタイプの選択
  • コスト管理ツールによる継続的な最適化
  • タグ付けによる詳細なコスト追跡

これらの機能とツールを適切に組み合わせることで、AWS 上でリレーショナルデータベースを効率的かつ費用対効果の高い方法で運用することが可能になります。

参考リンク


関連記事: Amazon RDS の基本ガイド | Amazon RDS の可用性とスケーラビリティ | Amazon RDS のセキュリティとコンプライアンス