Amazon Relational Database Service (Amazon RDS) とは

Amazon Relational Database Service (Amazon RDS) は、AWS クラウド でリレーショナルデータベースを簡単にセットアップし、運用し、スケーリングすることのできるウェブサービスである。業界スタンダードのリレーショナルデータベース向けに、費用対効果に優れたエクステンションを備え、一般的なデータベース管理タスクを管理する。

Amazon RDS の概要

Amazon RDS および Amazon EC2

Amazon RDS はマネージドデータベースサービスである。これは、ほとんどの管理タスクを担っている。Amazon RDSでは、面倒なマニュアル作業を排除することでアプリケーションとユーザーに集中することができる。ほとんどのデータベースデプロイでは、デフォルトの選択肢としてAmazon EC2 よりも Amazon RDSを推奨。

Amazon RDS は、フルマネージドでなないデータベースデプロイに比べて、次の特定の利点がある。

  • MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Server など既に使い慣れたデータベース製品を使用できる。
  • Amazon RDS では、バックアップ、ソフトウェアパッチ、自動的な障害検出、および復旧を管理する。
  • 自動バックアップをオンにするか、マニュアルで独自のバックアップスナップショットを作成できる。これらのバックアップを使用してデータベースを復元できる。Amazon RDS の復元は信頼性の高い効率的なプロセスである。
  • プライマリインスタンスと同期しているセカンダリインスタンスがあると、問題が発生したときにセカンダリインスタンスにフェイルオーバーできるので、高可用性を実現できる。また、リードレプリカを使用して、読み取りスケーリングを拡張できる。
  • データベースパッケージのセキュリティに加え、AWS Identity and Access Management (IAM) を使用してユーザーとアクセス許可を定義すると、RDS データベースにアクセスできるユーザーを制御可能。また、仮想プライベートクラウド (VPC) に配置すると、データベースを保護することもできる。

mazon RDS Custom for Oracle および Microsoft SQL Server

Amazon RDS Custom は、データベースとOSへのフルアクセスを提供する RDS 管理タイプである。

RDS Custom の制御機能を使用して、レガシーおよびパッケージビジネスアプリケーションのデータベース環境とOSにアクセスしてカスタマイズできる。一方、Amazon RDS はデータベース管理タスクとオペレーションを自動化する。

このデプロイモデルでは、アプリケーションをインストールし、アプリケーションに合わせて構成設定を変更することができる。同時に、プロビジョニング、スケーリング、アップグレード、バックアップなどのデータベース管理タスクをAWSにオフロードできる。Amazon RDS のデータベース管理の利点を、より高度な制御と柔軟性で活用できる。

DB インスタンス

DB インスタンスは AWS クラウド内の独立したデータベース環境である。Amazon RDS の基本的な構成要素は DB インスタンスである。

DB インスタンスには、ユーザーが作成した1つ以上のデータベースを含めることができる。DB インスタンスには、スタンドアロンデータベースインスタンスで使用するものと同じツールおよびアプリケーションを使用してアクセスすることができる。AWS Command Line Interface、Amazon RDS API、または AWS Management Consoleを使用して、DB インスタンスを作成および変更することができる。

DB エンジン

DB エンジンとは、DB インスタンスで実行される特定のリレーショナルデータベースソフトウェアである。Amazon RDS は、現在、以下のエンジンをサポートしている。

  • MySQL
  • MariaDB
  • PostgreSQL
  • Oracle
  • MS SQL Server

各 DB エンジンには、独自のサポートされている機能があり、DB エンジンの各バージョンに固有の機能が含まれている可能性がある。さらに、各 DB エンジンは、DB パラメータグループに一連のパラメータを保有し、これにより管理するデータベースの動作を制御する。

DB インスタンスクラス

DB インスタンスクラスによって DB インスタンスのコンピューティングとメモリの容量を決定する。DB インスタンスクラスは、DB インスタンスタイプとサイズの両方で構成される。インスタンスタイプごとに異なるコンピューティング、メモリ、ストレージ が提供される。例えば、db.m6g は AWS Graviton2 プロセッサを搭載した汎用 DB インスタンスタイプであるが、db.m6g.2xlarge は DB インスタンスクラスである。

DB インスタンスストレージ

Amazon EBS は、実行中のインスタンスにアタッチできる、堅牢なブロックレベルのストレージボリュームを提供する。DB インスタンスストレージには、次のタイプがある。

  • 汎用 (SSD)
  • プロビジョンド IOPS (PIOPS)
  • マグネティック

ストレージタイプは、パフォーマンス特性と価格に違いがある。データベースのニーズに応じてストレージのパフォーマンスとコストを調整できる。

各 DB インスタンスは、サポートするストレージタイプやデータベースエンジンによって最小/最大ストレージ要件が異なる。データベースの増加に対応できるように、十分なストレージを確保しておくことが重要。また、十分なストレージがあると、DB エンジンの機能がコンテンツやログエントリを書き込むスペースが確保される。

Amazon Virtual Private Cloud (Amazon VPC)

Amazon Virtual Private Cloud (Amazon VPC) サービスを使用して、virtual private cloud (VPC) 上の DB インスタンスを実行できる。VPC を使用する場合、仮想ネットワーキング環境を制御できる。独自の IP アドレスの範囲を選択し、サブネットを作成してルーティングおよびアクセス制御リストを設定できる。VPC で実行していてもいなくても、Amazon RDS の基本機能には違いはない。Amazon RDS では、バックアップ、ソフトウェアパッチ、自動的な障害検出、および復旧を管理する。VPC で DB インスタンスを実行するために、追加料金は不要。

Amazon RDS は Network Time Protocol (NTP) を使用して DB インスタンスの時刻を同期する。

AWS リージョンとアベイラビリティーゾーン

個別のアベイラビリティーゾーンでインスタンスを起動することにより、1 つの場所で発生した障害からアプリケーションを保護できる。

オプションで、マルチ AZ 配置と呼ばれる複数のアベイラビリティゾーンの DB インスタンスを実行できる。このオプションを選択すると、Amazon が 1 つまたは複数のセカンダリスタンバイ DB インスタンスを別のアベイラビリティーゾーンで自動的にプロビジョニングして管理する。プライマリ DB インスタンスは、アベイラビリティーゾーン間で各セカンダリ DB インスタンスにレプリケートされる。これは、データの冗長性およびフェイルオーバーサポートを提供し、I/O フリーズを排除して、システムのバックアップの際のレイテンシーのスパイクを最小限に抑えるのに役立つ。マルチ AZ DB クラスター配置では、セカンダリ DB インスタンスで読み込みトラフィックが誘導される場合もある。

セキュリティ

セキュリティグループは、DB インスタンスへのアクセスを制御する。制御するには、アクセスを許可する IP アドレスの範囲または Amazon EC2 インスタンスを指定する。

Amazon RDS DB インスタンスのモニタリング

DB インスタンスのパフォーマンスと動作状態を追跡する方法は複数ある。Amazon CloudWatch サービスを使用して、DB インスタンスのパフォーマンスとヘルス状態をモニタリングできる。CloudWatch のパフォーマンスチャートは、Amazon RDS コンソールに表示される。Amazon RDS イベントにサブスクライブすると、DB インスタンス、DB スナップショット、DB パラメータグループ、DB セキュリティグループで変更が発生したときに通知を受け取ることができる。