絶対に知っておくべきAuroraの話

はじめに

本稿では、Amazon Auroraについて記載します。AWSやRDSについて、まだあまり良く知らない方や、Auroraについての基礎知識を調べたい方などを読者として想定しています。

AuroraはAWS上で利用できるリレーショナルデータベースエンジンです。RDSというAWSの仮想データベースサービスで選択できるDBエンジンの1つで、MySQLやPostgreSQLと互換性を持ちつつ、それらと比べ高い処理能力を発揮します。

AuroraはAWSの各リージョンに存在する、アベイラビリティゾーン(データセンタ)通称AZを跨る、マルチAZによるクラスタ構成での運用をサポートしており、S3へのバックアップも可能であるなど、AWSの利用に特化したデータベースです。

Auroraは、RDSがフルマネージドのデータベースサービスである事から、パッチの適用やセットアップ、バックアップといった一連の手順を自動化する事で管理者の負担を軽減する事にも寄与します。

Auroraは、エンタープライズデータベースの高い性能、高いセキュリティ、高い可用性を持ちながら、オープンソースデータベースの使いやすさやコストパフォーマンスを両立しています。

Auroraの基礎知識

クラスターについて

クラスターは複数マシンのリソースを束ねて、1つの仮想的なマシンを構成する事です。
別々のAZ(アベイラビリティゾーン)に配置されたマシンでクラスターを構成すれば、1つのAZで障害が発生したとしても、他のAZのインスタンスにフェイルオーバーして、サービスダウンを防ぐ事が可能となります。

Auroraのクラスターは1つのプライマリと3つのAZに配置されたリードレプリカで構成され、リードレプリカは最大で15個まで追加可能です。また、RDSのパラメータグループはクラスタ全体に適用させるものと、各インスタンス個別のものが存在します。

プライマリはデータの読み書きを行い、リードレプリカはデータの読み込みだけ行います。Auroraは複数のリードレプリカで大量の読み込みリクエストが処理できるように最適化されています。

プライマリと各リードレプリカは基盤となるストレージ(クラスターボリューム)を共有している事から、プライマリへの書き込みによる更新が、各リードレプリカに反映されるまで1桁ミリ秒という極めて短い時間である為、遅延について心配する必要はありません。

互換性について

AuroraにはMySQL互換エディションとPostgreSQL互換エディションが存在します。

各エディションについてのAWS公式サイトによる記述の一部を要約し下記に記載します。

AuroraはPostgreSQLやMySQLと互換性を持つように設計されており、各DBエンジンを用いたアプリケーションや、ツールを修正なしで実行できる。

Auroraはワークロード用のSSD仮想ストレージレイヤーとデータベースエンジンを統合、ストレージへの書き込みを削減、ロックの競合を最小化、プロセススレッドの排除により、同様のハードウェア上の標準的なPostgreSQL9.6と比べ、最大3倍のスループットを実現。同じく、同様のハードウェア上の標準的なMySQLと比べ、最大5倍のスループットを実現。

既存のPostgreSQLやMySQLと比べてワークロードの同時実行数が非常に多い事を活かす為、アプリケーションの設計において、多数のクエリやトランザクションを同時実行するような実装を推奨。

オートスケーリング

Auroraは事前に定義したスケーリングポリシーにしたがって、リードレプリカの数を増減させるオートスケーリング機能をサポートしています。

PostgreSQL互換とMySQL互換の両エディションで利用でき、負荷が軽減されれば、自動でスケールインするので、最小限のコストで高いパフォーマンスを実現する事が出来ます。

Aurora の利用料金について

AuroraのRDSインスタンスを作成してから、終了または削除までの時間に応じて料金が請求されます。

料金はプライマリとリードレプリカの両方に発生するので注意しましょう。

AWS公式サイトでは、MySQL互換エディションとPostgreSQL互換バージョンの料金表が別々に記載されていますので、しっかり確認した上で利用するようにしてください。

2020年4月現在、無料枠の対象外になっています。

まとめ

高性能で使いやすい為、注目度の高いAuroraですが、残念ながら無料枠での利用が出来ません。学習用途でご利用の際には料金をしっかりと確認した上でご利用ください。

最後までご覧頂き、ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

検索サービスAmazon Kendraとは

次の記事

AWS IoT Core とは