Aurora の特徴
MySQL5.6 or PostgreSQL 10.7 互換。
RDS for MySQL よりも高パフォーマンス(5 倍?)
データはマルチ AZ に冗長保管される
S3 へ自動バックアップ
リードレプリカは最大 15 台
Aurora のアーキテクチャ
ストレージ層とインスタンス層で分離している。
ストレージ層は 10GB~64TB で動的にスケールアップされる。
I/O Flow in Aurora Storage Node
以下全て非同期処理で行われる->つまり障害発生時にはデータが失われる恐れがある。しかしながら AWS は Multi-AZ による冗長構成に
より耐障害性を実現している。
1. 更新ログ受信。インメモリキューに登録
2. 永続的なログとして登録。ACK 返信。
3. 更新ログを統合。変更箇所特定
4. ゴシッププロトコル*により変更箇所伝播
5. 変更箇所を新バージョンデータとして統合
6. 定期的な S3 へのバックアップ
7. 定期的なガーベージコレクション
8. 定期的な変更箇所妥当性確認
*ランダムにノード間通信を行い情報を交換する手法。大規模 NW におけるデータベース複製方法として利用される
Aurora の冗長構成
ストレージ層は SSD によるマルチテナント構成で提供される
異なる3つのアベイラビリティゾーンに分散された数百~数千のストレージノードにストライプ化される
データは 6 つに複製される
各アベイラビリティゾーンには 2 つ複製を保持
アベイラビリティゾーンとは
アベイラビリティゾーンは、お互いに影響を受けないように、地理、電源、ネットワーク的に分離されています。また、各アベイラビリティゾーン
は高速専用線で接続されています。
Aurora 利用時の注意点
 MySQL, PostgreSQL の最新版には対応していない
 容量は 64TB まで
 マスターノードは冗長されていない
 書込み負荷は軽減されない。1 ノードに集中する
 非同期 I/O により通常の RDS よりは高速
 別途マルチマスタ構成も可能
 リード性能のみスケーラブル
 リードレプリカは更新が追い付かない可能性もある(10ms くらいの gap が発生する)
Aurora Serverless の特徴
 Simple
ManagedDB である Aurora を常時起動ではなく、利用時のみ立ち上げる Serverless Service として利用できる
 Scalable
- インスタンスの管理が不要
- キャパシティは上限・下限の設定のみ
- CPU 使用率と接続数合わせて動的にスケールアップ/ダウンがされる。
 Cost Performance
- 消費するキャパシティユニットに対して 1 秒毎に利用料が発生
- 使用していない時はインスタンスノードは自動的にシャットダウンされる
- 東京リージョン料金
 時間当たり利用料=$0.1/ACU
 ストレージ料金=$0.12/GB/月
 I/O 料金=$0.24/100 万リクエスト
 スケールアップ時の条件
 CPU utilization is above 70% OR
 More than 90% of connections are being used
 スケールダウン時の条件
 CPU utilization drops below 30% AND
 Less than 40% of connections are being used
負荷に応じてスケールアップを図りたい図
りたい
 ACU 別コネクションの上限
キャパシティユニット数 メモリ量 max_connections
2 4GB 90
4 8GB 135
8 16GB 1000
16 32GB 2000
省略
256 (最大) 488GB 6000
自動スケールの流れ
https://dev.classmethod.jp/articles/reinvent-2019-aurora-serverless-scalable-cost-effective-application-deployment-dat382/
Aurora Serverless 利用時の注意点
 ノード起動時間に数十秒時間がかかる場合がある
 急激な負荷増大には対応できない場合がある
 対応する MySQL/Postgres が最新版ではない
 64TB 以上は格納できない
 高可用性が求められる場合は採用できない
 DB ノードのマルチマスタ構成が必要であれば Aurora にする必要あり
 クロスリージョン構成が必要であれば Aurora にする必要あり
 リードレプリカが必要な場合は Aurora にする必要あり
 6000接続が上限
aurora malti-master
複数 DB ノードから書込み可能
Aurora Multi-Master 制限事項
 MySQL5.6 のみ準拠
 最大 2 つの DB インスタンス
 同一リージョン
 単一の問合せ速度はシングルマスタよりも低い
 MySQL の一部機能が利用できない
 Hash-join
 Query cache
 Event Scheduler
aurora の暗号化について
AES256 で暗号化される
アプリからは透過的にアクセスができる
暗号化される対象
 DB インスタンス
 自動バックアップ
 リードレプリカ
 スナップショット
 ログ
データそのものは暗号化されない
複数システムで RDS インスタンスを共用することによるデメリット

Aurora features

  • 1.
    Aurora の特徴 MySQL5.6 orPostgreSQL 10.7 互換。 RDS for MySQL よりも高パフォーマンス(5 倍?) データはマルチ AZ に冗長保管される S3 へ自動バックアップ リードレプリカは最大 15 台 Aurora のアーキテクチャ ストレージ層とインスタンス層で分離している。 ストレージ層は 10GB~64TB で動的にスケールアップされる。 I/O Flow in Aurora Storage Node
  • 2.
    以下全て非同期処理で行われる->つまり障害発生時にはデータが失われる恐れがある。しかしながら AWS はMulti-AZ による冗長構成に より耐障害性を実現している。 1. 更新ログ受信。インメモリキューに登録 2. 永続的なログとして登録。ACK 返信。 3. 更新ログを統合。変更箇所特定 4. ゴシッププロトコル*により変更箇所伝播 5. 変更箇所を新バージョンデータとして統合 6. 定期的な S3 へのバックアップ 7. 定期的なガーベージコレクション 8. 定期的な変更箇所妥当性確認 *ランダムにノード間通信を行い情報を交換する手法。大規模 NW におけるデータベース複製方法として利用される Aurora の冗長構成 ストレージ層は SSD によるマルチテナント構成で提供される 異なる3つのアベイラビリティゾーンに分散された数百~数千のストレージノードにストライプ化される データは 6 つに複製される 各アベイラビリティゾーンには 2 つ複製を保持
  • 3.
    アベイラビリティゾーンとは アベイラビリティゾーンは、お互いに影響を受けないように、地理、電源、ネットワーク的に分離されています。また、各アベイラビリティゾーン は高速専用線で接続されています。 Aurora 利用時の注意点  MySQL,PostgreSQL の最新版には対応していない  容量は 64TB まで  マスターノードは冗長されていない  書込み負荷は軽減されない。1 ノードに集中する  非同期 I/O により通常の RDS よりは高速
  • 4.
     別途マルチマスタ構成も可能  リード性能のみスケーラブル リードレプリカは更新が追い付かない可能性もある(10ms くらいの gap が発生する) Aurora Serverless の特徴  Simple ManagedDB である Aurora を常時起動ではなく、利用時のみ立ち上げる Serverless Service として利用できる  Scalable - インスタンスの管理が不要 - キャパシティは上限・下限の設定のみ - CPU 使用率と接続数合わせて動的にスケールアップ/ダウンがされる。  Cost Performance - 消費するキャパシティユニットに対して 1 秒毎に利用料が発生 - 使用していない時はインスタンスノードは自動的にシャットダウンされる - 東京リージョン料金  時間当たり利用料=$0.1/ACU  ストレージ料金=$0.12/GB/月  I/O 料金=$0.24/100 万リクエスト  スケールアップ時の条件  CPU utilization is above 70% OR  More than 90% of connections are being used  スケールダウン時の条件  CPU utilization drops below 30% AND  Less than 40% of connections are being used 負荷に応じてスケールアップを図りたい図 りたい
  • 5.
     ACU 別コネクションの上限 キャパシティユニット数メモリ量 max_connections 2 4GB 90 4 8GB 135 8 16GB 1000 16 32GB 2000 省略 256 (最大) 488GB 6000 自動スケールの流れ https://dev.classmethod.jp/articles/reinvent-2019-aurora-serverless-scalable-cost-effective-application-deployment-dat382/
  • 6.
    Aurora Serverless 利用時の注意点 ノード起動時間に数十秒時間がかかる場合がある  急激な負荷増大には対応できない場合がある  対応する MySQL/Postgres が最新版ではない  64TB 以上は格納できない  高可用性が求められる場合は採用できない  DB ノードのマルチマスタ構成が必要であれば Aurora にする必要あり  クロスリージョン構成が必要であれば Aurora にする必要あり  リードレプリカが必要な場合は Aurora にする必要あり  6000接続が上限 aurora malti-master 複数 DB ノードから書込み可能 Aurora Multi-Master 制限事項  MySQL5.6 のみ準拠  最大 2 つの DB インスタンス  同一リージョン  単一の問合せ速度はシングルマスタよりも低い  MySQL の一部機能が利用できない  Hash-join  Query cache  Event Scheduler aurora の暗号化について
  • 7.
    AES256 で暗号化される アプリからは透過的にアクセスができる 暗号化される対象  DBインスタンス  自動バックアップ  リードレプリカ  スナップショット  ログ データそのものは暗号化されない 複数システムで RDS インスタンスを共用することによるデメリット