Amazon Aurora概要まとめ

Aurora AWS

Amazon Auroraについて概要をメモ

Amazon Auroraとは?

  • AWSが開発したRDSデータベースエンジン
  • MySQL、PostgreSQLと高い互換性があり、高可用性を備える。
  • ストレージは128TBまで自動拡張

Amazon Aurora DB クラスター

構成は以下の通り。

インスタンスとストレージが分かれてるのが特徴。

プライマリがそれぞれに読み書き、レプリカは各AZに配置して可用性を維持。

Auroraを利用するにはインスタンスでは無く、エンドポイントURLを利用

  • クラスターエンドポイント

  プライマリに接続

  • 読み取りエンドポイント

  レプリカに負荷分散して接続

  • カスタムエンドポイント
    選択したレプリカ間での負荷分散に利用。

可用性

クラスタボリュームの可用性

  • 2つのディスク障害
    読み書き影響なし
  • 3つ以上のディスク障害
    書き込みは不可。読み込みのみ継続

インスタンスの可用性

プライマリ障害時はレプリカが昇格。多くの場合フェイルオーバ速度は通常のRDSより速い。

クラスターエンドポイントに接続しておけば、障害時の切り替え不要。

昇格の優先度は以下

1.優先度が高い(0に近い)

2.優先度が同じ場合はインスタンスサイズが大きい方

※優先度、サイズが同じなら任意のインスタンス

クラスターキャッシュ管理

Aurora PostgreSQLの機能。

キャッシュを同期しておく事でフェイルオーバ時のパフォーマンス影響を少なくする。

フェイルオーバー先のレプリカの優先度を0にし、かつ、インスタンスサイズを同じにする必要あり。

Auroraグローバルデータベース

複数のリージョンに跨ったデータベース。

1つのプライマリリージョンと、最大5つのセカンダリリージョンで構成。

プライマリ障害時、セカンダリリージョンが昇格する。

※クロスリージョンと類似機能だが、こちらが推奨されている。

Amazon Aurora Global Database の使用 - Amazon Aurora
Amazon Aurora Global Database を作成して使用する方法について説明します。Aurora Global Database は、異なる AWS リージョン 内にある複数の Aurora DB クラスターにより構成され...

クロスリージョンレプリケーション

プライマリクラスタと別のリージョンにリードレプリカを作成する機能。

マルチマスタークラスター

MySQLエディションのみ。

クラスター内のインスタンスが全てプライマリ(マスタ)とする機能。

モードが2つ存在する。

・アクティブ/アクティブモード
 全インスタンスで同時読み書き実施

・アクティブ/パッシブ
 1つのインスタンスで読み書き。他は待機し、プライマリ障害時に機能する。

フェイルオーバーの概念は無く、障害時の影響が無い。

制約が複数あるので注意。

フェールオーバー高速化

以下点を考慮

・読み書き可能なエンドポイントを設定し、フェールオーバー時のアプリの変更が不要になる

・クラスターキャッシュ管理機能を有効化

・JDBC接続文字列を低いタイムアウト値を設定

・TCPキープアライブのTTLを短くする

料金

  • 通常のRDSでは確保した容量に対する料金だが、Auroraは自動割り当てで利用分のみ発生。
  • データ削除に合わせて割り当て領域も減少する。
  • 通常のRDS同様、VPC外へのアウトバウンド通信に対し発生。

バックアップ

自動バックアップ

・データの差分バックアップ。S3へ保管。

・保持期間は1〜35で指定。0には出来ない。それ以上の保持はスナップショット機能を使う。

スナップショット

手動、自動。どちらも可能。

バックトラック機能

過去の特定の時点に戻す機能。

復元が高速かつストレージコストが少ない。

モニタリング

障害挿入クエリ(Fault Injection Queries)

特定のクエリにより、DBインスタンスの障害をシミュレートできる。

データベースアクティビティストリーム

CloudWatchlogsよりリアルタイムでの監視が可能。
他のRDSでも利用可能だが、データベースエンジンにより機能が異なる。
Auroraは拡張された機能を持っている。
データベースに特化したクエリや接続情報、などが検知できる。
有効化すると、クラスターのアクティビティがリアルタイムでKinesis Data Streams へ連携される。
例)
Kinesis→Firehouse→ES
Kinesis→その他の可視化サービス
※同期モードと、非同期モードがあり、非同期モードの方が遅延するがDBへのパフォーマンス影響が少ない。

別アカウントへログをリアルタイム処理

ログをCloudWatchにログを発行。サブスクリプションフィルタを作成して、ターゲットアカウントのKinesis Data Streamsへログを送信。

タイトルとURLをコピーしました