【AWS】 RDSの解説
Amazon RDS(Relational Database Service)
クラウドベースのリレーショナルデータベースサービスで、データベースのセットアップ、バックアップ、ソフトウェアのパッチ適用などを自動化することで、データベース運用の複雑さを抑え、運用、スケーリングなどの手間を減らすことができる。
RDSに関する全般的な情報:https://docs.aws.amazon.com/rds/index.html
特徴
スケーラビリティ: 需要に応じてコンピューティングリソースをスケールアップまたはスケールダウンすることが可能。
可用性と耐久性: マルチAZ(可用性ゾーン)配置を使用してデータベースを自動的にバックアップし、高い可用性と耐久性を提供。
セキュリティ: データベースインスタンスをVPC(Virtual Private Cloud)内で実行することでネットワークアクセスを制御し、データを暗号化することが可能。
互換性: RDSは、MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Serverなどの一般的なデータベースエンジンをサポートしています。また、Amazon AuroraというAmazon自身が開発したデータベースエンジンも提供している。
DBエンジン
Amazon Aurora
Amazonが開発したMySQLとPostgreSQL互換のデータベースエンジン。従来のDBに比べて高速で、高いスケーラビリティ、可用性、耐久性を有し、自動修復機能やリアルタイムのデータベースクローニング機能など、独自の強力な機能を持っています。MySQL
オープンソースで広く利用されているリレーショナルデータベースエンジン。ウェブアプリケーションのバックエンドとしてよく使用されている。PostgreSQL
OSSのオブジェクトリレーショナルデータベースシステムで、JSON、空間、時間データをネイティブにサポート。また、ユーザー定義の関数や拡張をサポートするなど、拡張性が高いことでも知られている。MariaDB
MySQLから派生したオープンソースのリレーショナルデータベースエンジンで、MySQLと互換性がある。一部の高度な機能を持ち、パフォーマンスと安定性の向上に重点を置いています。Oracle
企業向けの大規模なアプリケーションで広く利用される商用のリレーショナルデータベースエンジン。堅牢でパワフルな機能と高いセキュリティを提供します。Microsoft SQL Server
Microsoftが開発した商用のリレーショナルデータベースエンジンで、特にWindowsベースのアプリケーションでよく使われます。複数のエディション(Express、Web、Standard、Enterprise)があり、ニーズに応じて選択できる。
サブネットグループ
データベースを作成するためにDBサブネットグループを使用し、Amazon RDSリソースが作成されるAmazon VPC内のサブネット(ネットワークの一部)の集合のこと。DBインスタンスを作成するときに指定する。
DBサブネットグループには、RDSがDBインスタンスを配置できる1つ以上のサブネットが含まれている必要があり、RDS DBインスタンスは高可用性の構成にすることができる。
パラメータグループ
DBエンジンの動作を制御するための一連のパラメータとその値が含まれる。例えば、MySQL の場合、"max_connections" や "innodb_buffer_pool_size" などの設定をパラメータグループで管理する。
各データベースエンジンのバージョンに対してデフォルトのパラメータグループが提供されるが、読み取り専用で編集することはできません。カスタムの設定を適用したい場合は、新しいパラメータグループを作成する必要がある。
また、パラメータグループはデータベースエンジンとエンジンのバージョンに依存し、MySQL 5.7 用のパラメータグループは MySQL 8.0 には使用できない。
DBのインスタンスやクラスターごとに設定することもでき、パラメータグループを変更するとほとんどの場合で再起動が必要になるが、パラメータ値が全く変わらない別のパラメータグループを割り当てるときや、動的パラメータのみが変更になる場合は再起動の必要がなく、次回の再起動で割り当てられることになる。
公式ドキュメント
Working with Parameter Groups - Amazon RDS
オプショングループ
1つまたは複数のDBインスタンスに関連付けることができ、RDSのデータベースエンジンが提供する特定の機能やサードパーティのソフトウェアといった追加のオプションを管理し、それらをデータベースインスタンスに関連付けるために使われる。作成されたリージョン内のみで使用可能。
具体例として、Amazon RDS for MySQLでは、MySQLのオプションとしてMEMCACHED、MariaDB Audit Plugin、MyRocks、またはAWS Glue Data Catalogをインスタンスに追加するためにオプショングループを使用する。
オプショングループの変更は、即座に関連付けられているデータベースインスタンスに反映されるが、一部のオプションはDBインスタンスの再起動を必要とすることもある。
バックアップとリストア
自動バックアップ
自動バックアップはデフォルトで有効になっており、選択した保持期間(最大35日)中にデータベースのデイリースナップショットを作成します。また、データベースの更新が行われる度にトランザクションログも保存される。
手動スナップショット
ユーザーが任意のタイミングで作成できるバックアップ。これらのスナップショットは、ユーザーが明示的に削除するまで保持されま、長期的なバックアップ戦略の一部として、またはデータベースを別のリージョンやアカウントにコピーするために使用できる。
リストア
自動バックアップや手動スナップショットから新しいDBインスタンスをリストアすることが可能で、データベースを特定の時点の状態に戻したり、新しい環境でデータベースをテストしたりすることができる。
DBの構成
リーダーインスタンス(Primary Instance)
直接操作するDBインスタンスで、読み取りと書き込みの両方のトランザクションを処理する。すべての変更(新しいデータ、更新、削除など)は、まずこのリーダーインスタンスで行われる。
リーダーインスタンスに障害が発生した場合、自動的にフェイルオーバーを行い、スタンバイインスタンスを新たなリーダーインスタンスに昇格させる。これにより、アプリケーションのダウンタイムを最小限に抑えることができる。
さらに、リードレプリカ(読み取り専用のレプリカ)を作成することも可能で、読み取りトラフィックの負荷を分散させることができ、データベースのパフォーマンスと可用性を向上させることができる。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Replication.html
リードレプリカ(Read Replicas)
リーダー(主)データベースインスタンスから非同期にレプリケーションされる一つまたは複数のスタンバイ複製品のこと。Webアプリケーションなど、読み取りクエリが多い場合には、リードレプリカを使用してリーダーインスタンスの読み取り負荷を軽減することができる。
異なるリージョンにリードレプリカを作成することも可能で、地理的冗長性を提供し、リージョン全体の障害からの保護やグローバルな読み取りトラフィックのスケーリングをおこなう。
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.htmlクロスリージョンレプリカ
一つのリージョンから別のリージョンにデータベースを非同期にレプリケートする機能。
データを別のリージョンに複製することで、地域全体の障害からデータを保護することができ、リージョン間でのデータ複製により、主要リージョンで障害が発生した場合でも、DR計画の一部として迅速にフェイルオーバーを行うことが可能。
データベースをユーザーの近くに配置することで、読み取りパフォーマンスとアプリケーションのレイテンシを改善することもできる。
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Replication.html
暗号化
DBインスタンスを作成する際にAWS Key Management Service (AWS KMS) による暗号化を有効にすることができます。
AWS KMSを使用して暗号化を有効にすると、DBのインスタンスとスナップショットが自動的に暗号化されます。この暗号化はストレージレベルで行われ、保存されているデータ、自動的に作成されるバックアップ、スナップショット、レプリカすべてをカバーします。
また、SSL/TLSを用いてデータベースへの接続を暗号化することも可能です。
RDS Proxy
Amazon RDSデータベースへのアクセスを管理・ルーティングするフルマネージド型のデータベースプロキシ。
データベースとアプリケーションの間に位置し、アプリケーションからの接続を効率的に管理し、冗長性を提供し、可用性とスケーラビリティを向上させる。特に、接続プール、接続再利用、フェイルオーバー処理などを自動化する機能を持つため、アプリケーションのレジリエンスを大幅に向上させることが可能。
よろしければサポートお願いします!よりいい情報を発信します。