Amazon Aurora


1.Amazon Auroraとは

MySQL および PostgreSQL と互換性のあるリレーショナルデータベースエンジンです。

2.特徴

  • 高性能:MySQL の最大で 5 倍、PostgreSQL の 2 倍のスループットを実現します。
  • 高い安全性:データベースのために複数のレベルのセキュリティが用意されています。Amazon VPC を使用したネットワークの分離、AWS Key Management Service (KMS) を使用して作成および制御するキーを使用した保管時の暗号化、および SSL を使用した転送中データの暗号化などです。暗号化された Amazon Aurora インスタンスでは、基盤となるストレージが暗号化されます。さらに、同じクラスター内にある自動化バックアップ、スナップショット、およびレプリカも暗号化されます。
  • MySQL および PostgreSQL との互換性:Amazon Aurora のよくある質問
  • 完全マネージド型:完全マネージド型のデータベースサービスです。自動的にデータベースがモニタリングされ、S3 にバックアップされるので、きめ細かいポイントインタイムリカバリが可能です。
  • マイグレーション:例えばMySQLを利用している場合、スナップショットを取得して、Auroraにマイグレーションすることが可能です。

  • 高可用性と耐久性:99.99% の可能性を提供するように設計されています。物理ストレージの障害は透過的に復旧され、インスタンスのフェイルオーバーは、通常、30 秒未満で完了します。ストレージは耐障害性と自己修復機能を備えています。データについては、6 つのコピーが 3 つのアベイラビリティーゾーンにわたってレプリケートされ、連続的に Amazon S3 にバックアップされます。

  • 高スケーラブル:2 vCPU と 4 GiB のメモリを備えたインスタンスから、最大で 32 vCPU と 244 GiB のメモリを備えたインスタンスまでスケールできます。また、3 つのアベイラビリティーゾーンにかけて最大 15 個の低レイテンシーリードレプリカを追加することでさらに読み込み容量をスケールできます。10 GB から 64 TB まで、必要に応じて自動でストレージを拡張します。マスタに障害が発生するとReaderにフェイルオーバーします。

3.機能

Aurora マルチマスター

マスター側もスケーラブルに構成することができます。今まではマスターは一つのみでしたが、別AZにもマスターを構築し、どのノードが落ちてもダウンタイムをゼロにすることができます。

Auroraサーバレス

予測可能なアプリケーションワークロードに対応したAuroraのオンデマンド自動スケーリング構成です。EC2のAutoScallingと同じような感じで構築できます。

AuroraグローバルDB

他リージョンに対する高性能なリードレプリカを作成します。

[2021/02/11]Amazon Aurora Global Database が計画されたマネージドフェイルオーバーをサポート
実際のリージョン障害からの復旧に利用する機能ではない。
用途としては、本当にグローバルDBを有効化することによって、本当に機能しているか検証するかをを目的として利用する。

4.ユースケース

  • 大規模なクエリデータ処理
  • 運用の容易さを活用する。

5.クロスリージョンレプリカ

AuroraはソースDBクラスターとは異なるリージョンにリードレプリカを作成することができます。
この方法を採用すると、障害回復機能を向上させ、読み取り操作をユーザーに近いリージョンに拡張しつつ、あるリージョンから別のリージョンへの移行を容易にすることができます。
Amazon Aurora データベースでクロスリージョンリードレプリカを最大 5 つまでサポート
Amazon AuroraでCross-Region Read Replicaがご利用頂けるようになりました

6.demo

基本的な作成はRDSと同じなので、Auroraの機能特有の部分のみ補足して書きます。

ステップ 1 エンジンの選択

Aurora
MySQL 5.6 との互換性あり 
で作成していきます。

ステップ 2 DB 詳細の指定

  • DB エンジン:Aurora - MySQL 5.6 との互換性あり
  • Capacity type:Provisioned
Capacity
Provisioned 事前にキャパシティを設定し、その範囲で作成する
Provisioned with Aurora parallel query enabled プロビジョンドとパラレルで平行してクエリを処理できるようなDBを作成する
Serverless オートスケーリング機能でオンデマンドでスケールアウト、スケールインをし、処理負荷によって使っていく。
  • DB エンジンのバージョン:Aurora(MySQL)-5.6.10a
  • DB インスタンスのクラス:db.t2.small
  • マルチ AZ 配置:異なるゾーンにレプリカを作成

マルチ AZは、DB インスタンスとは異なるAZに RDS が同期スタンバイレプリカを維持するようにします。プライマリで計画的または突発的な停止が発生した場合、Amazon RDS は自動的にスタンバイにフェイルオーバーします

ステップ 3 [詳細設定] の設定

  • フェイルオーバー:0

フェイルオーバーは実際にフェイルオーバーしたときに、レプリカをどれにするかといった優先度をつけることができます。優先度が若ければ若い程優先度が高い。

  • バックトラック:バックトラックを有効にする 24時間

バックトラックを使用すると、データをバックアップから復元せずにすばやく Aurora データベースを過去のある時点に巻き戻すことができます。

実際に作成したDBを確認する

↓のとおりクラスターの中にマスターの書き込みとレプリカの読み込みが作成されテイルことがわかる。

クラスターのアクション画面だけ少しだけ見てみる。

  • リーダの追加:最大15までリードレプリカを作成できる。
  • クロスリージョンのリードレプリカの作成:リージョンを跨いでレプリカを作成する。
  • クローンの作成;同じ構成を再現できる。スナップショットの場合は、スナップショットから作成しなければいけないが、クローンから作成すると簡易にできる。

EC2からアクセスしてみる

実際にアクセスして、MySQLコマンドと同じように接続、操作できるかなどを確認していきましょう。

mysql -h <エンドポイント> -u <ユーザ名> -p

7.リンク

Amazon RDS