見出し画像

【AWS】 RDSの解説

Amazon RDS(Relational Database Service)

クラウドベースのリレーショナルデータベースサービスで、データベースのセットアップ、バックアップ、ソフトウェアのパッチ適用などを自動化することで、データベース運用の複雑さを抑え、運用、スケーリングなどの手間を減らすことができる。

RDSに関する全般的な情報:https://docs.aws.amazon.com/rds/index.html


特徴

  1. スケーラビリティ: 需要に応じてコンピューティングリソースをスケールアップまたはスケールダウンすることが可能。

  2. 可用性と耐久性: マルチAZ(可用性ゾーン)配置を使用してデータベースを自動的にバックアップし、高い可用性と耐久性を提供。

  3. セキュリティ: データベースインスタンスをVPC(Virtual Private Cloud)内で実行することでネットワークアクセスを制御し、データを暗号化することが可能。

  4. 互換性: RDSは、MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Serverなどの一般的なデータベースエンジンをサポートしています。また、Amazon AuroraというAmazon自身が開発したデータベースエンジンも提供している。


DBエンジン

  1. Amazon Aurora
    Amazonが開発したMySQLとPostgreSQL互換のデータベースエンジン。従来のDBに比べて高速で、高いスケーラビリティ、可用性、耐久性を有し、自動修復機能やリアルタイムのデータベースクローニング機能など、独自の強力な機能を持っています。

  2. MySQL
    オープンソースで広く利用されているリレーショナルデータベースエンジン。ウェブアプリケーションのバックエンドとしてよく使用されている。

  3. PostgreSQL
    OSSのオブジェクトリレーショナルデータベースシステムで、JSON、空間、時間データをネイティブにサポート。また、ユーザー定義の関数や拡張をサポートするなど、拡張性が高いことでも知られている。

  4. MariaDB
    MySQLから派生したオープンソースのリレーショナルデータベースエンジンで、MySQLと互換性がある。一部の高度な機能を持ち、パフォーマンスと安定性の向上に重点を置いています。

  5. Oracle
    企業向けの大規模なアプリケーションで広く利用される商用のリレーショナルデータベースエンジン。堅牢でパワフルな機能と高いセキュリティを提供します。

  6. 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データベースへのアクセスを管理・ルーティングするフルマネージド型のデータベースプロキシ。
データベースとアプリケーションの間に位置し、アプリケーションからの接続を効率的に管理し、冗長性を提供し、可用性とスケーラビリティを向上させる。特に、接続プール、接続再利用、フェイルオーバー処理などを自動化する機能を持つため、アプリケーションのレジリエンスを大幅に向上させることが可能。







































よろしければサポートお願いします!よりいい情報を発信します。