1日1%成長する ~AWS Aurora Mysql~
AWSの学習メモ
- AWSのblackbaltの動画を15分以上毎日見る
- 動画を簡単にまとめる
レプリケーション Binlogのレプリケーションではない。 Shared Multi-AZ Storageを使用していて、ここにMasterが書き込む。 ※master/replicaは同様のデータを使用する ReplicaはShared Storageを参照して更新するのだが、 ここで10~20ms程度の遅延が発生する。 ただし、Shared Storageに書き込まれてさえいれば レプリケーションは機能するのでフェイルオーバーのデータロスはない。 アダプティブスレッドプール RDSだとコネクション数に応じてスケールしない。 Auroraはアクティブなスレッドにコネクションを集約していく。 スレッドプール数は動的に調整される。 -> r3.8xlインスタンスで同時5000まで可能 フェイルオーバー クラッシュリカバリーの処理が常にストレージ側で行われている。 40sec程度で対応する フェイルオーバーテスト SQLでノード、ディスク、ネットワーク障害をシュミレート可能 Alter system crash[{instance|dispatcher|node}] Alter system simulate percentage_of_failure .... - ディスク障害もシュミレート可能 - S3へ増分バックアップを継続的に行っている - ディスクの仕組みでパフォーマンス影響を与えない - ポイントタイムリカバリで5分前からBackup Retention Periodまで秒単位で復元可能 Global Transaction ID support Aurora Mysql2.04以降で対応 Auroraのバックアップの金額が見えるようになった 昔は常に最新バージョンだったが今はバージョン指定が可能 Custom Endpoints 分析クエリー用、オンラインクエリ用と分けたい場合に利用可能 ただし、通常のEndpointがあるのでこちらを使ってしまうと全てに振り分けられてしまう。 そのため、カスタムエンドポイントを設ける Global Database 一部のリージョンで対応。(バージニア北部、オハイオ、オレゴン、アイルランド) リージョンをまたいだレプリケーションだが、 レプリカには書き込みできない ※クロスレプリケーションはレプリ先に書き込み可能 Aurora Serverless 不可の少ないアプリケーション 可変不可アプリケーション エンドポイントだけアプリから見える状態で、 request routerが受け付ける。 受け付けたあとに処理を振り分けるがこのときにinstanceを起動するケースもあるので、 タイムアウトを1分くらいにしておく。 また、0からスタート可能なのでリクエスト受付でインスタンス起動させて処理させることも可能。 ※単純なクエリならコンソールから実行可能 Perfomance Insights パフォーマンスの可視化。 メモリ量が増えたり、本番に影響が出る可能性もあるため、 開発やテスト環境など、パフォーマンスチェックのために利用する。 Backtrack データベースの状態を瞬時に特定の時点へ巻き戻す 一度、オンラインから外してもどす。 また、ある地点に戻してからすすめることも可能。(DB全体を対象とする) ※ポイントタイムリカバリだとスナップショットから戻すなど時間がかかっていた チェンジレコードにつき$0.014なので直近のオペミスによる切り戻しなどで利用する Database cloning ストレージコストを増やすことなく、データベースをコピー可能。 変更すると課金される。 ユースケースだと本番のデータでのみ障害が起こるなど、 プロダクションデータでのテストが必要な場合に利用可能。 Lab modeに新しい機能をだしていく(ただし、実験バージョンなのであくまで確認用)