RDS エンジンとインスタンスクラス
MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Aurora を比較し、ワークロードに適したインスタンスクラスを選択します。
「RDS エンジンとインスタンスクラス」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
Amazon RDS のデータベースエンジン入門
Amazon RDS は 6 つのデータベースエンジンをサポートしています。MySQL、PostgreSQL、MariaDB、Oracle、Microsoft SQL Server、そしてAmazon Auroraです。各エンジンは、すでにご存じのオープンソースまたは商用データベースをフルマネージドで提供するものです。AWS がパッチ適用、バックアップ、フェイルオーバーを処理するため、アプリケーションロジックに集中できます。
適切なエンジンの選択は、既存のアプリケーション要件、ライセンスコスト、各エンジンが提供する機能によって決まります。Aurora は、パフォーマンスと可用性を重視して構築された AWS のクラウドネイティブな選択肢です。
RDS の MySQL と PostgreSQL
MySQL は世界で最も広く利用されているオープンソースのリレーショナルデータベースであり、Web アプリケーションや CMS に適しています。PostgreSQL は高度な SQL 準拠、強力な JSONB サポート、豊富な拡張機能エコシステムを提供するため、分析や地理空間ワークロードで広く利用されています。
RDS の両エンジンは、自動バックアップ、Multi-AZ デプロイ、Read Replica をサポートしています。PostgreSQL の Read Replica はリージョン間に配置できます。一方、MySQL は Aurora MySQL を使用する場合、最大 15 個のリージョン間レプリカをサポートします。
# Creating an RDS MySQL instance via CLI
aws rds create-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username admin \
--master-user-password MyPass123! \
--allocated-storage 20MariaDB とそのユースケース
MariaDB はコミュニティ主導で開発された MySQL のフォークで、MySQL クライアントとワイヤプロトコルレベルで完全な互換性があります。追加のストレージエンジン、一部のワークロードでの優れたパフォーマンス、プロプライエタリ機能を持たないオープンな開発モデルを提供します。
RDS では、Oracle の MySQL ライセンスを避けたい場合や、コミュニティフォークを優先する場合に、MariaDB を MySQL のドロップイン置換として利用できます。MySQL と同じく、自動バックアップ、Multi-AZ、Read Replica の機能をサポートしています。
RDS の Oracle と SQL Server
RDS のOracle Database は、License Included (LI) と Bring Your Own License (BYOL) の両方のモデルをサポートしています。LI では Oracle SE2 ライセンスが時間単位の料金に含まれます。一方、BYOL では既存の Enterprise Edition ライセンスを使用して、パーティショニングや Advanced Security などの機能を利用できます。
RDS のMicrosoft SQL Server も同様に、LI エディション (Express、Web、Standard、Enterprise) と BYOL を提供します。両エンジンは Synchronous Mirroring による Multi-AZ をサポートしていますが、オープンソースエンジンと同じ方法で Read Replica をサポートするわけではありません。
Amazon Aurora:クラウドネイティブなエンジン
Amazon Aurora は、MySQL と PostgreSQL の両方と互換性があるクラウドネイティブなリレーショナルデータベースです。Aurora は、3 つの Availability Zone にまたがってデータを 6 方向に自動レプリケーションする分散ストレージレイヤーを使用することで、同じハードウェア上でMySQL の最大 5 倍、PostgreSQL の最大 3 倍のスループットを実現します。
Aurora のストレージは 10 GB 単位で最大 128 TiB まで自動的に拡張されるため、手動でのストレージプロビジョニングが不要です。コンピューティングとストレージが分離されているため、Aurora Serverless ではキャパシティを自動的に増減できます。
RDS インスタンスクラスファミリー
RDS のインスタンスクラスは EC2 と同じ命名規則に従いますが、ファミリーの文字だけではなく、db. が先頭に付きます。主なファミリーは次のとおりです。
- db.t — バースト可能なパフォーマンス。開発やテストに適しており、コスト効率に優れています (例: db.t3.micro、db.t4g.small)
- db.m — 汎用用途。CPU とメモリのバランスに優れています (例: db.m6g.large)
- db.r — 大規模なキャッシュやインメモリテーブル向けに最適化されたメモリ重視型です (例: db.r6g.xlarge)
- db.x — SAP ワークロードを含む Oracle と SQL Server 向けの超大容量メモリ型です
開発には db.t、一般的な本番環境には db.m、大きなワーキングセットを持つデータベースには db.r を選択してください。
適切なインスタンスクラスの選択
RDS のインスタンスクラスを選択するには、ワークロードのCPU 使用率、メモリ使用量、IOPS 要件、ネットワーク帯域幅を計測して分析する必要があります。AWS Compute Optimizer と RDS Performance Insights ツールを使用すると、現在のインスタンスが過剰プロビジョニングか、またはプロビジョニング不足かを特定できます。
一般的には、プロトタイプ作成時に db.t3 から始め、負荷が安定したら db.m6g に移行し、より大きなバッファプールによってクエリが改善される段階で db.r6g に移行します。Graviton2 ベースのインスタンス (db.m6g、db.r6g) は通常、x86 相当のインスタンスより最大 35% 優れた価格性能比を提供します。
# List available DB instance classes for MySQL 8.0
aws rds describe-orderable-db-instance-options \
--engine mysql \
--engine-version 8.0 \
--query 'OrderableDBInstanceOptions[].DBInstanceClass' \
--output text | tr '\t' '\n' | sort -u | head -20RDS のストレージオプション
RDS には、内部的には EBS ボリュームに対応する 3 種類のストレージタイプがあります。
- gp2 / gp3 — 汎用 SSD。gp3 では、ストレージを追加購入せずに IOPS とスループットを個別にプロビジョニングできます
- io1 / io2 — 一貫したサブミリ秒の応答時間を必要とする、レイテンシー重視の OLTP データベース向けのプロビジョンド IOPS SSD
- st1 — スループット最適化 HDD。特定のエンジンとテストワークロードでのみ利用できます
ほとんどの本番 RDS デプロイでは、追加料金なしで 3,000 IOPS を提供し、ストレージサイズとは独立して拡張できるgp3が推奨されるデフォルトです。
RDS のスケーリング:垂直方向と水平方向
RDS は 2 つのスケーリング方式をサポートしています。垂直スケーリング (インスタンスクラスの変更) では、Multi-AZ が有効でない限り、短時間のダウンタイムが必要です。Multi-AZ を使用すると、サイズ変更時にフェイルオーバーが行われるため、ダウンタイムをほぼゼロにできます。変更は次回のメンテナンスウィンドウにスケジュールすることも、すぐに適用することもできます。
水平スケーリングは読み取り専用です。Read Replica を追加して、SELECT クエリをプライマリから分散させます。Read Replica は非同期レプリケーションを使用するため、アプリケーションは小さなレプリケーションラグを許容する必要があります。
# Modify an RDS instance class (apply immediately)
aws rds modify-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.m6g.large \
--apply-immediatelyAurora とコミュニティエンジン:主な違い
Aurora とコミュニティ版の MySQL/PostgreSQL のどちらを選ぶかを判断する際は、次のトレードオフを考慮してください。
- Aurora: より高いスループット、自動的な 6 方向レプリケーション、高速なフェイルオーバー (約 30 秒)、手動のストレージ管理が不要、時間単位のコストは高い
- MySQL/PostgreSQL: 低コスト、より幅広いコミュニティ拡張機能、BYOL オプション、使い慣れた運用ツール
試験問題では、高可用性、ストレージの自動拡張、またはオープンソースと同等の価格で商用データベースに近いパフォーマンスが重視されている場合、Aurora が適しています。コストの最小化やオンプレミス環境との機能の同等性が優先される場合は、コミュニティエンジンが適しています。
RDS のエンジンバージョンアップグレード
RDS では、マイナーバージョンアップグレード (例: MySQL 8.0.32 → 8.0.36) とメジャーバージョンアップグレード (例: MySQL 5.7 → 8.0) が分けられています。--auto-minor-version-upgrade を有効にすると、メンテナンスウィンドウ中にマイナーアップグレードを自動適用するよう設定できます。メジャーアップグレードは手動で行い、アプリケーションの互換性テストが必要になる場合があります。
メジャーバージョンアップグレードは、必ず最初にステージング環境でテストしてください。アップグレード前に DB スナップショットを取得しておけば、問題が発生した場合にロールバックできます。Aurora クラスターでは、影響を最小限に抑えたインプレースのメジャーバージョンアップグレードをサポートしています。
# Enable auto minor version upgrade
aws rds modify-db-instance \
--db-instance-identifier mydb \
--auto-minor-version-upgrade \
--apply-immediately理解度チェック
このレッスンで学んだ AWS Solutions Architect (SAA-C03) の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、RDS は 6 つのエンジンをサポートしていること (MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Aurora)、インスタンスクラスはワークロードの特性に対応していること (開発やテストには db.t、汎用用途には db.m、メモリ負荷の高い用途には db.r)、そしてAurora はコミュニティエンジンと比較して、より高いスループットとストレージの自動スケーリングを提供することを学びました。次は、高可用性を実現する Multi-AZ デプロイと自動バックアップについて学びます。
よくある質問
「RDS エンジンとインスタンスクラス」レッスンは無料ですか?
はい。「RDS エンジンとインスタンスクラス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「RDS エンジンとインスタンスクラス」で何を学びますか?
MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Aurora を比較し、ワークロードに適したインスタンスクラスを選択します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「RDS エンジンとインスタンスクラス」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- RDS エンジンとインスタンスクラス
- マルチ AZ と自動バックアップ
- 読み取りスケーリングのためのリードレプリカ
- RDS のセキュリティ:暗号化とパラメータグループ