AWSクラウド・インフラ・開発基盤

【Udemy AWS 14 days】Day5の知識整理:Amazon RDS

AWS

Amazon RDSとは?

リレーショナルデータベース(RDB)の基礎

リレーショナルデータベース(RDB)は、データをから構成されるテーブルで表現するデータの集合体です。RDBは複数のテーブルで構成され、テーブルの各行のデータは主キー (primary key)という識別子を使って一意に定められます。また、外部キー (foreign key)を使用することで、テーブル間の関連付けが行われます。RDBの構築や問い合わせには、SQLという言語が使用されます。 このリレーショナルデータベースを管理するシステムが、リレーショナルデータベース管理システム (RDBMS)です。RDBMSには、Oracle Database、IBM DB2、SQL Serverなどの商用製品や、MySQL、PostgreSQLなどのオープンソース製品が知られています。

Amazon RDS

Amazon Relational Database Service (Amazon RDS)は、AWSが提供するマネージドなリレーショナルデータベースサービスです。Amazon RDSは、クラウドでリレーショナルデータベースを簡単にセットアップし、運用し、拡張できるウェブサービスであり、業界標準のリレーショナルデータベース向けに、費用対効果に優れた拡張機能を備え、一般的なデータベース管理タスクを管理します。

Amazon RDSの基本的な構成要素はDBインスタンスです。DBインスタンスはAWSクラウド内で実行される独立したデータベース環境であり、ユーザーが作成した1つまたは複数のデータベースを含めることができます。

RDSのメリット

従来のオンプレミス環境でデータベースを運用する場合、サーバーの調達、OSやデータベースソフトウェアのインストール、バックアップ、監視など、多くの手間と専門知識が必要でした。RDSを利用することで、これらの運用タスクをAWSが代行してくれるため、ユーザーはアプリケーション開発に集中できます。

RDSの特徴

フルマネージドサービスとは?

RDSが提供する「フルマネージド」とは、データベースの管理をAWSが代行することを意味します。オンプレミスでデータベースを構築する際に必要となる、サーバーの購入、OSやDBMSのインストール、定期的なOSやDBMSのパッチ適用、DBのバックアップといった面倒な手動プロセスをAWSが担当することで、利用者のデータベース運用負荷が軽減されます。

AWS RDSの責任共有モデルでは、RDSはDBインスタンスとDBクラスターのソフトウェアコンポーネントとインフラストラクチャをホストする責任がありますが、クエリチューニング(SQLクエリを調整してパフォーマンスを向上させるプロセス)は利用者の責任となります。

対応しているDBエンジン(MySQL、PostgreSQL、Auroraなど)

RDSは、以下の主要なリレーショナルデータベースエンジンに対応しています。

データベース名種類特徴・メリットライセンス・費用互換性・補足
Amazon Aurora (MySQL/PostgreSQL互換)マネージドクラウドRDBMSMySQL比で最大5倍、PostgreSQL比で最大3倍のスループットを持つ。高性能かつ高可用性。MySQL/PostgreSQLと完全な互換性あり。AWSのフルマネージドサービス。使用量に応じた課金制MySQLやPostgreSQLの既存アプリケーション変更なしで利用可能
MySQLオープンソースRDBMSWebアプリケーション、OLTP、CMS、モバイルアプリなど幅広く利用。ACID準拠。スケーラブルでリプリケーション対応。高速で信頼性が高い。オープンソース(無料)多くのクラウドやツールで広くサポート
PostgreSQLオープンソースRDBMS高度な機能(拡張性、SQL標準準拠、複雑なクエリ対応)を持ち、大規模・複雑な用途に適す。ACID準拠。オープンソース(無料)Amazon AuroraのPostgreSQL互換版がある
MariaDBオープンソースRDBMSMySQLの派生。MySQL互換。オープンソースで拡張性あり。商用対応も容易。オープンソース(無料)MySQLからの置換可能
SQL Server商用RDBMSMicrosoft製。Windowsとの親和性高くエンタープライズ向け機能充実。ライセンス費用が必要Windows環境中心だがLinux版もある
Oracle商用RDBMSエンタープライズ向け高機能。大規模データベースに強い。高い信頼性とセキュリティ。高額なライセンス費用オンプレミス・クラウド双方で利用可能

高可用性とスケーラビリティ(Multi-AZ構成、リードレプリカ)

Multi-AZ構成

Multi-AZ(マルチアベイラビリティーゾーン)配置を使用することで、DBインスタンスの高可用性フェイルオーバーサポートが提供されます。

•稼働しているプライマリDBインスタンス(Master)とは異なるアベイラビリティーゾーン (AZ)同期スタンバイレプリカ (Slave)が自動的にプロビジョニングされ、維持されます。

•プライマリインスタンスの更新は、スタンバイインスタンスに同期的にレプリケートされます。

プライマリインスタンスに障害が発生した際、自動的にスタンバイがアクティブに切り替わり(自動フェイルオーバー)、データベース操作を迅速に再開できます。

•Multi-AZ DBインスタンスのデプロイにおけるスタンバイレプリカは、通常、読み取りトラフィックを処理しません。

•ただし、マルチ AZ DB クラスターデプロイを選択した場合、同じAWSリージョン内の3つの別々のAZに1つのライターDBインスタンスと2つのリーダーDBインスタンスが配置され、すべてのDBインスタンスが読み取りトラフィックを処理できます。

リードレプリカ

リードレプリカは、ソースDBインスタンスの読み取り専用コピーです。

• アプリケーションからの読み込みクエリをリードレプリカにルーティングすることで、プライマリDBインスタンス(Master)への負荷を軽減し、読み取り負荷の高い処理に対してスケールアウトを行うことができます。

• リードレプリカは、DBエンジンの組み込みレプリケーション機能を使用し、プライマリDBインスタンスからの変更を非同期にコピーします。

• リードレプリカは、読み込みが多いデータベースの処理能力の拡張、ビジネスレポーティング、または災害対策ソリューションとして利用できます。

• リードレプリカは、プライマリDBインスタンスとは異なるAWSリージョンに作成することも可能で、災害対策機能の向上や、ユーザーに近いリージョンへの読み取り操作のスケールに役立ちます(クロスリージョンリードレプリカ)

RDSの構築手順

DBインスタンスは、AWS Management Console、AWS CLI、またはSDKを使用して作成できます。RDSの構築手順は、Udemy講座「手を動かしながら2週間で学ぶ AWS 基本から応用まで」にて、ハンズオンの中でわかりやすく解説されており、受講をおすすめします。

Udemyのリンクはこちら:https://www.udemy.com/course/aws-14days

運用と管理のポイント

バックアップと復元の設定

Amazon RDSは、バックアップ、自動的な障害検出、および復旧を管理します。

バックアップ

自動バックアップをオンにしたり、マニュアルで独自のバックアップスナップショットを作成したりできます。

バックアップウィンドウ: 自動バックアップが実行される時間帯を、1日のうちで書き込みI/Oオペレーション(IOPS)が低くなる時間帯に設定することが推奨されます。

復元

バックアップを使用してデータベースを復元できます。Amazon RDSの復元は信頼性が高く効率的なプロセスです。例えば、DBスナップショットからDBインスタンスを復元するチュートリアルが提供されています。

モニタリング・アラート設定

Amazon RDSの信頼性、可用性、パフォーマンスを維持するためには、モニタリングが不可欠です。

Amazon CloudWatch: DBインスタンスのパフォーマンスとヘルス状態をモニタリングするために利用されます。Amazon RDSはアクティブな各データベースのメトリクスを1分ごとにCloudWatchに自動送信します。

CloudWatch アラーム: 特定の期間にわたってAmazon RDSのメトリクスを監視し、設定したしきい値に基づきアクションを実行できます(例:ReplicaLagがしきい値を超えたときにSNSメッセージを送信)。

Performance Insights: データベースのパフォーマンスを明確にし、分析しやすくするための機能です。Performance Insightsダッシュボードを使用してDBインスタンスのデータベースロードを視覚化できます。

具体的なメトリクスの項目はAWSの公式サイトを参照ください。

リードレプリカによる読み込み負荷分散

リードレプリカは、プライマリDBインスタンスの読み取り専用コピーとして機能し、アプリケーションからのクエリをルーティングすることで、プライマリインスタンスの負荷を軽減し、読み取り負荷の高いワークロードに対応するためにスケールアウトを可能にします。

仕組み: プライマリDBインスタンスの更新は、DBエンジンの非同期レプリケーション機能を使用してリードレプリカにコピーされます。

ユースケース: 読み込みが多いデータベースの処理能力を拡張したり、本稼働DBインスタンスではなくリードレプリカに対してビジネスレポーティングクエリを実行したりする際に適しています。

利用時の主な注意点

コスト構造: 従量課金制ですが、DBインスタンスを一時的に停止している間も、プロビジョニング済みストレージ(プロビジョンド IOPSを含む)やバックアップストレージに対しては課金が発生します。

パフォーマンス責任: データベースのインフラ管理はAWSの責任ですが、SQLクエリのチューニング(クエリチューニング)は利用者の責任となります。

まとめ

Amazon RDSは、リレーショナルデータベースの運用管理タスク(サーバー調達、パッチ適用、バックアップなど)をAWSが代行するフルマネージドサービスであるため、利用者はアプリケーション開発に集中できます。また、Multi-AZやリードレプリカにより、高可用性スケーラビリティを容易に実現できます。

コメント

タイトルとURLをコピーしました