データベース構成、バックアップ、フェイルオーバー - AWSクラウドでのウェブアプリケーションのホスティング

データベース構成、バックアップ、フェイルオーバー

多くのウェブアプリケーションには、通常はリレーショナルまたは非リレーショナルデータベース形式で、何らかの永続性が含まれます。AWS では、リレーショナルデータベースサービスと非リレーショナルデータベースサービスの両方を提供しています。また、EC2 インスタンスで独自のデータベースソフトウェアをデプロイできます。次の表に、これらのオプションの概要を示します。詳細はこのセクションで説明します。

表 1 - リレーショナルデータベースソリューションと非リレーショナルデータベースソリューション

リレーショナルデータベースソリューション NoSQL ソリューション
マネージドデータベースサービス Amazon RDS for MySQLOracleSQL ServerMariaDBPostgreSQLAmazon Aurora Amazon DynamoDBAmazon KeyspacesAmazon NeptuneAmazon QLDBAmazon Timestream
セルフマネージド Amazon EC2 インスタンス上でのリレーショナルデータベース管理システム (DBMS、database management system) のホスティング EC2 インスタンス上での非リレーショナルデータベースソリューションのホスティング

Amazon RDS

Amazon Relational Database Service (Amazon RDS) では、使い慣れた MySQL、PostgreSQL、Oracle、Microsoft SQL Server データベースエンジンの機能を引き続き利用できます。既に使用しているコード、アプリケーション、ツールを、Amazon RDS で使用できます。Amazon RDS では、データベースソフトウェアに自動的にパッチを当て、データベースをバックアップし、ユーザーが定義した保持期間、バックアップを保存します。また、ポイントインタイムリカバリもサポートします。1 回の API コールで、お客様のリレーショナルデータベースインスタンスに関連するコンピューティングリソースまたはストレージ容量をスケールできるという柔軟性が得られます。

Amazon RDS マルチ AZ 配置により、データベースの可用性が向上し、予期しない停止からデータベースが保護されます。Amazon RDS リードレプリカは、データベースの読み取り専用のレプリカを提供するため、読み取りの多いデータベースワークロードに単一のデータベースデプロイの容量が対応できない場合に、スケールアウトできます。AWS のすべてのサービスと同様に、先行投資は必要なく、お支払いいただくのは使用したリソース分のみです。

Amazon EC2 インスタンス上でのリレーショナルデータベース管理システム (RDBMS、relational database management system) のホスティング

マネージド型 Amazon RDS サービスに加えて、お好みの RDBMS (MySQL、Oracle、SQL Server、DB2 など) を EC2 インスタンスにインストールし、ご自身で管理できます。Amazon EC2 上でデータベースをホストする AWS のお客様は、読み取り専用コピーのミラリング、常時対応のパッシブスレーブのログシッピングなど、さまざまなプライマリ/スタンバイとレプリケーションモデルをうまく使用しています。

Amazon EC2 で独自のデータベースソフトウェアを直接管理している場合、耐障害があり永続的なストレージの可用性も考える必要があります。このため、Amazon EC2 で実行されているデータベースは、ネットワーク接続ストレージに似た Amazon Elastic Block Store (Amazon EBS) ボリュームを使用することをお勧めします。

データベースを実行する EC2 インスタンスでは、データベースのすべてのデータとログを EBS ボリュームに配置する必要があります。これらは、データベースのホストに障害が発生した場合でも引き続き利用できます。この設定では、ホストに障害が発生した場合に新しい EC2 インスタンスを開始でき、既存の EBS ボリュームを新しいインスタンスに添付できる単純なフェイルオーバーシナリオに対して使用できます。その後、データベースは中断したところから再開できます。

EBS ボリュームは、アベイラビリティーゾーン内で自動的に冗長性を提供します。1 つの EBS ボリュームのパフォーマンスが、データベースニーズに対して十分でない場合、ボリュームをストライピングしてデータベースの 1 秒あたりの入出力オペレーション (IOPS) パフォーマンスを向上させることができます。

ワークロードの要求が厳しい場合は、EBS プロビジョンド IOPS を使用して、必要な IOPS を指定することもできます。Amazon RDS を使用する場合、サービスが独自のストレージを管理するため、お客様はデータの管理に集中できます。

非リレーショナルデータベース

AWS では、リレーショナルデータベースのサポートに加えて、マネージド型の非リレーショナルデータベースも多数提供しています。

  • Amazon DynamoDB は、フルマネージド型の NoSQL データベースサービスであり、高速で予測可能なパフォーマンスとシームレスなスケーラビリティが特長です。AWS Management Consoleまたは DynamoDB API を使用すると、ダウンタイムやパフォーマンス低下を発生させずに容量をスケールできます。DynamoDB では、分散データベースの運用とスケーリングに伴う管理作業を AWS に任せることができるため、ハードウェアのプロビジョニング、設定と構成、レプリケーション、ソフトウェアパッチ適用、クラスターのスケーリングなどを気にする必要はなくなります。

  • Amazon DocumentDB (MongoDB 互換) は、大規模な JSON データ管理のためのデータベースサービスで、AWS 上で完全に管理実行されており、高い耐久性を備えたエンタープライズ対応のサービスとなっています。

  • Amazon Keyspaces (Apache Cassandra 用) は、スケーラブルで可用性の高い、Apache Cassandra 互換のマネージドデータベースサービスです。Amazon Keyspaces では、現在使用しているのと同じ Cassandra アプリケーションコードとデベロッパーツールを使用して、AWS で Cassandra ワークロードを実行できます。

  • Amazon Neptune は、高速かつ信頼性の高いフルマネージドグラフデータベースサービスです。このサービスでは、高度に接続されたデータセットと連携するアプリケーションを簡単に構築および実行できます。Amazon Neptune の核となるのは、数十億のリレーションシップの保存とミリ秒台のレイテンシーでのグラフのクエリに最適化された、専用の高パフォーマンスグラフデータベースエンジンです。

  • Amazon Quantum Ledger Database (Amazon QLDB) (QLDB) は、信頼された機関によって所有されている透過的でイミュータブル、かつ暗号的に検証可能なトランザクションログを提供する、フルマネージド型台帳データベースです。QLDB を使用すると、アプリケーションデータの全変更を追跡し、完全で検証可能な変更履歴を長期間維持できます。

  • Amazon Timestream は、IoT および運用アプリケーションに適した、高速かつスケーラブルなサーバーレス時系列データベースサービスです。リレーショナルデータベースの最大 1,000 倍の速度と 10 分の 1 のコストで、1 日あたり数兆ものイベントを、簡単に保存し、分析できます。

さらに、Amazon EC2 を使用して、使用している他の非リレーショナルデータベーステクノロジーをホストすることもできます。