AWSのAuroraとは
AWSのAurora(Amazon Aurora)とは、AWSが提供するデータベースサービスの1つです。リレーショナルデータベースのサービスであり、商用データベースの持つ可用性と性能、そしてオープンソースの持つシンプルで安価なメリットを併せ持ちます。
Amazon AuroraはMySQLとPostgreSQLとの完全な互換性があり、クラウドへの移行を促進します。
【参考】:Amazon Aurora 【参考】:Amazon Aurora とは
Amazon Auroraの特徴
Auroraの特徴は、いくつか挙げられます。
1つ目は、高いパフォーマンスを発揮できることです。AWSによると、同等レベルのハードウェアにおいて標準的なMySQLとの比較で最大5倍、標準的なPostgreSQLとの比較で最大3倍のスループットが得られると公表されています。
2つ目は、高いスケーラビリティです。サーバーレス設定やオートスケーリングにより、容量拡張やスケールダウンに対応可能です。
3つ目は耐障害性です。AWSの3つのアベイラビリティゾーンにわたり、レプリケートされます。ストレージの書き込みや読み込みに影響を与えずに、データコピーの損失を処理したり、自己修復したりします。負荷分散のため、更新用マスターと参照用リードレプリカを使い分けし、性能向上も行われます。
【参考】:Amazon Aurora の特徴 優れたパフォーマンスとスケーラビリティ
そもそもRDBとは
RDBとは、リレーショナルデータベース(Relational DataBase)の頭文字をとったもので表形式のデータを扱うデータベースを表します。複数の表形式のデータから必要なデータを抽出したり、更新したりします。
RDBはデータに一貫性があり、最も利用されているデータベースの種類です。商用データベース、オープンソースともに多数のRDBが提供されます。
一般的なRDBMSとAuroraの違い
RDBを管理するRDBMSは、すべての要素を1つのエンジンにまとめた構成をとっています。Auroraはクラウド環境に最適化しており、スケーラビリティや可用性、耐久性の観点から全体をデザインしています。コンピュート部分とストレージ部分を個別のエンジンとして分離する設計を行っています。
このことで、AuroraはMySQLとPostgreSQLとの完全互換インターフェースを提供することができるようになり、性能・可能性・耐障害性を向上しました。
AuroraとRDSの違い
RDSとは「Amazon Relational Database Service」の略で、AWSのデータベースサービスです。マネージド型のRDBをウェブサービスで提供しています。AuroraとRDSの違いですが、いくつか挙げられます。
サービスの位置付けとしては、AuroraはRDSの一部として提供されます。RDSでサポートされるDBエンジンは、多くの種類を利用可能です。Auroraの他、MySQL・PostgreSQL・MariaDB・Oracle・SQL Serverがサポートされます。
RDSはマネージド型でありユーザーの利用環境をサービス管理してくれます。機能・性能・耐障害性の面で見ると、AuroraはRDSで提供されるDBエンジンとして利用され、その特長が活かされた利用が可能です。
Auroraは、クラウド利用を想定してデザインされており、高いパフォーマンスとスケーラビリティが提供されます。耐障害性の点では、Auroraは6重化されたDBインスタンスにより障害に強く、ディスク故障もRDSよりも強化されています。
料金は、高性能で耐障害性が高いことで、Auroraの方が高い傾向があります。選べるインスタンスタイプに違いがあります。Auroraの場合も、移行コストや管理費用なども総合的に踏まえると、全体のコスト低減に貢献することができます。
【参考】:Amazon RDS 【参考】:Amazon Relational Database Service (Amazon RDS) とは 【参考】:Amazon RDS の料金
Auroraのメリット
Auroraのメリットとしては、Auroraの特徴がそのまま活用できることが挙げられます。高いパフォーマンスとスケーラビリティ、耐障害性などです。
さらにMySQLとPostgreSQLとの完全な互換性は大きなメリットとなります。安全性にも気を配っており、企業向けセキュリティ機能・サービスを活用することができます。
Auroraのデメリット
Auroraのデメリットですが、RDSに比較するとメリットを享受できる分、すべてを活用すると支払い料金が高くなっててしまうことが挙げられます。また、MySQLとPostgreSQLとの完全な互換性を持つために、バージョンの依存性が高く、対応バージョンを意識する必要もあります。
Amazon Auroraを使うには
Amazon Auroraを使うには、事前の準備が必要です。初めて使う場合にはAWSのアカウント作成から始めます。最初にAWSのアカウントにサインアップし管理ユーザ―を作成しておきます。必要に応じて、ユーザーにアクセス権を付与します。
【参考】:Amazon Aurora の開始方法
Auroraの環境セットアップ
Auroraでは、DBクラスターを用いて利用します。環境セットアップとして、DBクラスターには1つ以上のDBインスタンスが必要です。
データベースへのアクセスは、公開されたクラスターエンドポイントに接続します。ここでは、必要となるメモリ、データベースエンジンとバージョン、ネットワーク設定、セキュリティなどの要件に基づいて、DBクラスターを作成します。
【参考】:Amazon Aurora の環境をセットアップする
Amazon Aurora DBクラスターの構成要素
AuroraのDBクラスターは、1つ以上のDBインスタンスと、DBインスタンスのデータを管理する1つのクラスターボリュームからなります。
DBインスタンスは、読み書きを行うプライマリ DBインスタンスと、Auroraレプリカで構成されます。レプリカは読み取りのみに対応します。障害時にはフェイルオーバーし、処理を継続します。DBクラスターを作成する準備として、Amazon Virtual Private Cloud(VPC)を事前にセットアップしておきます。
【参考】:Amazon Aurora DB クラスター 【参考】:Amazon VPC
Auroraでデータベースを作成する
Auroraの操作は、Amazon RDS AWS マネジメントコンソールやCLIを用います。Amazon RDS コンソールで、利用可能なリージョンを選択し、「データベース」「データベースの作成」で、「エンジンのタイプ」で「Amazon Aurora」を選択します。
続いて、「エディション」で使用するインターフェースを設定します。「Amazon Aurora with MySQL compatibility」でMySQL互換、「Amazon Aurora with PostgreSQL compatibility」はPostgreSQL互換に設定されます。
その後「DB インスタンスサイズ」などを設定後、「データベースの作成」でデータベースが作成されます。
【参考】:Amazon RDS コンソール 【参考】:Aurora リージョンとアベイラビリティーゾーン 【参考】:DB クラスターを作成して Aurora MySQL DB クラスターのデータベースに接続する 【参考】:DB クラスターを作成して Aurora PostgreSQL DB クラスターのデータベースに接続する
Auroraのバージョンについては、以下のドキュメントをご確認ください。
【参考】:Amazon Aurora バージョン
Auroraのデータベースを操作する
Auroraのデータベースを操作するには、それぞれのRDBMSの操作コマンドならびにSQLコマンドを用います。Amazon RDS for MySQLやAmazon RDS for PostgreSQLから、スナップショットやレプリケーションを用いてデータを移行することができます。
移行のためのツールも用意されており、移行後はデータ型に基づいて格納データをそのまま利用することができます。
データベースエンジンは、定期的に更新版がリリースされます。使用するにはバージョンを選択したり、アップグレード時に指定したりします。
Amazon Aurora MySQLの参考情報(Auroraのユーザーガイド)は、以下の通りです。
【参考】:Amazon Aurora MySQL の操作 【参考】:DB クラスターを作成して Aurora MySQL DB クラスターのデータベースに接続する 【参考】:Amazon Aurora MySQL DB クラスターへのデータの移行 【参考】:Amazon Aurora MySQL のデータベースエンジンの更新
Amazon Aurora PostgreSQLの参考情報(Auroraのユーザーガイド)は、以下の通りです。
【参考】:Amazon Aurora PostgreSQL の操作 【参考】:DB クラスターを作成して Aurora PostgreSQL DB クラスターのデータベースに接続する 【参考】:PostgreSQL と互換性がある Amazon Aurora にデータを移行する 【参考】:Amazon Aurora PostgreSQL の更新
AWSのAmazon Auroraは試してみる価値があります
クラウドサービスが浸透し、多くの業務がクラウド環境で稼働しています。クラウドで最適なデータベース環境を目指し設計されたAuroraは、高い性能・可用性・耐障害性が達成され、データベースの活用の幅が広がると考えられます。互換性が高いため作業工数を削減し、トータルのコスト低減も可能になります。
Auroraはサーバーレスでの利用など、さらに工夫することも可能ですので、1度試してみることをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから