はじめに
この記事はAWS SAA試験勉強のための、Amazon RDSに関する知識のまとめです。
Amazon RDSとは
Amazon RDS(Amazon Relational Database Service)はAWS上で提供しているリレーショナルデータベースです。オンプレミスでデータベースサーバを構築する際に必要となるサーバの購入・設定、OSのインストールなどの煩雑な作業をすることなく、利用契約後すぐにデータベース構築が可能です。
DBインスタンス
DBインスタンスとはRDSで作成するデータベースサーバーのことです。
リレーショナルデータベースのセットアップ、 運用、拡張を容易にします。
パッチ当てはAWS側が実施します。
セキュリティ
暗号化
Amazon RDSの暗号化はオプション設定となっており、DBインスタンスを起動する際にユーザー側で暗号化を有効化する必要があります。
暗号化されているデータベースから生成されるスナップショットは自動的に暗号化されています。
アクセス制御
-
EC2インスタンスなどのAWSリソースはIAM ユーザーまたはIAMロールの認証情報と認証トークンを使用して、RDS DB インスタンスまたはクラスターに接続することができます。
-
RDSではインスタンスにSSHすることができません。その代わりにパラメータグループという機能を利用してチューニングを行います。
-
RDSはファイルシステムへのアクセスがサポートされていないため、ファイルシステムへのアクセスに基づく設定や自社管理を実現するためには、EC2インスタンスにデータベースをインストールしてデータベースサーバーをカスタムで構築する必要があります。
Amazon RDSリードレプリカ
Amazon RDS Read Replicaであり、Lead Replicaではありません。
すなわちリードレプリカとは読み取り専用のDBのことです。 アクセス数が多くDBに読み取り負荷が起きている場合などは、リードレプリカを構築することでプライマリデータベースへの負荷を分散することができます。
マルチAZ構成との違いは、リードレプリカへのデータ更新は非同期で行われる点です。リードレプリカは非同期的にレプリケートされる個別のデータベースインスタンスであるため、 レプリケーションデータが遅れることがあり、最新のトランザクションのいくつかが表示できない可能性があります。これをレプリケーションラグといいます。
別リージョンに起動可能なRDSの唯一のグローバル機能です。
リードレプリカはRDS for MySQL, MariaDB, PostgreSQL, Oracle, Auroraで利用できます。
AWS CLIを使用してRDSのリードレプリカを読み取る
aws rds describe-db-instances --db-instance-identifier <リードレプリカの識別子>
インスタンスタイプ
EC2のインスタンスタイプの前にdb2をつけます。
db.m5d
db.m5d は高性能なデータベースアプリケーションに適したインスタンスタイプであり、メモリとストレージが重視されるワークロードに最適です。
低レイテンシー、非常に高いランダム I/O パフォーマンス、高いシーケンシャル読み取りスループットに向けて最適化された汎用インスタンスクラスで、このDBインスタンスにこのクラスを利用することでランダムI/O遅延が発生しないパフォーマンスを発揮できます。
マルチAZ配置機能
RDSのプライマリデータベースが応答しない場合に自動フェールオーバーを実行する機能。
フェイルオーバーが実行されると、Amazon RDSはDBインスタンスのCNAMEレコードをプライマリーからセカンダリーに切り替え、セカンダリーを新しいプライマリに昇格させます。
RDSのマルチAZ構成はバックアップからRDSを複製する必要はありません。
Amazon RDS MySQLをマルチAZ配置にしても、セカンダリーDBはアクティブに利用できないため、読み取りトラフィックと書き込みトラフィックを分離することができません。
RDSにオラクルデータベースタイプのインスタンスを起動して、マルチAZを構成すると、データベースサーバーに障害が発生した場合でもWebサイトの可用性を高めることが可能です。
マルチAZ DBクラスター
Amazon RDSのマルチAZ DBクラスターは、マルチAZ構成の新しい高可用性オプションです。従来のマルチAZ構成とは異なり、3つのアベイラビリティゾーンにまたがって配置されるため、可用性がさらに強化されています。
拡張モニタリング
Amazon RDSのDBインスタンス上のさまざまなプロセスまたはスレッドにおけるメモリ状況を常時モニタリングするためには、RDSの拡張モニタリングを有効化することが必要です。
RDS Proxy
アプリケーションとRDSデータベースの間の仲介役として機能します。
Lambda関数とRDS Proxyを連携させると、LambdaはDBインスタンスのエンドポイントに直接接続するのではなく、RDS Proxyを介してデータベースとの接続を実施し、コネクション過負荷の課題を軽減できます。
DBインスタンスの停止
DBインスタンスの停止には、次のような制約事項があります。
- リードレプリカが含まれているか、リードレプリカであるDBインスタンスは停止できません。
- マルチAZ設定のAmazon RDS for SQL Server DBインスタンスは停止できません。
- 停止されたDBインスタンスを変更することはできません。
シャーディング
シャーディングはデータベース内の複数のテーブルにデータを分割するための一般的な概念です。リクエスト増加などで単一のマスターDBの運用で限界がある場合に、 一定のルールに従いデータを複数のDBに振り分けることでアクセスを分散させることができます。
パラメータグループとオプショングループ
Amazon RDSにおいてタイムゾーンや最大接続数、監査ログの有効化などデータベースの設定を変更したい場合は、「DBパラメータグループ(DBクラスターパラメータグループ)」または「オプショングループ」で定義します。