たいきゅんの日記

ITエンジニアの積み上げ日記

Amazon Auroraについてまとめてみる。

今回は、Amazon Auroraに関してまとめてみようと思います。
新規開発でAmazon Aurora Serverlessを使用するので、基本から改めてまとめてみようと思います。

Amazon Auroraとは

Amazon AuroraAWSが開発したMySQLおよびPostgreSQLと互換性のあるクラウド向けRDBのことです。
従来のMySQLおよびPostgreSQLは、OSSで安価であるのがメリットの一つですが、一方で性能を十分なものにするには別途スキルが必要になります。こちらをカバーするため、性能面や拡張機能を充実させたものがAmazon Auroraです。

AmazonRDSとAuroraの違い

1. コスト面

  • AmazonRDS: コスト低。
  • Aurora: (RDSに比べると)かかる傾向にある。

2. データベースエンジン

3. データベースバージョン

  • AmazonRDS: あらゆるバージョンを選択できる。
  • Aurora: 選択できるバージョンが限定されている。

(例)PostgreSQLは10・11・12・13・14のみ。

Auroraのアーキテクチャ

Auroraはクラスタという単位で構成されています。
クラスタは、1つ以上のDBサーバーで構成されるインスタンス層とデータを管理するストレージ層で構成されています。

  • インスタンス層: SQLなどの処理を実行する層
  • ストレージ層: データを保存する層。

データを保存するストレージ層は2.3AZにわたりコピーされるため障害が起きた際もデータベースの稼働に影響が出ないようになっています。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html
インスタンス

インスタンス層は、プライマリ DB インスタンスAurora レプリカの二つから構成されています。

Auroraの特徴

1. バックトラック
より高速にデータベースの状態をリカバリする機能で、データを巻き戻したり進めたりすることができます。

2. クラスタキャッシュ管理
プライマリインスタンスが持っているキャッシュを特定のAuroraレプリカと共有することができる機能。
障害発生でフェールオーバーが行われた際に、キャッシュがフェールオーバーされないと一時的にDBの処理能力が下がってしまいます。クラスタキャッシュ管理を使用することで、フェールオーバー時のDB処理能力を抑えることが可能となります。

3. 並行クエリ
インスタンス層が実行するクエリ実行等の処理をストレージ層のリソースにオフロードして実行させる機能で、クエリの実行高速化が実現できます。

4. マルチマスター
従来のRDSはシングルマスター構成だが、Auroraは複数のプライマリDBを使用することができます。
よって片方のプライマリDBで障害が発生しても、もう片方のプライマリDBで継続的な書き込みができます。

特徴はまだたくさんあるのですが長くなってしまうため、一部のみの紹介とさせてください。

AmazonRDSかAuroraかの判断基準

1. AmazonRDSを選ぶ理由

  • 最新バージョンを使用したい。
  • Auroraでは利用できないサービスを利用したい。

2. Auroraを選ぶ理由

  • Aurora独自の機能を使用したい。
  • 運用面・性能面で最適化されたサービスを利用したい。
  • 信頼性のあるサービスを利用したい。

Auroraについて改めてまとめてみました。
一つの記事にまとめようとするともっと大きくなってしまうため、一つ一つの機能にフォーカスしてまとめてみようと思います。
最後まで読んでいただきありがとうございました。