AWS再入門ブログリレー Amazon RDS編

当エントリは弊社コンサルティング部による『AWS 再入門ブログリレー 2019』の20日目のエントリです。

このブログリレーの企画は、 普段AWSサービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。

AWSをこれから学ぼう!という方にとっては文字通りの入門記事として、 またすでにAWSを活用されている方にとってもAWSサービスの再発見や2019年のサービスアップデートの キャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。

では、さっそくいってみましょう。20日目のテーマは『Amazon RDS』です。

目次

リレーショナルデータベースとは

Amazon Relational Database Service(RDS) を紹介する前に、 そもそもリレーショナルデータベースとは? を簡単に説明します。

リレーショナルデータベース (relational database: RDB ) とはデータの集合体で、 から構成される テーブル でデータを表現します。

RDBは複数のテーブルを構成します。 テーブルの各行のデータは 主キー (primary key) という識別子を使って一意に定めます。

RDBは 外部キー (foreign key) を使うことで テーブル間の関連付け を行います。

RDBの構築や問合わせは SQL という言語を使って行います。

RDBMS

上述したリレーショナルデータベースの管理システムを リレーショナルデータベース管理システム (relational database management system: RDBMS) といいます。

商用の RDBMSとして Oracle Database やIBM DB2, SQL Serverなど、 オープンソースのRDBMSとして MySQLや PostgreSQLなどが知られています。

Amazon RDSとは

Amazon Rerational Database Service (RDS) は AWSが提供する マネージドなリレーショナルデータベースサービスです。

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

RDSの特徴

フルマネージド

オンプレでデータベースを構築する場合を考えてみます。 まずはサーバーを購入して、OS・DBMSのインストールなどを行うでしょう。 また定期的なOS・DBMSパッチ適用や、DBのバックアップなどのメンテナンス作業がつきまとってきます。

RDSでは、そのようなデータベース管理をマネージド化している(AWSが対応してくれる) ため、 利用者のデータベース運用負荷が軽減されます。

それ以外にも 自動バックアップや定期的なスナップショット取得、CloudWatchによる監視など 運用負荷軽減に役立つ機能が多く存在します。

高可用性

Multi-AZ 配置を使用することで、DBインスタンスの高可用性・フェイルオーバーサポートを 提供しています。

稼働しているDB (Master) とは異なる アベイラビリティーゾーン(AZ) に同期スタンバイレプリカ (Slave) が配置されます。 Masterは Slaveに対して同期レプリケーションを行います。 Masterの障害時には、自動的に Slaveがアクティブに切り替わります。

この Multi-AZ構成をマネジメントコンソールから容易に作成することができます。

パフォーマンスの向上

リードレプリカ と呼ばれる読み取り専用のDBインスタンスを作成することができます。

読み込みのクエリをリードレプリカで対応することにより、ソースDBインスタンス (Master) への負荷を減らす ことができ、読み込み負荷の高い処理に対してスケールアウトを行うことができます。

RDSのDBエンジン

RDS のDBエンジンとして、今までオンプレの DBMSでも使われてきた MySQL, PostgreSQL, MariaDB, Oracle, SQL Server が選択できますが、 Amazon がクラウド向けに構築した Aurora も選択することができます。

Amazon Aurora

Amazon Aurora(Aurora) は Amazonが構築したリレーショナルデータベースエンジンです。

標準的な MySQL と比べて最大で 5 倍のスループット、 標準的な PostgreSQL と比べて最大で 3 倍のスループットを発揮します。

Amazon Aurora は MySQL や PostgreSQL と互換性を持つように設計されているため、 既存のアプリケーションやツールを変更することなく実行できます。 — 引用: Amazon Aurora 製品の詳細

高可用性を上げるための Multi-AZを先程挙げましたが、 Auroraは自動的に 3つのアベイラビリティーゾーンに対して 6つのデータのコピーを保存 します。 MySQL等の他データベースエンジンの場合は最大 2つのアベイラビリティーゾーンでした。 Auroraは より高い可用性を実現できます。

さらに、パフォーマンス向上で挙げたリードレプリカについても Auroraはメリットがあります。 MySQLの場合 リードレプリカの最大は 5個までですが、Auroraは最大で 15個のリードレプリカ を作成できます。 非同期レプリケーションのレイテンシも 秒単位(MySQL) と違い ミリ秒単位(Aurora) です。

最近のアップデート

最近の嬉しいアップデートとして Storage Auto Scaling のサポート があります。

RDS Storage Auto Scaling では、現在使用中のストレージ容量をモニタリングし続け、 使用量が限界に近づくと自動でストレージ容量のスケールアップが (ダウンタイム無しで) 行われます

Storage Auto Scaling によって、未使用分のストレージを手軽に減らすことができます。 コストの最適化・運用の手間の削減などのメリットを受けることができますね。

合わせて読みたい

★AWSが RDSのチュートリアル を公開しています。 すべてAWS無料利用枠内でできるので試してみてはいかがでしょうか。

★2015年の再入門RDSです。 RDSのユースケースやデータベースエンジン毎の特定の機能などが記述されているので とても勉強になります。

AWS再入門 Amazon RDS編

★さきほどの 最近のアップデート で説明した RDS Storage Auto Scaling の解説・やってみた記事です。

【DBのディスクサイズ管理が簡単に】RDSのストレージがストレージの自動スケーリングをサポートしました!

おわりに

以上、Amazon RDS再入門でした。 リレーショナルデータベースの歴史は長いので、 これからクラウド移行を考えてらっしゃる方は RDSに触れる機会が多いのではないでしょうか。 そういった方々のちょっとでも助けになればと思っています。

明日 (7/30) は森田の 「Amazon DynamoDB」編 です。お楽しみに!!

参考