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 のよくある質問](https://aws.amazon.com/jp/rds/aurora/faqs/) 
- 完全マネージド型：完全マネージド型のデータベースサービスです。自動的にデータベースがモニタリングされ、S3 にバックアップされるので、きめ細かいポイントインタイムリカバリが可能です。
- マイグレーション：例えばMySQLを利用している場合、スナップショットを取得して、Auroraにマイグレーションすることが可能です。

- 高可用性と耐久性：99.99% の可能性を提供するように設計されています。物理ストレージの障害は透過的に復旧され、インスタンスのフェイルオーバーは、通常、30 秒未満で完了します。ストレージは耐障害性と自己修復機能を備えています。データについては、6 つのコピーが 3 つのアベイラビリティーゾーンにわたってレプリケートされ、連続的に Amazon S3 にバックアップされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/ad45dcf1-8425-db0e-4623-53e1e27975e1.png)

- 高スケーラブル：2 vCPU と 4 GiB のメモリを備えたインスタンスから、最大で 32 vCPU と 244 GiB のメモリを備えたインスタンスまでスケールできます。また、3 つのアベイラビリティーゾーンにかけて最大 15 個の低レイテンシーリードレプリカを追加することでさらに読み込み容量をスケールできます。10 GB から 64 TB まで、必要に応じて自動でストレージを拡張します。マスタに障害が発生するとReaderにフェイルオーバーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/ab7c039e-b080-f6d5-742e-a186bef411b8.png)


##3.機能##

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

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

###AuroraグローバルDB###
他リージョンに対する高性能なリードレプリカを作成します。

[[2021/02/11]Amazon Aurora Global Database が計画されたマネージドフェイルオーバーをサポート](https://aws.amazon.com/jp/about-aws/whats-new/2021/02/amazon-aurora-global-database-supports-managed-planned-failover/)
実際のリージョン障害からの復旧に利用する機能ではない。
用途としては、本当にグローバルDBを有効化することによって、本当に機能しているか検証するかをを目的として利用する。


##4.ユースケース##

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


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

AuroraはソースDBクラスターとは異なるリージョンにリードレプリカを作成することができます。 
この方法を採用すると、障害回復機能を向上させ、読み取り操作をユーザーに近いリージョンに拡張しつつ、あるリージョンから別のリージョンへの移行を容易にすることができます。
[Amazon Aurora データベースでクロスリージョンリードレプリカを最大 5 つまでサポート](https://aws.amazon.com/jp/about-aws/whats-new/2018/09/amazon-aurora-databases
-support-up-to-five-cross-region-read-replicas/)
[Amazon AuroraでCross-Region Read Replicaがご利用頂けるようになりました](https://aws.amazon.com/jp/blogs/news/new-cross-region-read-replicas-for-amazon-aurora/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/0dbf2c0f-1311-fbf8-83cb-837f6e051cc0.png)


##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 は自動的にスタンバイにフェイルオーバーします

![スクリーンショット 2019-05-11 18.22.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/319ac422-341e-7b88-4385-6bff1bb94e59.png)

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

- フェイルオーバー:0

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

![スクリーンショット 2019-05-11 18.33.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/b3964269-d6da-56bf-4db2-01d6ec81fac2.png)

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

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

![スクリーンショット 2019-05-11 18.35.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/cb299b8e-5c8d-659e-c470-7da5ecc8b5d4.png)

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

↓のとおりクラスターの中にマスターの書き込みとレプリカの読み込みが作成されテイルことがわかる。
![スクリーンショット 2019-05-11 18.39.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6f1adbd8-91bb-e276-a52f-e6815b2d2f1b.png)

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

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

![スクリーンショット 2019-05-11 18.43.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/22ac9601-06e8-b173-8ede-24694d019561.png)

###EC2からアクセスしてみる###

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

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


##7.リンク##
[Amazon RDS](https://qiita.com/leomaro7/items/9ac81ae543689a15b322)