1. Amazon Aurora + Amazon RDS
Amazon Aurora
クラメソブログ
概要
アーキテクチャ
ポイント
リードレプリカ
最大15個の読み取り専用インスタンス
※追加/削除にダウンタイムは発生しない
AutoScaling
平均CPU使用率または平均接続数でオートスケーリング可能
スケールアップ、ダウン
インスタンスタイプの変更
→フェイルオーバーに影響するので注意
スケールアウト
リードレプリカを増やしていく
グローバルデータベース
スタンバイの別リージョンに対してリードレプリカを作成する
※ストレージのみレプリケーションを行うコールドスタンバイを行うこともできる
制限
- サポートされるエンジンやバージョンが限定的
- Serverless/バックトラックの未サポート
- セカンダリDBクラスタのAuto Scalingの未サポート
その他
スナップショット
Aurora Serverless
Auroraのサーバレスバージョン
RDS/オンプレからのマイグレーション
RDS → Aurora
- RDSインスタンスからAuroraリードレプリカを作成しリードレプリカを昇格させる
- RDSのスナップショットからスナップショットの移行でDBエンジンをAuroraに移行する
オンプレ → Aurora
- AWS DMS
- ネイティブ MySQL ツール:mysqldbcopy / mysqldump
インスタンスタイプの変更
- Modify
- Failover
- 複製パターン
- Replication
- Cross-region Read Replica
アクティビティストリーム
Aurora PostgreSQLで監査ログを取得する場合以下が選択肢
- PostgreSQL ネイティブのツールを利用 : pgAudit
- AWS の仕組み活用 : Database Activity Stream
フォ―ルトトレランス試験
Amazon AuroraインスタンスまたはAurora Replicaを強制的にクラッシュさせることができる
※RDS DB クラスターでは利用できない
Amazon Auroraインスタンスに対するSQLコマンドとして発行され、以下のイベントのいずれかの発生をシミュレートしてスケジューリングすることができる
- ライターまたはリーダーDBインスタンスのクラッシュ
- Aurora Replicaの障害
- ディスク障害
- ディスクの混雑
alter system simulate disk failure
※ディスク障害のシミュレーションでは、Aurora DBクラスターはランダムにディスクセグメントを障害としてマークします。シミュレーション期間中、そのセグメントへのリクエストはブロックされます。
show volume status
DisksとNodesという2つのサーバー・ステータス変数を返します。これらの変数は、DBクラスタ・ボリュームのデータとストレージ・ノードの論理ブロックの合計数をそれぞれ表しています。
alter system simulate read replica failure
フォールト・インジェクションクエリを使って、Aurora Replicaの障害をシミュレートすることができます。
Backtrack
DBクラスタを過去の状態に戻す機能
※PiTRとは異なり既存クラスタに対して特定時点の状態に戻すことが出来る(72時間以内)
クラスタ一括なのでテーブル個別にはできない
メモ
「スナップショットの復元」は、定期的に自動で取得したスナップショットや手動で取得したスナップショットの時点のサーバーを起動する
「ポイントインタイムリカバリ」は、最も遅い復元可能な時刻と復元可能な最新時刻の間から任意の時点のサーバーを起動する
注意
Aurora MySQLの場合、以下の両方の条件が揃うと、DBクラスタ内のDBインスタンスを削除することができません。
・DBクラスターが他のAurora DBクラスターのリードレプリカである
・DBインスタンスがDBクラスター内の唯一のインスタンスであること
Amazon RDS
クラメソブログ
概要
アーキテクチャ
ポイント
フェイルオーバー
マルチAZでスタンバイインスタンスに同期され自動でフェイルオーバーされる
※フェイルオーバー時にエンドポイントは変わらない。スタンバイへのアクセスはできない
リードレプリカ
読み取り専用のスケールアウトが可能
※MAX5台
マルチAZ,クロースリージョンに対応していて、インスタンスタイプなどはマスターのインスタンスと異なるものにも設定可能
※スタンドアロンのインスタンスに昇格可能
非同期のレプリケーション
スケールアップ/ダウン
インスタンスの再起動が必要
バックアップ
自動スナップショット:一日一回取得、保存期間は0~35日間
手動スナップショット:任意のタイミング
※RDS標準機能の自動的なバックアップとして自動スナップショット+トランザクションログをS3に保存
リストア:スナップショットからDBインスタンスの作成
PiTR:最新のもの又は任意のタイミングのものを指定可能
別アカウントへのスナップショットの共有
- ターゲットアカウントのカスタム (デフォルト以外の) KMS キーを追加します
- このCMKを使用してスナップショットをコピーし、そのスナップショットをターゲットアカウントと共有します。
- ターゲットアカウントから共有 DB スナップショットをコピーします。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/share-encrypted-rds-snapshot-kms-key/
Amazon Aurora vs Amazon RDS
※最新版なので注意
キーワード整理
モニタリング
パフォーマンスチューニングや負荷テスト
Performance Insights
DBパフォーマンスのデータ収集を行う
→平均アクティブセッション(AAS)から負荷状況を測定できる
- 待機
- SQL
- ホスト
- ユーザー別のAAS
トラブルシューティング
CloudWatch
- CPU使用率
- DB接続数
- メモリ領域
- ストレージ領域
- IOPS
RDS拡張モニタリング
- CPU使用状況
- メモリ使用状況
- ディスクI/O状況
- OSプロセス
Discussion