Amazon Aurora
Aurora のユーザーガイド

Amazon Aurora とは

Amazon Aurora (Aurora) は完全マネージド型のリレーショナルデータベースエンジンで、MySQL および PostgreSQL と互換性があります。MySQL と PostgreSQL が、ハイエンドの商用データベースのスピードおよび信頼性と、オープンソースデータベースのシンプルさとコスト効率を併せ持っていることはすでにご存じでしょう。既存の MySQL および PostgreSQL データベースで現在使用しているコード、ツール、アプリケーションを Aurora でも使用できます。Aurora では、既存のアプリケーションのほとんどを変更することなく、ほんの少しのワークロードで MySQL のスループットの 5 倍、PostgreSQL のスループットの 3 倍を実現します。

Aurora には、高性能のストレージサブシステムが含まれています。MySQL と PostgreSQL との互換性のあるデータベースエンジンは、その高速分散ストレージを利用するようにカスタマイズされています。基本ストレージは、必要に応じて最大 64 テラバイトまで自動的に拡張されます。Aurora はデータベースのクラスター化とレプリケーションの自動化と標準化も行います。これは通常、データベース設定と管理の最も困難な側面です。

Aurora は、マネージド型データベースサービスである Amazon Relational Database Service (Amazon RDS) の一部です。Amazon RDS は、クラウド上でリレーショナルデータベースを簡単に設定、オペレーション、スケーリングできるウェブサービスです。Amazon RDS にまだ精通していない場合、「Amazon Relational Database Service ユーザーガイド」を参照してください。

以下では、Aurora と Amazon RDS で利用可能な標準の MySQL エンジンと PostgreSQL エンジンとの関係を示しています。

  • Amazon RDS を通じて新しいデータベースサーバーを設定するときは、DB エンジンオプションとして Aurora を選択します。

  • Aurora では、使い慣れた Amazon Relational Database Service (Amazon RDS) 機能を管理に利用できます。Aurora は Amazon RDS AWS マネジメントコンソール インターフェイス、AWS CLI コマンド、および API オペレーションを使用して、プロビジョニング、パッチ適用、バックアップ、復旧、障害検出、修復などのルーチンデータベースタスクを処理します。

  • Aurora 管理オペレーションには、通常、個々のデータベースインスタンスではなく、レプリケーションによって同期化されたデータベースサーバーのクラスター全体が含まれます自動クラスタリング、レプリケーション、およびストレージの割り当てにより、MySQL と PostgreSQL の最大規模のデプロイを簡単に、コスト効率よく設定、操作、スケーリングすることができます。

  • スナップショットの作成とリストア、または一方向レプリケーションの設定により、Amazon RDS for MySQL と Amazon RDS for PostgreSQL から Aurora にデータを持ち込むことができます。押しボタン式の移行ツールを使用すると、既存の Amazon RDS for MySQL および Amazon RDS for PostgreSQL アプリケーションを Aurora に変換できます。

Amazon Aurora を使用する前に、「Amazon Aurora の環境をセットアップする」のステップを完了してから、「Amazon Aurora DB クラスター」で Aurora の概念と機能を確認してください。

インスタンスエンドポイントの使用

日常的なオペレーションでインスタンスエンドポイントを主に使用するのは、Aurora クラスター内の特定のインスタンスに影響している容量やパフォーマンスの問題を診断する場合です。特定のインスタンスに接続しているときに、そのステータス変数、メトリクスなどを調査できます。これを行うことで、クラスターの他のインスタンスとは異なり、この特定のインスタンスだけに起きている現象を判断できます。

高度なユースケースでは、一部の DB インスタンスを他のインスタンスとは異なるように設定することもできます。この場合は、インスタンスエンドポイントを使用して他のインスタンスと比べて、より小さいインスタンス、より大きいインスタンス、または特性が異なるインスタンスに直接接続します。また、この特定の DB インスタンスがプライマリインスタンスに昇格される順位が最後になるように、フェイルオーバーの優先度を設定します。このような場合は、インスタンスエンドポイントではなく、カスタムエンドポイントを使用することをお勧めします。カスタムエンドポイントを使用すると、クラスターに追加する DB インスタンスが増えたときの接続の管理と高可用性の確保が容易になります。

Aurora クラスターの DB インスタンスごとに個別に組み込まれているインスタンスエンドポイントの名前や他の属性は Aurora で管理されます。ユーザーが、この種のエンドポイントを作成、削除、または変更することはできません。

Aurora エンドポイントでの高可用性の使用

高可用性が重要であるクラスターでは、ライターエンドポイントを読み取り/書き込み接続に使用し、リーダーエンドポイントを読み取り専用接続に使用します。これらの種類の接続では、DB インスタンスのフェイルオーバーが、インスタンスエンドポイントよりも効率的に管理されます。インスタンスエンドポイントは DB クラスターの特定の DB インスタンスに接続するため、この DB インスタンスが使用不能になった場合に別のエンドポイントを選択するロジックがアプリケーションに必要になります。

DB クラスターのプライマリ DB インスタンスが失敗した場合、Aurora は新しいプライマリ DB インスタンスに自動的にフェイルオーバーします。そのために、既存の Aurora レプリカが新しいプライマリ DB インスタンスに昇格されるか、新しいプライマリ DB インスタンスが作成されます。フェイルオーバーが発生した場合、クラスターエンドポイントを使用して新しく昇格させたプライマリインスタンスや新規作成したプライマリ DB インスタンスに接続するか、読み取りエンドポイントを使用して DB クラスター内のいずれかの Aurora レプリカに接続できます。フェイルオーバーの際に、Aurora レプリカが新しいプライマリ DB インスタンスに昇格されると、読み取りエンドポイントは接続を DB クラスターの新しいプライマリ DB インスタンスに短時間だけ振り向ける場合があります。

インスタンスエンドポイントへの接続を管理するように独自のアプリケーションロジックを設計する場合は、DB クラスター内の使用可能な DB インスタンスの結果セットを手動またはプログラムで検出できます。次に、フェイルオーバー後のインスタンスクラスを確認し、適切なインスタンスエンドポイントに接続できます。

フェイルオーバーについての詳細は、「Aurora DB クラスターの耐障害性」を参照してください。